__libc_lock_define_recursive.
* elf/dl-open.c: Don't declare it here any more.
* elf/dl-close.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-lookup.c (add_dependency): Use __libc_lock_lock_recursive and
__libc_lock_unlock_recursive.
* elf/dl-close.c (_dl_close): Likewise
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise
* elf/dl-open.c (_dl_open): Likewise
* sysdeps/generic/bits/libc-lock.h
(__libc_lock_define_recursive): New macro.
* sysdeps/generic/bits/stdio-lock.h (_IO_lock_t): Use it.
(_IO_lock_lock): Use __libc_lock_lock_recursive.
(_IO_lock_unlock): Use __libc_lock_unlock_recursive.
* sysdeps/unix/sysv/linux/i386/getcontext.S: Don't touch the %gs
register so that contexts can be used in different threads.
* sysdeps/unix/sysv/linux/i386/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/i386/swapcontext.S: Likewise.
2001-07-22 Bruno Haible <haible@clisp.cons.org>
* intl/libintl.h (ngettext, dngettext, dcngettext): Use both msgid1
and msgid2 for printf format argument checking.
* libio/genops.c (_IO_list_all_stamp): New variable.
(_IO_un_link): Bump _IO_list_all_stamp after removing from list.
(_IO_link): Likewise for insertion.
(flush_cleanup): New function.
(_IO_flush_all): Get list_all_lock and all individual locks for the
streams. Detect and handle changes to the _IO_list_all list.
(_IO_flush_all_linebuffered): Likewise.
* sysdeps/generic/bits/stdio-lock.h: Define
_IO_cleanup_region_start_noarg.
* sysdeps/mach/hurd/bits/stdio-lock.c: Likewise.
2001-07-23 Jakub Jelinek <jakub@redhat.com>
* sunrpc/svc_tcp.c (svctcp_rendezvous_abort): New.
(svctcp_rendezvous_op): Use it.
* sunrpc/svc_unix.c (svcunix_rendezvous_abort): New.
(svcunix_rendezvous_op): Use it.
2001-07-23 Andreas Schwab <schwab@suse.de>
* math/Makefile (CPPFLAGS-test-ifloat.c, CPPFLAGS-test-idouble.c,
CPPFLAGS-test-ildoubl.c): Renamed from CFLAGS-*.
(math-CPPFLAGS): Set this instead of CPPFLAGS.
2001-07-13 H.J. Lu <hjl@gnu.org>
* sysdeps/mips/dl-machine.h (MAP_BASE_ADDR): Removed.
(elf_machine_got_rel): Defined only if RTLD_BOOTSTRAP is not defined.
(RESOLVE_GOTSYM): Rewrite to use RESOLVE.
* sysdeps/mips/rtld-ldscript.in: Removed.
* sysdeps/mips/rtld-parms: Likewise.
* sysdeps/mips/mips64/rtld-parms: Likewise.
* sysdeps/mips/mipsel/rtld-parms: Likewise.
2001-07-15 Ulrich Drepper <drepper@redhat.com>
* malloc/obstack.c: Define __attribute__ for non-gcc compilers.
Patch by Jim Meyering <jim@meyering.net>.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Reorder
fields in the sigaction struct to match the definition in the kernel.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Correct the
test for ENOSYS.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/s390-32/bits/setjmp.h: Add leading underscores
to the entries in the __jmp_buf structure.
* sysdeps/s390/s390-64/bits/setjmp.h: Likewise.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/s390-32/bcopy.S: Use mvcle for big blocks
(> 64K) and a mvc loop for small blocks.
* sysdeps/s390/s390-32/memcpy.S: Likewise.
* sysdeps/s390/s390-64/bcopy.S: Likewise.
* sysdeps/s390/s390-64/memcpy.S: Likewise.
2001-05-25 Bruce Mitchener <bruce@cubik.org>
* manual/ctype.texi: Minor fix.
* manual/install.texi: Likewise.
* manual/startup.texi: Likewise.
* manual/examples/dir.c: Use perror() rather than puts().
2001-05-25 David Mosberger <davidm@hpl.hp.com>
* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h: Put stuff following
#endif directive inside a comment to avoid compiler warnings.
2001-05-25 Philipp Thomas <pthomas@suse.de>
* nis/nis_print.c (nis_nstype2str): Don't mark names of
naming services for translation, only UNKNOWN needs it.
Add comment to prevent it for the future.
2001-05-25 Joseph S. Myers <jsm28@cam.ac.uk>
* misc/sys/cdefs.h (__restrict_arr): Define appropriately for GCC
3.1 and non-GCC C99 compilers.
2001-05-24 Ulrich Drepper <drepper@redhat.com>
* spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any
serious work try once whether the lock is uncontested.
Remove duplicate reading of __status before loop.
Change suggested by Hans Boehm <hans_boehm@hp.com>.
* spinlock.h (__pthread_trylock): Remove need for oldstatus variable.
(__pthread_alt_trylock): Likewise.
2001-05-01 Kaz Kylheku <kaz@ashi.footprints.net>
Memory barrier overhaul following line by line inspection.
* mutex.c (pthread_once): Missing memory barriers added.
* pthread.c (__pthread_wait_for_restart_signal,
__pthread_timedsuspend_new, __pthread_restart_new): Added
memory barriers ``just in case'' and for documentary value.
* spinlock.c (__pthread_release): New inline function for releasing
spinlock, to complement __pthread_acquire. Includes memory
barrier prior to assignment to spinlock, and __asm __volatile
dance to prevent reordering or optimization of the spinlock access.
* spinlock.c (__pthread_unlock, __pthread_alt_lock,
__pthread_alt_timedlock, __pthread_alt_unlock,
__pthread_compare_and_swap): Updated to use new __pthread_release
instead of updating spinlock directly.
* spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc,
wait_node_free, wait_node_dequeue, __pthread_alt_lock,
__pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire):
Memory barrier overhaul. Lots of missing memory barriers added,
a couple needless ones removed.
* spinlock.c (__pthread_compare_and_swap): testandset optimization
removed, just calls __pthread_acquire, which has the new read
barrier in it before its testandset.
* sysdeps/ia64/Makefile [subdir=csu] (sysdep_routines): Add hp-timing.
* sysdeps/ia64/Versions: Add _dl_cpuclock_offset for ld in 2.2.3.
* sysdeps/ia64/hp-timing.c: New file.
* sysdeps/ia64/hp-timing.h: New file.
* sysdeps/unix/sysv/linux/ia64/bits/time.h: Add definitions for
CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
* sysdeps/generic/clock_getcpuclockid.c: Make function generic, test
using #ifdef whether the clock is available.
* sysdeps/unix/i386/clock_getcpuclockid.c: Not needed anymore.
* sysdeps/generic/dl-sysdep.c: Initialize _dl_cpuclock_offset to move
it into data section.
* sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
have to call __gmon_start__ in the libpthread DSO.
* sysdeps/pthread/pt-initfini.c (_init): Likewise.
noreturn attribute, remove statements that will never be executed.
* sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
attribute, remove statements that will never be executed.
2001-04-21 Ulrich Drepper <drepper@redhat.com>
* elf/dl-support.c: Include cpuclock-init.h. Use CPUCLOCK_VARDEF and
CPUCLOCK_INIT if defined.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/generic/cpuclock-init.h: New file.
* sysdeps/unix/i386/i586/cpuclock-init.h: New file.
* sysdeps/unix/i386/i586/Versions: New file.
* sysdeps/unix/i386/i586/clock_settime.c: New file.
* sysdeps/unix/i386/i586/clock_gettime.c: Handle thread CPU clock
separately by calling __pthread_clock_gettime if this function is
available. Subtract offset from tsc value before computing time value.
2001-04-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
* sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S (__setcontext):
Copy first word of uc_sigmask into __uc_sigmask.
* sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S (__getcontext):
Save uc_link around trap. Copy __uc_sigmask into first word of
uc_sigmask, clear the rest. Make sure setcontext to the created
context doesn't do this though.
* sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h: New file.
* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (ucontext_t): Add
uc_stack and uc_sigmask, rename old uc_sigmask to __uc_sigmask in the
64bit version, make uc_sigmask __sigset_t in the 32bit version.
* rt/Makefile (otherlibs): Added for static NSS.
* glibcbug.in (BUGGLIBC): Send to new alias.
2001-04-16 Stephen L Moshier <moshier@mediaone.net>
* sysdeps/ieee754/flt-32/e_asinf.c (pio2_hi, pio2_lo, pio4_hi):
Correct the values. (pSx, qSx): Replace by shorter approximation.
Use f suffix on float constants.
* sysdeps/ieee754/ldbl-128/k_tanl.c: New file.
Contributed by Stephen L Moshier <moshier@mediaone.net>.
2001-04-12 Bruno Haible <haible@clisp.cons.org>
* iconvdata/TESTS2: New file.
* iconvdata/run-iconv-test.sh: Also run tests from TESTS2.
* iconvdata/testdata/alfabeta..UTF-8: New file.
* iconvdata/testdata/alfabeta..UTF-16.BE: New file.
* iconvdata/testdata/alfabeta..UTF-16.LE: New file.
* iconvdata/testdata/alfabeta..UTF-32.BE: New file.
* iconvdata/testdata/alfabeta..UTF-32.LE: New file.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-32.c: New file.
* iconvdata/gconv-modules: Add entries for UTF-32, UTF-32LE, UTF-32BE.
* iconvdata/Makefile (modules): Add UTF-32.
(distribute): Add utf-32.c.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-16.c (PREPARE_LOOP): Initialize 'swap' after possibly
changing it in the state. After incrementing 'inptr', store it back.
* iconvdata/unicode.c (PREPARE_LOOP): After incrementing 'inptr',
store it back.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-16.c (gconv_init): Use MAX_NEEDED_FROM, not
MIN_NEEDED_FROM.
2001-04-11 David S. Miller <davem@redhat.com>
* sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance
up closer to user local variables so that new cleanup heuristics work.
* sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise.
2001-04-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S: Fix return
value of getcontext.
* sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S: Fix return
value of setcontext.
* sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/s390/swapcontext.c: Skip setcontext
call by changing the saved context.