Thomas Preud'homme
fa55c610fa
Only define static locks in multithreaded mode
...
Newlib build system defines __SINGLE_THREAD__ to allow concurrency code
to be only compiled when newlib is configured for multithread. One such
example are locks which become useless in single thread mode. Although
most static locks are indeed guarded by !defined(__SINGLE_THREAD__),
some are not.
This commit adds these missing guards to __dd_hash_mutex,
__atexit_recursive_mutex, __at_quick_exit_mutex and __arc4random_mutex.
It also makes sure locking macros in lock.h are noop in single thread
mode.
2017-02-13 17:04:17 -05:00
Freddie Chopin
0eeb4c1d32
Unify names of all lock objects
...
In preparation for the patch that would allow retargeting of locking
routines, rename all lock objects to follow this pattern:
"__<name>_[recursive_]mutex".
Following locks were renamed:
__dd_hash_lock -> __dd_hash_mutex
__sfp_lock -> __sfp_recursive_mutex
__sinit_lock -> __sinit_recursive_mutex
__atexit_lock -> __atexit_recursive_mutex
_arc4random_mutex -> __arc4random_mutex
__env_lock_object -> __env_recursive_mutex
__malloc_lock_object -> __malloc_recursive_mutex
__atexit_mutex -> __at_quick_exit_mutex
__tz_lock_object -> __tz_mutex
2017-02-06 16:55:09 -05:00
Thomas Preudhomme
cd1b883526
Prefix consistenly target-independent locks with __
...
Hi,
With the patch to allow newlib's locking routine to be retargeted currently
under discussion, we need to start thinking of locks as part of newlib's ABI
since newlib depends on specific names being provided by the OS. This patch
renames 2 locks so that they follow the same naming convention as other locks.
It needs to be applied before the retargeting patch, while locks are still an
internal consideration.
Newlib builds successfully with this change.
Ok for master branch?
Best regards,
Thomas
2017-01-25 12:36:05 +01:00
Ralf Corsepius
1acc80f5d2
2012-07-16 Ralf Corsépius <ralf.corsepius@rtems.org>
...
* libc/posix/telldir.c: Conditionally build dd_hash_lock.
2012-07-16 17:03:50 +00:00
Jeff Johnston
fab7d5988a
2010-03-09 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/posix/telldir.c (dd_loccnt): Change start index to be 1
instead of 0.
(_seekdir): A loc of 0 now means rewind dir.
2010-03-09 20:38:18 +00:00
Corinna Vinschen
ff348d86cc
* libc/posix/telldir.c: Remove bogus nested prototype of lseek().
2010-02-06 10:32:20 +00:00
Jeff Johnston
eeda30d7d5
2010-01-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
* libc/posix/telldir.c (_cleanupdir): Fixed usage of freed memory.
2010-01-11 23:24:47 +00:00
Jeff Johnston
27171a8cfa
2008-11-27 Ralf Corsepius <ralf.corsepius@rtems.org>
...
* libc/posix/telldir.c: Use #if !defined() instead of #ifndef
to fix GCC warning.
2008-11-27 21:01:40 +00:00
Jeff Johnston
729d1ff9d8
2003-06-06 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/argz/argz_add.c: Change to use _DEFUN macro for function
definition.
* libc/argz/argz_add_sep.c: Ditto.
* libc/argz/argz_append.c libc/argz/argz_count.c: Ditto.
* libc/argz/argz_create.c libc/argz/argz_create_sep.c: Ditto.
* libc/argz/argz_delete.c libc/argz/argz_extract.c: Ditto.
* libc/argz/argz_insert.c libc/argz/argz_next.c: Ditto.
* libc/argz/argz_replace.c libc/argz/argz_stringify.c: Ditto.
* libc/argz/envz_add.c libc/argz/envz_entry.c: Ditto.
* libc/argz/envz_get.c libc/argz/envz_merge.c: Ditto.
* libc/argz/envz_remove.c libc/argz/envz_strip.c: Ditto.
* libc/locale/nl_langinfo.c libc/misc/ffs.c: Ditto.
* libc/posix/closedir.c libc/posix/creat.c: Ditto.
* libc/posix/execl.c libc/posix/execle.c: Ditto.
* libc/posix/execlp.c libc/posix/execve.c: Ditto.
* libc/posix/isatty.c libc/posix/opendir.c: Ditto.
* libc/posix/popen.c libc/posix/readdir.c: Ditto.
* libc/posix/readdir_r.c libc/posix/rewinddir.c: Ditto.
* libc/posix/scandir.c libc/posix/seekdir.c: Ditto.
* libc/posix/telldir.c libc/search/hcreate.c: Ditto.
* libc/search/tdelete.c libc/search/tdestroy.c: Ditto.
* libc/search/tfind.c libc/search/tsearch.c: Ditto.
* libc/search/twalk.c libc/signal/signal.c: Ditto.
2003-06-06 19:57:51 +00:00
Jeff Johnston
90b65e2d06
2002-08-26 Jeff Johnston <jjohnstn@redhat.com>
...
* Makefile.am(LIBC_OBJECTLISTS): Add STDIO64_OBJECTLIST.
* Makefile.in: Regenerated.
* acinclude.m4: Add support for --enable-newlib-elix-level option.
* aclocal.m4: Regenerated.
* configure: Ditto.
* configure.host: Add code to define _ELIX_LEVEL if
--enable-newlib-elix-level option is used.
* configure.in:
* libc/aclocal.m4: Regenerated.
* libc/configure: Ditto.
* libc/argz/Makefile.am: Add EL/IX level checking.
* libc/argz/Makefile.in: Regenerated.
* libc/argz/dummy.c: New file.
* libc/ctype/Makefile.am: Add EL/IX level checking.
* libc/ctype/Makefile.in: Regenerated.
* libc/locale/Makefile.am: Add EL/IX level checking.
* libc/locale/Makefile.in: Regenerated.
* libc/posix/Makefile.am: Add EL/IX level checking.
* libc/posix/Makefile.in: Regenerated.
* libc/posix/telldir.c: Add EL/IX level checking.
* libc/reent/Makefile.am: Ditto.
* libc/reent/fstat64r.c: Ditto.
* libc/reent/lseek64r.c: Ditto.
* libc/reent/open64r.c: Ditto.
* libc/reent/Makefile.in: Regenerated.
* libc/search/Makefile.am: Add EL/IX level checking.
* libc/search/Makefile.in: Regenerated.
* libc/stdio/Makefile.am: Add EL/IX level checking.
* libc/stdio/Makefile.in: Regenerated.
* libc/stdio64/Makefile.am: Add EL/IX level checking.
* libc/stdio64/Makefile.in: Regenerated.
* libc/stdio64/dummy.c: New file.
* libc/stdio64/fgetpos64.c: Fix so _LARGEFILE_64 macro is checked
after first include.
* libc/stdio64/fopen64.c: Ditto.
* libc/stdio64/freopen64.c: Ditto.
* libc/stdio64/fseeko64.c: Ditto.
* libc/stdio64/fsetpos64.c: Ditto.
* libc/stdio64/ftello64.c: Ditto.
* libc/stdio64/tmpfile64.c: Ditto.
* libc/stdlib/Makefile.am: Add EL/IX level checking.
* libc/stdlib/Makefile.in: Regenerated.
* libc/stdlib/mstats.c: Add EL/IX level checking.
* libc/string/Makefile.am: Ditto.
* libc/string/Makefile.in: Regenerated.
* libc/sys/linux/Makefile.am: Add EL/IX level checking.
* libc/sys/linux/Makefile.in: Regenerated.
* libc/sys/linux/aclocal.m4: Ditto.
* libc/sys/linux/configure: Ditto.
* libc/sys/linux/aio.c: Add EL/IX level checking.
* libc/sys/linux/ftok.c: Ditto.
* libc/sys/linux/getdate.c: Ditto.
* libc/sys/linux/ids.c: Ditto.
* libc/sys/linux/inode.c: Ditto.
* libc/sys/linux/io.c: Ditto.
* libc/sys/linux/process.c: Ditto.
* libc/sys/linux/resource.c: Ditto.
* libc/sys/linux/sched.c: Ditto.
* libc/sys/linux/sig.c: Ditto.
* libc/sys/linux/termios.c: Ditto.
* libc/sys/linux/wait.c: Ditto plus add __waitpid and
__libc___waitpid weak aliases.
* libc/sys/linux/machine/i386/syscall.h: Add new _base macros
that generate the code for a syscall, but do not create a
weak alias.
* libc/syscalls/Makefile.am: Add EL/IX level checking.
* libc/syscalls/Makefile.in: Regenerated.
* libc/time/tzset_r.c: Change to replace strdup with equivalent
functionality.
* libc/unix/Makefile.am: Add EL/IX level checking.
* libc/unix/Makefile.in: Regenerated.
2002-08-26 18:56:09 +00:00
Jeff Johnston
39e65e0113
2002-06-05 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/include/string.h[__linux__]: Add strsignal prototype.
* libc/include/sys/lock.h: New file with default locking support.
* libc/include/sys/reent.h: Add signal buffer support for strsignal
and psignal.
* libc/posix/Makefile.am: Add support for readdir_r.c.
* libc/posix/Makefile.in: Regenerated.
* libc/posix/closedir.c: Add locking support and hash table cleanup.
* libc/posix/opendir.c: Add lock support.
* libc/posix/readdir.c: Ditto.
* libc/posix/rewinddir.c: Ditto.
* libc/posix/scandir.c: Ditto.
* libc/posix/seekdir.c: Ditto.
* libc/posix/telldir.c: Ditto plus add _cleanupdir routine to
clean up leftover hash table entries.
* libc/posix/readdir_r.c: New file.
* libc/sys/linux/Makefile.am: Add psignal.c and strsignal.c support.
* libc/sys/linux/Makefile.in: Regenerated.
* libc/sys/linux/sys/dirent.h: Add dd_lock to DIR structure.
* libc/sys/linux/sys/signal.h: Add psignal prototype.
* libc/sys/linux/psignal.c: New file.
* libc/sys/linux/strsignal.c: Ditto.
2002-06-05 20:58:59 +00:00
Jeff Johnston
6beeb24016
2000-08-27 Werner Almesberger <Werner.Almesberger@epfl.ch>
...
* libc/posix/scandir.c (DIRSIZ, scandir): use struct dirent.d_namlen
only if _DIRENT_HAVE_D_NAMLEN is defined.
(alphasort): aligned prototype with
libc/sys/cygwin/sys/dirent.h and simplified function body.
* libc/posix/telldir.c (telldir): changed "telldir" prototype to
long telldir (DIR *) as mentioned in annex B of POSIX.1
2000-08-28 20:06:54 +00:00
Christopher Faylor
8a0efa53e4
import newlib-2000-02-17 snapshot
2000-02-17 19:39:52 +00:00