(__lll_private_flag): Define.
(lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
(lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
__lll_private_flag.
(lll_private_futex_wait, lll_private_futex_timedwait,
lll_private_futex_wake): Define as wrapper around non-_private
macros.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
(__lll_private_flag): Define.
(lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
(lll_private_futex_wait, lll_private_futex_timedwait,
lll_private_futex_wake): Define as wrapper around non-_private
macros.
2007-06-13 Jakub Jelinek <jakub@redhat.com>
* include/link.h: Don't include rtld-lowlevel.h.
(struct link_map): Remove l_scope_lock.
* sysdeps/generic/ldsodefs.h: Don't include rtld-lowlevel.h.
(_dl_scope_free_list): New field (variable) in _rtld_global.
(DL_LOOKUP_SCOPE_LOCK): Remove.
(_dl_scope_free): New prototype.
* elf/dl-runtime.c (_dl_fixup): Don't use __rtld_mrlock_*lock.
Don't pass DL_LOOKUP_SCOPE_LOCK to _dl_lookup_symbol_x.
(_dl_profile_fixup): Likewise.
* elf/dl-sym.c (do_sym): Likewise. Use wrapped _dl_lookup_symbol_x
whenever !RTLD_SINGLE_THREAD_P, use THREAD_GSCOPE_SET_FLAG and
THREAD_GSCOPE_RESET_FLAG around it.
* elf/dl-close.c (_dl_close_worker): Don't use
__rtld_mrlock_{change,done}. Call _dl_scope_free on the old
scope. Make sure THREAD_GSCOPE_WAIT () happens if any old
scopes were queued or if l_scope_mem has been abandoned.
* elf/dl-open.c (_dl_scope_free): New function.
(dl_open_worker): Use it. Don't use __rtld_mrlock_{change,done}.
* elf/dl-support.c (_dl_scope_free_list): New variable.
* elf/dl-lookup.c (add_dependency): Remove flags argument.
Remove DL_LOOKUP_SCOPE_LOCK handling.
(_dl_lookup_symbol_x): Adjust caller. Remove DL_LOOKUP_SCOPE_LOCK
handling.
* elf/dl-object.c (_dl_new_object): Don't use
__rtld_mrlock_initialize.
2007-06-19 Ulrich Drepper <drepper@redhat.com>
Tomas Janousek <tjanouse@redhat.com>
Ulrich Drepper <drepper@redhat.com>
[BZ #4647]
* resolv/res_send.c (send_dg): Remove socket_pf. Use ipv6_unavail
member in __res_state, only convaddr4to6 if nssocks[ns] is a PF_INET6
socket.
* resolv/resolv.h (__res_state): Add ipv6_unavail member. Make
unused member a bitmap.
* resolv/res_init.c (__res_vinit): Reset ipv6_unavail if IPv6
servers are configured.
2007-06-18 Jakub Jelinek <jakub@redhat.com>
(__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
(__pthread_rwlock_wrlock): Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
(pthread_rwlock_timedrdlock): Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
(pthread_rwlock_timedwrlock): Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
(__pthread_rwlock_unlock): Likewise.
2007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
Split __flags into __flags, __shared, __pad1 and __pad2.
* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
futexes if they are available.
* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
in libc-lowlevellock.S allow using private futexes.
* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
to call lll_futex_timed_wait. Add lll_private_futex_wait,
lll_private_futex_timed_wait and lll_private_futex_wake.
(lll_robust_mutex_unlock): Fix typo.
* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
field in futex command setup.
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
if they are available. Remove clear_once_control.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
futexes if they are available.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
Wake only when there are waiters.
* sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
support. Indicate that there are waiters. Remove unnecessary
extra cancellation test.
* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
left-over duplication of __sem_wait_cleanup.
whether there are more than one thread makes no sense here since
we only call the slow path if the locks are taken.
* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
* tst-initializers1.c: Show through exit code which test failed.
* pthread_rwlock_init.c: Also initialize __shared field.
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
element in rwlock structure into four byte elements. One of them is
the new __shared element.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
Likewise.
[__WORDSIZE=64]: Renamed __pad1 element int rwlock structire to
__shared, adjust names of other padding elements.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
* sysdeps/pthread/pthread.h: Adjust rwlock initializers.
* sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
FUTEX_PRIVATE_FLAG.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
futex to use private operations if possible.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
Add private field.
* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
* pthread_barrier_init.c: Set private flag if pshared and private
futexes are supported.
* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
private field in futex command setup.
* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
* sem_init.c (__new_sem_init): Rewrite to initialize all three
fields in the structure.
(__old_sem_init): New function.
* sem_open.c: Initialize all fields of the structure.
* sem_getvalue.c: Adjust for renamed element.
* sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
(gen-as-const-headers): Add structsem.sym.
* sysdeps/unix/sysv/linux/structsem.sym: New file.
* sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
struct new_sem. Add struct old_sem.
* sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
* sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
* sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
* Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
* tst-sem10.c: New file.
* tst-sem11.c: New file.
* tst-sem12.c: New file.
* tst-typesizes.c: Test struct new_sem and struct old_sem instead
of struct sem.
2007-05-25 Ulrich Drepper <drepper@redhat.com>
(open): Fix comment typos. Don't call __open_2 if flags
is a compile time constant without O_CREAT.
(__open64_2): Add nonnull attribute.
(open64): Fix comment typos. Don't call __open64_2 if flags
is a compile time constant without O_CREAT.
(__openat_2): Add nonnull attribute, fix nonnull attribute
on redirect.
(openat): Fix comment typos. Don't call __openat_2 if flags
is a compile time constant without O_CREAT.
(__openat64_2): Add nonnull attribute, fix nonnull attribute
on redirect.
(openat64): Fix comment typos. Don't call __openat64_2 if flags
is a compile time constant without O_CREAT.
private futexes are available.
* allocatestack.c (allocate_stack): Copy private_futex field from
current thread into the new stack.
* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
futexes if they are available.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
in libc-lowlevellock.S allow using private futexes.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
FUTEX_PRIVATE_FLAG.
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
if they are available.
* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
* sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
* sysdeps/i386/tcb-offsets.sym: Likewise.
* sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
* sysdeps/i386/tls.h (tcbhead_t): Likewise.
pthread_mutex_init failed with ENOTSUP.
2007-05-21 Jakub Jelinek <jakub@redhat.com>
* tst-robust9.c (do_test): Don't fail if ENABLE_PI and
pthread_mutex_init failed with ENOTSUP.
* stdio-common/vfprintf.c (vfprintf): Don't shadow workstart variable,
reinitialize workend at the start of each do_positional format spec
loop, free workstart before do_positional loops.
(printf_unknown): Fix size of work_buffer.
* stdio-common/tst-sprintf.c (main): Add 3 new testcases.
global scope, wait for all lookups to finish afterwards.
* elf/dl-open.c (add_to_global): When global scope array must
grow, allocate a new one and free old array only after all
lookups finish.
* elf/dl-runtime.c (_dl_fixup): Protect using global scope.
(_dl_lookup_symbol_x): Likewise.
* elf/dl-support.c: Define _dl_wait_lookup_done.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Add
_dl_wait_lookup_done.
* pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
is detected.
* pthread_mutex_timedlock.c: Likewise.
* pthread_mutex_trylock.c: Likewise.
Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
* Makefile (tests): Add tst-robust9 and tst-robustpi9.
* tst-robust9.c: New file.
* tst-robustpi9.c: New file.
* sysdeps/x86_64/fpu/k_cosl.c: New file.
* sysdeps/x86_64/fpu/k_rem_pio2l.c: New file.
* sysdeps/x86_64/fpu/k_sinl.c: New file.
* sysdeps/x86_64/fpu/k_tanl.c: New file.
* sysdeps/unix/sysv/linux/Makefile [subdir=posix] (tests): Add
tst-getcpu.
* include/link.h: Move l_version and l_nversion members around to
fill gaps.
(__sched_setaffinity_new): If syscall was successful and
RESET_VGETCPU_CACHE is defined, use it before returning.
* sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c: New file.
* sysdeps/unix/sysv/linux/sched_getcpu.c: New file.
* sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S: New file.
* sysdeps/unix/sysv/linux/Versions: Export sched_getcpu for
GLIBC_2.6.
2007-03-22 Jakub Jelinek <jakub@redhat.com>
* config.h.in (HAVE_LIBCAP): Add.
* nscd/selinux.h: Include sys/capability.h rather than non-existent
sys/capabilities.h.
* nscd/selinux.c (preserve_capabilities): Use cap_free instead of
free_caps. Cast away const from 4th cap_set_flag argument.
smaller scopes.
* elf/dl-dst.h (DL_DST_REQ_STATIC): Add l as macro argument.
(DL_DST_REQUIRED): Adjust user.
* include/dlfcn.h (struct link_map): New forward decl.
* inet/getnameinfo.c: Include stddef.h.
(getnameinfo): Use offsetof.
* time/tst-mktime2.c (do_test): Don't rely on signed wrap.
* stdio-common/vfprintf.c (_itoa): Undef before redefining.
* string/strerror_l.c: Include stdlib.h.
separate cfi regions for the two subsections.
2007-03-13 Richard Henderson <rth@redhat.com>
* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
separate cfi regions for the two subsections.
* io/ftw.c (ftw_startup): Handle special case of FTW_CHDIR in /.
(open_dir_stream): Likewise.
* io/Makefile (tests): Add bug-ftw5.
io/bug-ftw5.c: New file.
2007-02-21 Ulrich Drepper <drepper@redhat.com>
[BZ #4070]
* stdio-common/printf_fp.c (___printf_fp): Handle a few more
* stdio-common/tfformat.c (sprint_doubles): Some more tests.
special cases.
* sysdeps/i386/fpu/e_fmodf.S: Use fprem1 instead of fprem.
* sysdeps/i386/fpu/e_fmodl.c: Likewise.
* sysdeps/i386/fpu/e_fmod.S: Likewise.
Patch by Jared Casper <jaredcasper@gmail.com>.
function table, mangle the pointers.
* sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
* forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
* sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
demangle pointers before use.
* sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
demangle pointer.
* sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
* sysdeps/pthread/setxid.h: Likewise.
Start searching for next comma at p rather than rest.
* misc/Makefile (tests): Add tst-mntent2.
* misc/tst-mntent2.c: New test.
* misc/getusershell.c (initshells): Check for integer overflows.
Make strings buffer one bigger as fgets always succeeds when second
argument is 1. Don't use calloc for shells array. Disallow
/ as shell.
argument.
(_dl_lookup_symbol_x): Adjust caller.
* sysdeps/generic/ldsodefs.h (struct link_namespaces): Remove
_ns_global_scope.
* elf/rtld.c (dl_main): Don't initialize _ns_global_scope.
* elf/dl-libc.c: Revert l_scope name changes.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* elf/dl-close.c (_dl_close): Likewise.
* elf/dl-open.c (dl_open_worker): Likewise. If not SINGLE_THREAD_P,
always use __rtld_mrlock_{change,done}. Always free old scope list
here if not l_scope_mem.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Revert l_scope name
change. Never free scope list here. Just __rtld_mrlock_lock before
the lookup and __rtld_mrlock_unlock it after the lookup.
* elf/dl-sym.c: Likewise.
* include/link.h (struct r_scoperec): Remove.
(struct link_map): Replace l_scoperec with l_scope, l_scoperec_mem
with l_scope_mem and l_scoperec_lock with l_scope_lock.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* sunrpc/xdr_mem.c (xdrmem_setpos): Don't compare addresses
as signed longs, check for x_base + pos overflow.
* sunrpc/Makefile (tests): Add tst-xdrmem2.
* sunrpc/tst-xdrmem2.c: New test.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c (_dl_lookup_symbol_x): Add warning to
_dl_lookup_symbol_x code.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-runtime.c: Include sysdep-cancel.h.
(_dl_fixup, _dl_profile_fixup): Use __rtld_mrlock_* and
scoperec->nusers only if !SINGLE_THREAD_P. Use atomic_*
instead of catomic_* macros.
* elf/dl-sym.c: Include sysdep-cancel.h.
(do_sym): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-close.c: Include sysdep-cancel.h.
(_dl_close): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-open.c: Include sysdep-cancel.h.
(dl_open_worker): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
[BZ #3313]
* malloc/malloc.c (malloc_consolidate): Set maxfb to address of last
fastbin rather than end of fastbin array.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/i486/bits/atomic.h (catomic_decrement): Use correct
body macro.
* sysdeps/x86_64/bits/atomic.h
(__arch_c_compare_and_exchange_val_64_acq): Add missing casts.
(catomic_decrement): Use correct body macro.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* include/atomic.h: Add a unique prefix to all local variables
in macros.
* csu/tst-atomic.c (do_test): Test also catomic_* macros.
* include/link.h: Include <rtld-lowlevel.h>. Define struct
2006-10-12 Richard Sandiford <richard@codesourcery.com>
[BZ #3352]
* elf/dl-minimal.c (realloc): Let malloc() return a new pointer,
and use memcpy() if it does.
Implement reference counting of scope records.
* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
from the list in objects which remain. Always allocate new scope
record.
* elf/dl-open.c (dl_open_worker): When growing array for scopes,
don't resize, allocate a new one.
* elf/dl-runtime.c: Update reference counters before using a scope
array.
* elf/dl-sym.c: Likewise.
* elf/dl-libc.c: Adjust for l_scope name change.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* include/link.h: Inlcude <rtld-lowlevel.h>. Define struct
r_scoperec. Replace r_scope with pointer to r_scoperec structure.
Add l_scoperec_lock.
* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
* sysdeps/generic/rtld-lowlevel.h: New file.
* include/atomic.h: Rename atomic_and to atomic_and_val and
atomic_or to atomic_or_val. Define new macros atomic_and and
atomic_or which do not return values.
* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
Various cleanups.
* sysdeps/i386/i486/bits/atomic.h: Likewise.
mutexes wake all mutexes.
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 4 new cap
names to the beginning. Rename "cell" to "cellbe".
(_dl_powerpc_platforms): New.
* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
(HWCAP_IMPORTANT): Remove power{4,5,5+} and cell.
(_DL_PLATFORMS_COUNT, _DL_FIRST_PLATFORM): Define.
(_DL_HWCAP_PLATFORM): Define to new mask.
(_dl_platform_string, _dl_string_platform): New functions.
* sysdeps/powerpc/sysdep.h (PPC_FEATURE_BOOKE, PPC_FEATURE_SMT,
PPC_FEATURE_ICACHE_SNOOP, PPC_FEATURE_ARCH_2_05): Define.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela):
Ensure relocation doesn't clobber any bits outside of the
immediate field for R_SPARC_TLS_LE_HIX22, R_SPARC_WDISP30,
R_SPARC_HI22 and R_SPARC_H44.
ld.so.
* malloc/malloc.c (_int_malloc): Use full list insert and not
shortcut which assumes the list is empty for large requests
too.
* elf/tst-addr1.c (do_test): Allow i.dli_sname "_IO_printf".
2006-08-12 Ulrich Drepper <drepper@redhat.com>
[BZ #2843]
* pthread_join.c (pthread_join): Account for self being canceled
when checking for deadlocks.
* tst-join5.c: Cleanups. Allow to be used in tst-join6.
(tf1): Don't print anything after pthread_join returns, this would be
another cancellation point.
(tf2): Likewise.
* tst-join6.c: New file.
* Makefile (tests): Add tst-join6.
* stdio-common/printf_fphex.c (__printf_fphex): When rounding up
'f', use '1' as leading digit not '\1'.
* stdio-common/Makefile (tests): Add bug16.
* stdio-common/bug16.c: New file.
[BZ #2914]
* sysdeps/unix/sysv/linux/gethostid.c: Don't define OLD_HOSTIDFILE
and don't try to open it. The patch introducing the macro
contained a bug and used the same file name as the new file
instead of using /var/adm/hostid. Nobody complaint so I'm taking
this out completely.
[BZ #2926]
* assert/assert.h: Move cast to void inside ?: to quiet gcc.
Patch by Jerry James <Jerry.James@usu.edu>.
2006-08-03 Ulrich Drepper <drepper@redhat.com>
* rt/Makefile (tests): Add tst-clock2.
* rt/tst-clock2.c: New file.
[BZ #2978]
* resolv/gai_notify.c (__gai_notify_only): Copy memory for thread
function and its parameters and pass it to new thread.
(__gai_notify): Add support for alternative waiting for completion.
* resolv/gai_suspend.c (gai_suspend): Add support for alternative
waiting for completion.
* resolv/getaddrinfo_a.c: Likewise.
* resolv/gai_misc.h (struct waitlist): Don't add cond if alternative
waiting for completion is used.
* resolv/gai_misc.c: Allow overwriting code to start helper thread.
* resolv/gai_cancel.c: Include <gai_misc.h> not "gai_misc.h".
* resolv/gai_error.c: Likewise.
* resolv/gai_sigqueue.c: Likewise.
* hurd/getdport.c (__detdport): Don't return EBADF; instead set
errno to EBADF and return MACH_PORT_NULL.
* posix/Makefile (CFLAGS-waitid.c): Add -fasynchronous-unwind-tables.
2006-06-23 Joseph Myers <joseph@codesourcery.com>
[BZ #2980]
* posix/Makefile (CFLAGS-waitid.c): Add
-fasynchronous-unwind-tables.
2006-08-02 Ulrich Drepper <drepper@redhat.com>
* elf/dl-addr.c (_dl_addr): If GNU-style hash tables are present,
walk them instead of the symbol table.
(_dl_lookup_symbol_x): Rename hash to old_hash and don't compute
value here. Compute new-style hash value. Pass new hash value
and reference to variable with the old value to do_lookup_x.
(_dl_setup_hash): If DT_GNU_HASH is defined, use it and not
old-style hash table.
(_dl_debug_bindings): Pass new hash value and reference to variable
with the old value to do_lookup_x.
* elf/do-lookup.h (do_lookup_x): Accept additional parameter with
new-style hash value and change old-style hash value parameter to
be a reference. Reoganize functions to determine whether
new-style hash table is available. Only fall back on old-style
table. If old-style hash value is needed, compute it here.
* elf/dynamic-link.h (elf_get_dynamic_info): Relocate DT_GNU_HASH
entry.
* elf/elf.h: Define SHT_GNU_HASH, DT_GNU_HASH, DT_TLSDEC_PLT,
DT_TLSDEC_GOT. Adjust DT_ADDRNUM.
* include/link.h (struct link_map): Add l_gnu_bitmask_idxbits,
l_gnu_shift, l_gnu_bitmask, l_gnu_buckets and l_gnu_chain_zero.
* Makeconfig: If linker supports --hash-style option add it to all
linker command lines to build DSOs.
* config.make.in: Define have-hash-style.
* configure.in: Test whether linker supports --hash-style option.
* elf/dl-misc.c (_dl_name_match_p): Make MAP parameter const.
* sysdeps/generic/ldsodefs.h: Adjust prototype.
* nscd/nscd_initgroups.c: Mark __gr_map_handle as hidden.
* nscd/nscd_getgr_r.c: Likewise.
* include/rpc/pmap_rmt.h: Mark all functions as hidden.
* nscd/nscd_getai.c (__hst_map_handle): Mark as hidden.
* nscd/nscd_gethst_r.c (__hst_map_handle): Likewise.
* stdlib/longlong.h (__clz_tab): Mark as hidden.
* iconv/gconv_int.h: Mark __gconv_lock as hidden.
__pthread_keys_lock.
* sysdeps/unix/sysv/linux/pthread_setaffinity.c
(__kernel_cpumask_size): Mark as hidden.
* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
was allocated here. [Coverity CID 219]
* posix/getconf.c (print_all): Free confstr data after printing.
[Coverity CID 218]
* sysdeps/posix/getaddrinfo.c (gaih_inet): Free canon string if
list allocation fails. [Coverity CID 215]
* nss/nsswitch.c (__nss_configure_lookup): Fix loop end condition.
[Coverity CID 213]
* argp/argp-help.c (hol_entry_cmp): Don't call canon_doc_option if
string is NULL. [Coverity CID 212]
* argp/Makefile: Add rules to build and run bug-argp1.
* argp/bug-argp1.c: New file.
* io/ftw.c (ftw_dir): Use __rawmemchr instead of strchr to find
end of string.
* stdlib/canonicalize.c (__realpath): Likewise.
* locale/programs/ld-time.c (time_finish): Don't dereference NULL
pointer. [Coverity CID 206]
* elf/dl-dst.h (DL_DST_REQUIRED): Be prepared for missing link map
in statically linked code.
* elf/dl-load.c (_dl_dst_substitute): When replacing ORIGIN in
statically built code, be prepared to have no link map.
[Coverity CID 205]
* argp/argp-help.c (fill_in_uparams): Handle STATE==NULL in
dgettext calls. [Coverity CID 204]
* argp/argp-help.c (struct uparams): Remove valid member. Change
the one user.
(uparam_names): Reduce size. Avoid relative relocations.
Moved to read-only segment.
(fill_in_uparams): Update for new layout.
* sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Parameter can be
assumed to always be != NULL. [Coverity CID 202]
* argp/argp-help.c (hol_entry_help): Remove some dead code
[Coverity CID 200].
* nis/nss_nis/nis-service.c (_nss_nis_getservbyport_r): Optimize
away a few more unconditional yperr2nss calls.
(_nss_nis_getservbyname_r): Likewise.