2000-09-01 Ulrich Drepper <drepper@redhat.com>
* lockfile.c (__flockfile): If _IO_USER_LOCK bit is set don't do
anything.
(__funlockfile): Likewise.
(__ftrylockfile): If _IO_USER_LOCK bit is set return always 0.
* iconvdata/big5hkscs.c: Rewritten. Regenerate data from the
official file.
* iconvdata/TESTS: Add BIG5HKSCS entry.
* iconvdata/testdata/BIG5HKSCS: New file.
* iconvdata/testdata/BIG5HKSCS..UTF8: New file.
* iconvdata/big5.c (BODY for FROM_LOOP): Remove condition which is
always true.
2000-08-25 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile (LDFLAGS-nodelete): Add -rdynamic.
* elf/nodelete.c (fini_ran): New global variable.
(do_test): Before every dlclose call clear fini_ran and test
afterwards that it is not set by the destructors.
* elf/nodelmod1.c: Add destructor which sets fini_ran.
* elf/nodelmod2.c: Likewise.
* elf/nodelmod4.c: Likewise.
2000-08-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/system.c (__libc_system): We cannot use vfork here
since we call sigaction in the child.
* Makefile (tests): Add ex13.
2000-08-22 Andreas Jaeger <aj@suse.de>
* Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
* Makefile (tests): Add ex13.
2000-08-12 Andreas Jaeger <aj@suse.de>
* include/features.h (__STDC_ISO_10646__): Define.
Reported by Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>.
* include/features.h (__USE_ISOC99): Define for _XOPEN_SOURCE >= 600.
* locale/langinfo.h: Define YESSTR and NOSTR also for XPG4 (but not
for revision 6 and up).
* posix/sys/types.h: Define __need_timer_t and __need_clockid_t before
including <time.h>.
* time/time.h: Allow __need_timer_t and __need_clockid_t to be defined
to get definitions of just these types.
* signal/signal.h: Define thread signal handling functions also for
POSIX95.
* sysdeps/unix/sysv/linux/bits/types.h: Define thread types also for
POSIX95.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/types.h: Likewise.
* sysvipc/sys/shm.h: Define pid_t for XPG.
* wcsmbs/wchar.h: Make the various wide char string and stream
functions available for the respective XPG versions.
* internals.h: Declare __pthread_max_stacksize.
* pthread.c (__pthread_max_stacksize): New variable.
(__pthread_initialize_manager): Determine __pthread_initialize_manager
value.
* manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
(pthread_allocate_stack): Allow kernel to choose stack address if
FLOATING_STACKS. This also handles variable-sized stacks.
Always allocate stack and guardoage together. Use mprotect to
change guardpage access.
* sysdeps/i386/useldt.h: Define FLOATING_STACKS and
ARCH_STACK_MAX_SIZE.
* attr.c (__pthread_attr_setstacksize): Also test value against
upper limit.
2000-08-04 Ulrich Drepper <drepper@redhat.com>
* manager.c (__pthread_nonstandard_stacks): Define only if
THREAD_SELF is not defined.
(pthread_allocate_stack): Always initialize gardaddr to a correct
value.
(pthread_handle_create): Unmap thread with one call.
(pthread_free): Remove test for initial thread before removing stack.
Unmap stack with one call.
* pthread.c (__pthread_initial_thread): Initialize p_userstack to
1 to avoid removing the stack.
2000-07-27 Jes Sorensen <jes@linuxcare.com>
* linuxthreads/sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
load of spin lock to prime the cache before the atomic compare and
exchange operation (cmpxchg4). This avoids the spinning on the
cmpxchg4 instruction and reduces movement of the cache line back
and forth between the processors (explanation by Asis K. Mallick
from Intel). This basically makes the implementation operate the
same as the Linux kernel implementation.
* linuxthreads/shlib-versions: Use GLIBC_2_2 for Linux/ia64.
* linuxthreads/sysdeps/ia64/pspinlock.c: New file.
2000-08-02 Andreas Jaeger <aj@suse.de>
* linuxthreads/sysdeps/s390/pspinlock.c: New file.
* linuxthreads/sysdeps/s390/pt-machine.h: New file.
Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
2000-07-27 Jes Sorensen <jes@linuxcare.com>
* sysdeps/unix/sysv/linux/ia64/fork.c: Make __libc_fork the strong
name and add weak alias for __fork.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Change llseek, pread
& pwrite to use __libc_<name> as strong names instead of
__syscall_<name>.
* include/sched.h: Add clone2 prototype.
2000-07-26 Jes Sorensen <jes@linuxcare.com>
* sysdeps/unix/sysv/linux/ia64/sysdep.h (ENTRY): Don't declare the
procedure name twice.
2000-07-27 Philip Blundell <philb@gnu.org>
* malloc/malloc.c (HAVE_MREMAP): Undo change of 1997-12-04.
* internals.h (strict __pthread_descr_struct): Add p_sem_avail.
* semaphore.c: Handle spurious wakeups.
* sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
* pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
(__pthread_wait_for_restart): Likewise.
* condvar.c (pthread_cond_wait): Also check whether thread is
cancelable before aborting loop.
(pthread_cond_timedwait): Likewise.
2000-07-25 Mark Kettenis <kettenis@gnu.org>
* nss/nss_files/files-netgrp.c (strip_whitespace): New function.
(_nss_netgroup_parseline): Use strip_whitespace to strip off any
leading and trailing spaces from host, user and domain name.
2000-07-25 Jes Sorensen <jes@linuxcare.com>
* csu/defs.awk: Add support for need_endp.
2000-07-25 Mark Kettenis <kettenis@gnu.org>
* resolv/resolv.h: Remove __P from res_send_qhook and
res_send_rhook typedefs.
2000-07-25 Bruno Haible <haible@clisp.cons.org>
* intl/tst-translit.c (main): Unset OUTPUT_CHARSET.
2000-07-24 Ulrich Drepper <drepper@redhat.com>
* condvar.c: Handle spurious wakeups. [PR libc/1749].
* spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
* locale/programs/ld-collate.c (handle_ellipsis): Test for
duplication with generated name, not the name of the first
character.
Patch by Yong Li <yong.li@asu.edu>.
2000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
Bugfixes to the variant of the code for machines with no compare
and swap.
* spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
node was not being properly enqueued, due to failing to update
the lock->__status field.
* spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
being set inappropriately, causing the suspend function to be called
with a null self pointer and crash.
2000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
* spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
bug whereby thr field of waitnode structure would not be correctly
set unless a null self pointer is passed to the functions.
Eliminated redundant calls to thread_self().
2000-07-18 Ulrich Drepper <drepper@redhat.com>
* intl/Makefile: Make sure tst-translit is run after tst-gettext.
* locale/C-ctype.c: Add initializers for gap elements.
* locale/programs/ld-ctype.c (ctype_output): Write out index entries
for gap elements.
2000-05-05 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
have acquire semantics.
(__compare_and_swap_with_release_semantics): New inline
function.
(HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
2000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
* manager.c: Fix the problem with signals at startup.
Change the way that thread stacks are allocated on IA64.
Clean up some of the guard page allocation stuff.
1999-12-19 H.J. Lu <hjl@gnu.org>
* internals.h (page_roundup): New.
* attr.c (__pthread_attr_setguardsize); Use page_roundup
instead of roundup.
* manager.c (pthread_allocate_stack): Make sure guardaddr is
page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
is define.
1999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
* manager.c (pthread_allocate_stack): Unmap the stack top
if failed to map the stack bottom.
Fix the guard page.
(pthread_free): Fix the guard page.
* pthread.c (pthread_initialize): Set rlimit correctly for
NEED_SEPARATE_REGISTER_STACK.
1999-12-16 H.J. Lu <hjl@gnu.org>
* pthread.c (__pthread_initialize_manager): Pass
__pthread_manager_thread_bos instead of
__pthread_manager_thread_tos to __clone2.
1999-12-16 H.J. Lu <hjl@gnu.org>
* manager.c (pthread_allocate_stack): Correct the calculation
of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
stack bottom.
1999-12-13 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
bit after setting ar.ccv.
1999-12-12 H.J. Lu <hjl@gnu.org>
* manager.c (pthread_allocate_stack): Make the starting
address of the stack bottom page aligned. FIXME: it may
need changes in other places.
(pthread_handle_create): Likewise.
1999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
* manager.c (pthread_allocate_stack): Handle
NEED_SEPARATE_REGISTER_STACK.
(pthread_handle_create): Likewise.
* pthread.c (__pthread_initialize_manager): Likewise.
* sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
1999-12-02 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/pt-machine.h: New.
2000-07-12 H.J. Lu <hjl@gnu.org>
* resolv/Versions (libresolv): Add __res_hostalias to GLIBC_2.2
for _nss_dns_gethostbyname2_r in resolv/nss_dns/dns-host.c.
2000-07-12 Ulrich Drepper <drepper@redhat.com>
* wcsmbs/wcsmbsload.c (__wcsmbs_load_conv): Shut gcc up although
it is wrong.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Merge duplicated code.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_builtin.c (__gconv_get_builtin_trans): Initialize
__modname.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Initialize
result->__steps[cnt].__data.
2000-07-12 Mark Kettenis <kettenis@gnu.org>
* nss/getent.c (services_keys): Pass port number in network byte
order in call to getservbyport.
2000-07-11 Andreas Jaeger <aj@suse.de>
* stdlib/Makefile (test-canon-ARGS): Fix for building in the
source dir.
* intl/Makefile (do-gettext-test): Likewise.
* dirent/Makefile (opendir-tst1-ARGS): Likewise.
2000-07-11 Andreas Schwab <schwab@suse.de>
* Makeconfig (run-program-prefix): New rule.
(built-program-cmd): Use run-program-prefix.
2000-07-06 Ulrich Drepper <drepper@redhat.com>
* condvar.c: Implement pthread_condattr_getpshared and
pthread_condattr_setpshared.
* mutex.c: Implement pthread_mutexattr_getpshared and
pthread_mutexattr_setpshared.
* Versions: Export new functions.
* sysdeps/pthread/pthread.h: Add prototypes for new functions.
* rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE.
(pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE
is not selected.
pragmas. Include bp-sym.h only if _LIBC.
2000-07-04 Greg McGary <greg@mcgary.org>
* sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from
pragmas. Include bp-sym.h only if _LIBC.
pthread functions that have pointers in their return+arg signatures.
2000-06-28 Greg McGary <greg@mcgary.org>
* weaks.c: Wrap BP_SYM () around weak extern declarations of
pthread functions that have pointers in their return+arg signatures.
* sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak
extern declarations of pthread functions that have pointers in
their return+arg signatures.
* include/libc-symbols.h (weak_extern): Add extra level of expansion.
(symbol_version, default_symbol_version): Factor redundant
definitions out of conditional.
* linuxthreads/sysdeps/pthread/bits/libc-lock.h:
Wrap BP_SYM () around weak extern declarations of pthread
functions that have pointers in their return+arg signatures.
2000-06-27 Greg McGary <greg@mcgary.org>
* elf/dl-open.c (_dl_sysdep_start): Wrap weak_extern decl in BP_SYM ().
* include/libc-symbols.h (weak_extern): Add extra level of expansion.
(symbol_version, default_symbol_version): Factor redundant
definitions out of conditional.
* linuxthreads/sysdeps/pthread/bits/libc-lock.h:
Wrap BP_SYM () around weak extern declarations of pthread
functions that have pointers in their return+arg signatures.
prototype.
* join.c: Include <stdlib.h> for exit prototype.
* elf/vismod2.c: Include <stdlib.h> for abort prototype.
* rt/aio_suspend.c: Likewise.
2000-06-21 Andreas Jaeger <aj@suse.de>
* sysdeps/pthread/timer_routines.c: Include <stdlib.h> for memset
prototype.
* join.c: Include <stdlib.h> for exit prototype.
* iconv/gconv_int.h (strict gconv_module): Remove all members
associated with regular expressions. Use a simple string as the
from name.
* iconv/gconv_db.c: Remove code handling regular expressions.
* iconv/gconv_conf.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* iconv/gconv_builtin.h: Adjust for change in gconv_conf.c.
2000-06-14 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/sh4/fpu/fclrexcpt.c: Remove definitions for backward
compatibility.
* sysdeps/sh/sh4/fpu/fegetenv.c: Likewise.
* sysdeps/sh/sh4/fpu/fesetenv.c: Likewise.
* sysdeps/sh/sh4/fpu/fraiseexcpt.c: Likewise.
* sysdeps/sh/sh4/fpu/fsetexcptflg.c: Likewise.
2000-06-14 Jakub Jelinek <jakub@redhat.com>
* include/libc-symbols.h (link_warning): If HAVE_SECTION_QUOTES is
defined, terminate quotes and read them after the comment char.
* configure.in (HAVE_SECTION_QUOTES): Test whether
__attribute__((section ("x"))) puts quotes around x or not.
* config.h.in (HAVE_SECTION_QUOTES): Add.
* configure: Rebuilt.
2000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
A few optimizations. Got rid of unnecessary wakeups of timer threads,
tightened up some critical regions and micro-optimized some list
manipulation code.
* sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
Returns int value now to indicate whether timer was queued at head.
* sysdeps/pthread/posix-timer.h: Likewise.
* sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of
new return value from __timer_thread_queue_timer to avoid waking
up timer thread unnecessarily.
* sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks
inuse flag, because this requires mutex to be held. Callers updated
to do the check when they have the mutex.
* sysdeps/pthread/timer_getoverr.c: Add check for inuse here.
* sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical
regions: avoids making system calls while holding timer mutex, and
a few computations were moved outside of the mutex as well.
* sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
* sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed
to list_unlink_ip, meaning idempotent. Pointer manipulation
changed to get better better code out of gcc.
* sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent
version of list_unlink added here.
* sysdeps/pthread/timer_delete.c: Use appropriate list unlink
function in all places: idempotent one for timers, non-idempotent
one for thread nodes.
* sysdeps/pthread/timer_settime: Likewise.
* sysdeps/pthread/timer_routines.c: Likewise.
2000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Yutaka Niibe <gniibe@chroot.org>
* sysdeps/sh/Dist: New file.
* sysdeps/sh/Implies: New file.
* sysdeps/sh/gmp-mparam.h: New file.
* sysdeps/sh/init-first.c: New file.
* sysdeps/sh/machine-gmon.h: New file.
* sysdeps/sh/memcpy.S: New file.
* sysdeps/sh/memprof.h: New file.
* sysdeps/sh/memset.S: New file.
* sysdeps/sh/sh3/__longjmp.S: New file.
* sysdeps/sh/sh3/bits/endian.h: New file.
* sysdeps/sh/sh3/bits/huge_val.h: New file.
* sysdeps/sh/sh3/bits/setjmp.h: New file.
* sysdeps/sh/sh3/bsd-_setjmp.S: New file.
* sysdeps/sh/sh3/bsd-setjmp.S: New file.
* sysdeps/sh/sh3/dl-machine.h: New file.
* sysdeps/sh/sh3/elf/initfini.c: New file.
* sysdeps/sh/sh3/elf/start.S: New file.
* sysdeps/sh/sh3/setjmp.S: New file.
* sysdeps/sh/sh3/sys/ucontext.h: New file.
* sysdeps/sh/sh4/__longjmp.S: New file.
* sysdeps/sh/sh4/bits/endian.h: New file.
* sysdeps/sh/sh4/bits/huge_val.h: New file.
* sysdeps/sh/sh4/bits/setjmp.h: New file.
* sysdeps/sh/sh4/bsd-_setjmp.S: New file.
* sysdeps/sh/sh4/bsd-setjmp.S: New file.
* sysdeps/sh/sh4/dl-machine.h: New file.
* sysdeps/sh/sh4/elf/initfini.c: New file.
* sysdeps/sh/sh4/elf/start.S: New file.
* sysdeps/sh/sh4/fpu/bits/fenv.h: New file.
* sysdeps/sh/sh4/fpu/bits/huge_val.h: New file.
* sysdeps/sh/sh4/fpu/bits/mathdef.h: New file.
* sysdeps/sh/sh4/fpu/fclrexcpt.c: New file.
* sysdeps/sh/sh4/fpu/fegetenv.c: New file.
* sysdeps/sh/sh4/fpu/fegetround.c: New file.
* sysdeps/sh/sh4/fpu/feholdexcpt.c: New file.
* sysdeps/sh/sh4/fpu/fesetenv.c: New file.
* sysdeps/sh/sh4/fpu/fesetround.c: New file.
* sysdeps/sh/sh4/fpu/fpu_control.h: New file.
* sysdeps/sh/sh4/fpu/fraiseexcpt.c: New file.
* sysdeps/sh/sh4/fpu/fsetexcptflg.c: New file.
* sysdeps/sh/sh4/fpu/ftestexcept.c: New file.
* sysdeps/sh/sh4/fpu/libm-test-ulps: New file.
* sysdeps/sh/sh4/setjmp.S: New file.
* sysdeps/sh/sh4/sys/ucontext.h: New file.
* sysdeps/sh/strlen.S: New file.
* sysdeps/sh/sysdep.h: New file.
* sysdeps/unix/sh/sysdep.S: New file.
* sysdeps/unix/sh/sysdep.h: New file.
* sysdeps/unix/sysv/linux/sh/Dist: New file.
* sysdeps/unix/sysv/linux/sh/Makefile: New file.
* sysdeps/unix/sysv/linux/sh/Versions: New file.
* sysdeps/unix/sysv/linux/sh/bits/mman.h: New file.
* sysdeps/unix/sysv/linux/sh/bits/resource.h: New file.
* sysdeps/unix/sysv/linux/sh/brk.c: New file.
* sysdeps/unix/sysv/linux/sh/chown.c: New file.
* sysdeps/unix/sysv/linux/sh/clone.S: New file.
* sysdeps/unix/sysv/linux/sh/fchown.c: New file.
* sysdeps/unix/sysv/linux/sh/fxstat.c: New file.
* sysdeps/unix/sysv/linux/sh/getegid.c: New file.
* sysdeps/unix/sysv/linux/sh/geteuid.c: New file.
* sysdeps/unix/sysv/linux/sh/getgroups.c: New file.
* sysdeps/unix/sysv/linux/sh/getresgid.c: New file.
* sysdeps/unix/sysv/linux/sh/getresuid.c: New file.
* sysdeps/unix/sysv/linux/sh/getrlimit.c: New file.
* sysdeps/unix/sysv/linux/sh/getrlimit64.c: New file.
* sysdeps/unix/sysv/linux/sh/getuid.c: New file.
* sysdeps/unix/sysv/linux/sh/lchown.c: New file.
* sysdeps/unix/sysv/linux/sh/lxstat.c: New file.
* sysdeps/unix/sysv/linux/sh/msgctl.c: New file.
* sysdeps/unix/sysv/linux/sh/oldgetrlimit64.c: New file.
* sysdeps/unix/sysv/linux/sh/pipe.S: New file.
* sysdeps/unix/sysv/linux/sh/profil-counter.h: New file.
* sysdeps/unix/sysv/linux/sh/semctl.c: New file.
* sysdeps/unix/sysv/linux/sh/setegid.c: New file.
* sysdeps/unix/sysv/linux/sh/seteuid.c: New file.
* sysdeps/unix/sysv/linux/sh/setfsgid.c: New file.
* sysdeps/unix/sysv/linux/sh/setfsuid.c: New file.
* sysdeps/unix/sysv/linux/sh/setgid.c: New file.
* sysdeps/unix/sysv/linux/sh/setgroups.c: New file.
* sysdeps/unix/sysv/linux/sh/setregid.c: New file.
* sysdeps/unix/sysv/linux/sh/setresgid.c: New file.
* sysdeps/unix/sysv/linux/sh/setresuid.c: New file.
* sysdeps/unix/sysv/linux/sh/setreuid.c: New file.
* sysdeps/unix/sysv/linux/sh/setrlimit.c: New file.
* sysdeps/unix/sysv/linux/sh/setuid.c: New file.
* sysdeps/unix/sysv/linux/sh/sh3/register-dump.h: New file.
* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: New file.
* sysdeps/unix/sysv/linux/sh/shmctl.c: New file.
* sysdeps/unix/sysv/linux/sh/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/sh/socket.S: New file.
* sysdeps/unix/sysv/linux/sh/sys/io.h: New file.
* sysdeps/unix/sysv/linux/sh/sys/ucontext.h: New file.
* sysdeps/unix/sysv/linux/sh/sys/user.h: New file.
* sysdeps/unix/sysv/linux/sh/syscalls.list: New file.
* sysdeps/unix/sysv/linux/sh/sysdep.S: New file.
* sysdeps/unix/sysv/linux/sh/sysdep.h: New file.
* sysdeps/unix/sysv/linux/sh/vfork.S: New file.
* sysdeps/unix/sysv/linux/sh/xstat.c: New file.
2000-06-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/timer_routines.c (list_append): Little fix to
reall append the entry.
list and remove from active list.
2000-06-10 Kaz Kylheku <kaz@ashi.footprints.net>
* sysdeps/pthread/timer_create.c: Thread matching now done on
clock type as well as thread attributes.
There are individual global signal-delivering threads for
different clock types.
* sysdeps/pthread/posix-timer.h: Likewise.
* sysdeps/pthread/timer_routines.c: Likewise.
* sysdeps/pthread/timer_routines.c: Thread allocation and
deallocation function now remembers to put thread on active
list and remove from active list.
Thus now the feature of binding multiple timers
to a single thread actually works.
2000-06-10 Ulrich Drepper <drepper@redhat.com>
* pthread.c (__pthread_create_2_1): Optimize a bit.
* internals.h (invalid_handle): Also test for p_terminated != 0.
(nonexisting_handle): New function. Same as old invalid_handle.
* join.c (pthread_join): Use nonexisting_handle instead of
invalid_handle to test for acceptable thread handle.
Reported by Permaine Cheung <pcheung@cygnus.com>.
* sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid.
* sysdeps/pthread/timer_create.c: Fill in creator_pid.
* sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal
with sigqueueinfo is this system call is available.
* sysdeps/pthread/timer_create.c (timer_create): Allow
CLOCK_CPUTIME if _POSIX_CPUTIME is defined.
2000-05-22 Andreas Jaeger <aj@suse.de>
* math/Makefile: Add -D__FAST_MATH__ to CFLAGS-test-ifloat.c,
CFLAGS-test-idouble.c, CFLAGS-test-ildoubl.c.
* manual/math.texi (FP Function Optimizations): Document gcc
-ffast-math behaviour with mathinlines.
* sysdeps/i386/fpu/bits/mathinline.h: Only use save inline
functions unless -ffast-math is given to gcc.
* elf/soinit.c (__libc_global_ctors): Move
__pthread_initialize_minimal call out of HAVE_DWARF2_* defines.
* resolv/resolv.h (__res_state): Added __attribute__((const)).
(_res): If __RES_PTHREAD_INTERNAL is defined, declare it as
variable, don't define it to __res_state call.
2000-05-13 Jakub Jelinek <jakub@redhat.com>
* internals.h (__RES_PTHREAD_INTERNAL): Define.
2000-05-13 Jakub Jelinek <jakub@redhat.com>
* internals.h (__RES_PTHREAD_INTERNAL): Define.
2000-05-07 H.J. Lu <hjl@gnu.org>
* csu/initfini.c: Moved to ....
* sysdeps/generic/initfini.c: ...here.
* csu/Makefile (initfini.c): Set vpath to $(full_config_sysdirs).
2000-05-06 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): If __gconv_find_transform
returned != __GCONV_OK, there is nothing to clean up.
2000-05-06 Bruno Haible <haible@clisp.cons.org>
* intl/tst-gettext.c (main): Disable possibly existing LC_CTYPE and
OUTPUT_CHARSET environment variables.
2000-05-06 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/dl-cache.h (struct file_entry_new): New.
(struct cache_file_new): New.
(struct file_entry): New (moved from cache.c).
(struct cache_file): New (moved from cache.c).
* sysdeps/generic/dl-cache.c (SEARCH_CACHE): New macro, broken out
from _dl_load_cache_lookup.
(_dl_load_cache_lookup): Move search to SEARCH_CACHE macro, handle
the different cache formats.
New variable cache_new for new format.
* elf/ldconfig.h: Change according to changes in cache.c and
ldconfig.c; remove cache_libcmp; add opt_format.
* elf/ldconfig.c: Include "dl-cache.h" and "dl-procinfo.h"; remove
stuff that's defined in those headers.
Add hwcap to struct lib_entry.
(opt_format): New variable to select cache format.
(options): Add format parameter.
(is_hwcap): New function.
(path_hwcap): New function.
(parse_opt): Handle new format parameter.
(search_dir): Handle hwcap, search also subdirectories with hwcap.
* elf/cache.c (_GNU_SOURCE): Removed. Not needed anymore since
ldconfig is part of glibc.
Include dl-cache.h and remove stuff that's defined there.
(struct cache_entry): Add new member hwcap.
(print_entry): Print hwcap, cleanup a bit.
(print_cache): Print new and old formats.
(compare): Use _dl_cache_libcmp from dl-cache.h; handle hwcap.
(save_cache): Save new and old formats.
(add_to_cache): Handle hwcap.
* sysdeps/generic/dl-cache.c (_dl_cache_libcmp): Moved from here...
* sysdeps/generic/dl-cache.h (_dl_cache_libcmp): ...to here.
* sysdeps/generic/dl-cache.c (LD_SO_CACHE): Moved from here...
* sysdeps/generic/dl-cache.h (LD_SO_CACHE): ...to here.
* sysdeps/generic/dl-cache.c (CACHEMAGIC): Moved from here...
* sysdeps/generic/dl-cache.h (CACHEMAGIC): ...to here.
2000-05-05 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (alignof): New macro.
(_nl_find_msg): Use it instead of __alignof__. Pass correct output
buffer length to __gconv/iconv. If malloc (freemem_size) fails, set
freemem_size to 0.
2000-05-05 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c (dcigettext): Fix interpretation of tsearch
return value.
* sysdeps/unix/sysv/linux/i386/getcpuclockid.c
(pthread_getcpuclockid): Correct test for ourselves.
2000-05-05 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/i386/getcpuclockid.c
(pthread_getcpuclockid): Correct test for ourselves.
2000-05-03 Ulrich Drepper <drepper@redhat.com>
* string/bits/string2.h: Declare __strdup and __strndup if necessary.
Reported by Bruno Haible.
2000-04-29 Bruno Haible <haible@clisp.cons.org>
* manual/arith.texi: Remove @w from @itemize.
2000-04-27 Ulrich Drepper <drepper@redhat.com>
* elf/soinit.c (__libc_global_ctors): Call __pthread_initialize_minimal
if this function is available.
* sysdeps/i386/i486/atomicity.h (exchange_and_add): Use uint32_t for
all values.
<haible@clisp.cons.org>.
2000-04-24 Ulrich Drepper <drepper@redhat.com>
* manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
* sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
necessary.
* sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
2000-04-20 Ulrich Drepper <drepper@redhat.com>
* manual/stdio.texi: Give advise about handling error when using
stream functions.
Patch by Michael Deutschmann <michael@talamasca.ocis.net>.
2000-04-19 Jakub Jelinek <jakub@redhat.com>
* locale/programs/ld-ctype.c (ctype_output): Set size of the idx
field to nelems * sizeof (uint32_t).
* locale/programs/ld-address.c (address_output): Align word fields
properly.
* locale/programs/ld-monetary.c (monetary_output): Likewise.
Don't restart idx pointers to idx end at the duo_int_curr_symbol
field.
Avoid giving arbitrary garbage in the crncystr field.
Use sizeof(uint32_t) instead of 4 for len in uno_valid_from,
uno_valid_to, duo_valid_from, duo_valid_to and conversion_rate
fields.
* locale/programs/ld-numeric.c (numeric_output): Likewise.
Don't restart idx pointers to idx end at the decimal_point_wc field.
* locale/programs/ld-time.c (time_output): week_1stday should be
word, not byte. Align it properly.
2000-04-19 H.J. Lu <hjl@gnu.org>
* csu/gmon-start.c (_start): Declared as "extern void".
(etext): Likewise.
2000-04-18 Andreas Jaeger <aj@suse.de>
* manual/install.texi (Running make install): Don't mention utmpd
anymore.
2000-04-18 Andreas Jaeger <aj@suse.de>
* linuxthreads/Versions: Use ld instead of ld.so.
* elf/Makefile (ld-map): Use ld.map.
* Versions.def: Use ld instead of ld.so.
* elf/Versions: Likewise.
* sysdeps/mach/hurd/Versions: Likewise.
2000-04-16 Ulrich Drepper <drepper@redhat.com>
* pthread.c: Correct long-time braino. We never set SA_SIGINFO and
therefore don't need the _rt versions of the signal handlers.
* internals.h: Declare __pthread_yield.
* elf/dl-version.c (_dl_check_map_versions): New argument trace_mode.
Before testing versions check that we actually loaded the object
and whether we are in trace mode. If not loaded during tracing don't
test versions in this object.
(_dl_check_all_versions): Take new parameter and pass to
_dl_check_map_versions.
* sysdeps/generic/ldsodefs.h: Update prototypes for
_dl_check_all_versions and _dl_check_map_versions.
* elf/rtld.c (struct version_check_args): Add dotrace.
(version_check_doit): Pass args->dotrace to _dl_check_all_versions.
(dl_main): Pass info about trace mode to version_check_doit.
* elf/dl-open.c (dl_open_worker): Pass zero as new argument to
_dl_check_all_versions.
* manual/users.texi (XPG Functions): Document utmpxname, getutmp,
and getutmpx.
Patch by Bryan Henderson <bryanh@giraffe-data.com>.
* sysdeps/unix/sysv/linux/alpha/adjtime.c: Fix typo in
compat_symbol call for old adjtime.
* sysdeps/alpha/dl-machine.h (RTLD_START): Rewrite for new init
* shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
2.2 for linuxthreads.
2000-04-14 Andreas Jaeger <aj@suse.de>
* shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
2.2 for libdl, ld and libm.
* shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
2.2 for linuxthreads.
2000-04-13 Ulrich Drepper <drepper@redhat.com>
* posix/globtest.sh: Work around inconsistency with expanding ~/
in shell (PR libc/1690). Reported by patsmith@pobox.com.
* sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
into pthread_spinlock_t. Change all uses.
* spinlock.c: Implement pthread_spin_lock.
Rename __pthread_unlock to __pthread_spin_unlock and define weak
alias for real name.
Define pthread_spin_trylock, pthread_spin_init, and
pthread_spin_destroy.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* condvar.c: Likewise.
* internals.h: Likewise.
* join.c: Likewise.
* manager.c: Likewise.
* mutex.c: Likewise.
* pthread.c: Likewise.
* rwlock.c: Likewise.
* semaphore.c: Likewise.
* signals.c: Likewise.
* posix/getconf.c: Add support for many more POSIX options.
* sysdeps/posix/sysconf.c: Likewise.
* sysdeps/generic/bits/confname.h: Add many more POSIX options.
* sysdeps/mach/hurd/bits/posix_opt.h: Add _POSIX_REGEXP and
_POSIX_SHELL.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* sysdeps/unix/sysv/linux/i386/bits/time.h: Rename __CLOCK_HIGHRES to
CLOCK_PROCESS_CPUTIME_ID. Add define CLOCK_MONOTONIC and
CLOCK_THREAD_CPUTIME_ID.
* sysdeps/unix/i386/clock_getcpuclockid.c: Set *clock_id to
CLOCK_PROCESS_CPUTIME_ID.
* sysdeps/unix/i386/i586/clock_getres.c: Change for renaming of
__CLOCK_HIGHRES to CLOCK_PROCESS_CPUTIME_ID. Handle
CLOCK_THREAD_CPUTIME_ID and CLOCK_MONOTONIC the same.
* sysdeps/unix/i386/i586/clock_gettime.c: Likewise.
* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
(__compare_and_swap): Mark as modifying memory.
2000-04-11 Andreas Jaeger <aj@suse.de>
* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
(__compare_and_swap): Mark as modifying memory.
2000-04-11 Geoff Keating <geoffk@cygnus.com>
* sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
__volatile__.
(__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
Don't have the 'asm' __volatile__.
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* internals.h: Define MEMORY_BARRIER as empty if not defined already.
* spinlock.c (__pthread_lock): Add memory barriers.
(__pthread_unlock): Likewise.
* sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
instruction.
(RELEASE): Not needed anymore.
(__compare_and_swap): Mark asm as modifying memory.
* sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
of MEMORY_BARRIER.
(__compare_and_swap): Use MEMORY_BARRIER instead of sync.
* sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
(MEMORY_BARRIER): Define using stbar.
* sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
stbar.
(__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
Mike Burrows <m3b@pa.dec.com>.
* sysdeps/unix/sysv/linux/getdents.c (__getdents): Avoid initial
lseek call be passing in a buffer which never allow a successful
first getdents syscall if not at leas the initial entry can be
stored in the user buffer.
2000-03-26 Ulrich Drepper <drepper@redhat.com>
* include/features.h: Undef and document __USE_XOPEN2K.
* malloc/mcheck.c: Implement pedantic checking of all allocated blocks
whenever a function is called. Initiated by calling mcheck_pedantic
instead of mcheck.
* malloc/mcheck.h: Declare mcheck_pedantic.
* malloc/Versions [libc] (GLIBC_2.2): Add mcheck_pedantic.
* locale/programs/localdef.c: Use mcheck_pedantic instead of mcheck
for now.
2000-03-21 Ulrich Drepper <drepper@redhat.com>
* include/shlib-compat.h (versioned_symbol): Give preprocessor the
chance to expand VERSION_##lib##_##version.
2000-03-14 Andreas Jaeger <aj@suse.de>
* pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
REG_GS.
(pthread_handle_sigrestart_rt): Likewise.
* signals.c (pthread_sighandler_rt): Likewise.
2000-02-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/sigwait.c: Don't look for signal 0 since it does
not exist. Patch by Miloslav Trmac <mitr@volny.cz> (PR libc/1601).
* sysdeps/i386/fpu/s_nearbyint.S: Disable raising exception, not
enable it. Patch by Miloslav Trmac <mitr@volny.cz> (PR libc/1600).
* sysdeps/i386/fpu/s_nearbyintf.S: Likewise.
* sysdeps/i386/fpu/s_nearbyintf.l: Likewise.
2000-02-12 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/i386/msgctl.c (__new_msgctl): Move errno
declaration to place where it's needed to avoid compiler warning.
* sysdeps/unix/sysv/linux/i386/semctl.c (__new_semctl): Likewise.
* locale/weightwc.h (findidx): Correct find index value.
2000-02-11 Ulrich Drepper <drepper@redhat.com>
* stdio-common/printf-parse.h (parse_one_spec): Set wide elements.
* stdio-common/printf_fp.c: Truely support wide characater output.
Finally handle decimal points and thousands separator characters
correctly for multibyte output.
* stdio-common/printf_size.c: Likewise.
* sysdeps/generic/printf_fphex.c: Likewise.
* sysdeps/ieee754/ldbl-96/printf_fphex.c: Likewise.
* stdio-common/vfscanf.c: Implement I modifier for numbers to read
locale dependent digits.
* locale/C-monetary.c (_nl_C_LC_MONETARY): Change wide character
decimal point and thousands separator values to wide characters from
wide character strings.
* locale/C-numeric.c (_nl_C_LC_NUMERIC): Likewise.
* locale/indigitswc.h: Dereference wcdigits array elements.
2000-02-03 Jakub Jelinek <jakub@redhat.com>
* stdlib/canonicalize.c (canonicalize): Zero terminate
path to copy on error.
2000-02-01 Cristian Gafton <gafton@redhat.com>
* misc/syslog.c (closelog): Reset LogType to SOCK_DGRAM.
2000-01-31 Philip Blundell <philb@gnu.org>
* sysdeps/arm/fpu/fpu_control.h (_FPU_DEFAULT): Set the AC bit.
2000-01-31 Andreas Jaeger <aj@suse.de>
* intl/Makefile (generated): msgs.h is generated.
* localedata/Makefile (generated-dirs): Add de_DE.437.
2000-01-31 Jakub Jelinek <jakub@redhat.com>
* config.make.in: Allow default localedir to come from configure.
* configure.in: Export libc_cv_localedir.
* sysdeps/unix/sysv/linux/configure.in: For sparc64, put locale
stuff into $exec_prefix/lib/locale because it can be shared between
32bit and 64bit libraries.
* configure: Rebuilt.
* sysdeps/unix/sysv/linux/configure: Rebuilt.
2000-01-31 Andreas Jaeger <aj@suse.de>
* inet/tst-network.c: New file.
* inet/Makefile (tests): Add tst-network.
* inet/inet_net.c (inet_network): Don't overwrite memory or allow
to great last digits.