2003-09-01 Thorsten Kukuk <kukuk@suse.de>
* nis/nss_compat/compat-spwd.c (getspnam_plususer): Return
NSS_STATUS_SUCCESS if entry was found.
(getspent_next_file): Store user in blacklist after entry
was found, use innetgr.
2003-09-01 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise.c: New.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c: New.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Fix tls offset
computation for TCB_AT_TP. Support l_firstbyte_offset != 0 for
DTV_AT_TP, optimize.
2003-08-18 Alfred M. Szmidt <ams@kemisten.nu>
* sysdeps/generic/bits/libc-lock.h (__libc_cleanup_pop): Redefine
and use __libc_cleanup_region_end instead.
2003-08-22 Ulrich Drepper <drepper@redhat.com>
* io/fcntl.h (posix_fallocate): Change type of third parameter to
off_t.
(posix_fallocate64): Change type of third parameter to off64_t.
* sysdeps/generic/posix_fallocate.c: Adjust for type change.
* sysdeps/posix/posix_fallocate.c: Likewise.
* sysdeps/generic/posix_fallocate64.c: Likewise.
* sysdeps/posix/posix_fallocate64.c: Likewise. Add compatibility
code for 32-bit platforms.
* sysdeps/unix/sysv/linux/i386/Versions: Add new version for
posix_fallocate64.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
2003-08-15 Ulrich Drepper <drepper@redhat.com>
* io/Versions [GLIBC_2.3.3]: Add posix_fadvise64.
* io/fcntl.h (posix_fadvise64): Change type of third parameter to
off_t.
* sysdeps/unix/sysv/linux/posix_fadvise.c: Adjust definition.
* sysdeps/unix/make-syscalls.sh: Recognize V prefix to the parameter
description indicating the error value is returned, not -1.
* sysdeps/unix/sysv/linux/Makefile [subdir=io] (subdir_routines): Add
posix_fadvise64_64.
* sysdeps/unix/sysv/linux/kernel-features.h: Add definition of
__ASSUME_FADVISE64_64_SYSCALL.
* sysdeps/unix/sysv/linux/syscalls.list: Don't define madvise and
posix_madvise in one file. Have posix_madvise defined with error
value returned.
Define posix_fadvise64_64 entry. Add version info to posix_fadvise64
entry.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Define
posix_fadvise64_64 entry. Add version info to posix_fadvise64 entry.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/i386/posix_fadvise.S: New file.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Define PSEUDO_ERRVAL,
PSEUDO_END_ERRVAL, and ret_ERRVAL.
* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
* posix/Makefile (routines): Add posix_madvise.
* sysdeps/generic/madvise.c: Don't define posix_madvise.
* sysdeps/generic/posix_madvise.c: New file.
* sysdeps/unix/sysv/aix/posix_madvise.c: New file.
2003-08-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/ldsodefs.h (_rtld_global): Add
_dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
* elf/rtld.c (rtld_lock_default_lock_recursive,
rtld_lock_default_unlock_recursive): New functions.
(dl_main): Initialize _dl_rtld_lock_recursive and
_dl_rtld_unlock_recursive.
2003-08-05 Jakub Jelinek <jakub@redhat.com>
* elf/ldconfig.c (main): Append SLIBDIR and LIBDIR to
config_file directories instead of prepending.
2003-07-31 Jakub Jelinek <jakub@redhat.com>
* dlfcn/dlerror.c (once): New.
(dlerror): Call __libc_once.
(_dlerror_run): Remove once.
2003-07-31 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext):
Sync with 2.5.7 and 2.5.73 kernel changes.
2003-07-31 Jakub Jelinek <jakub@redhat.com>
* dlfcn/eval.c (funcall): Add noinline attribute to shut up warnings.
* elf/rtld.c (dl_main): Cast ElfW(Addr) arguments with %Zx/%Zd
formats to size_t.
* elf/dl-lookup.c (_dl_debug_bindings): Likewise.
* elf/tst-tls6.c (do_test): Use %zd format for l_tls_modid.
* elf/tst-tls8.c (do_test): Use %zd format for modid1 and modid2.
* gmon/tst-sprofil.c (main): Add parens to shut up warning.
* iconv/tst-iconv3.c (main): Use %td instead of %zd for pointer
difference argument.
* stdio-common/tst-wc-printf.c (main): Cast arguments with %C
format to wint_t.
* stdlib/tst-limits.c (main): For WORD_BIT and LONG_BIT, use
%d format and cast expected value to int.
* sysdeps/generic/libc-start.c (STATIC): Add
__attribute__((always_inline) if LIBC_START_MAIN is already defined.
* sysdeps/powerpc/fpu/w_sqrt.c (a_nan, a_inf): Change from uint32_t
to ieee_float_shape_type.
(__sqrt): Avoid type punning.
* sysdeps/powerpc/fpu/w_sqrtf.c (a_nan, a_inf): Change from uint32_t
to ieee_float_shape_type.
(__sqrtf): Avoid type punning.
* sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Don't define
refsym if in dl-conflict.c.
* sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/unix/sysv/linux/i386/semctl.c (union semun): Add __old_buf.
(__new_semctl): Shut up warning.
* sysdeps/unix/sysv/linux/semctl.c (union semun): Add __old_buf.
(__new_semctl): Shut up warning.
* sysdeps/unix/sysv/linux/shmctl.c (__new_shmctl): Wrap long lines.
Change old into union of __old_shmid_ds and __old_shminfo structs.
Adjust all users.
* wcsmbs/wcsmbs-tst1.c (main): Cast arguments with %C format to wint_t.
2003-07-31 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/utimes.c (__utimes): Fix actime and
modtime computation.
* sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise.
* sysdeps/posix/utimes.c (__utimes): Likewise.
2003-07-24 Ulrich Drepper <drepper@redhat.com>
* include/link.h (struct link_map): Add l_tls_firstbyte_offset field.
* sysdeps/generic/dl-tls.c [TLS_TCB_AT_TP] (_dl_determine_tlsoffset):
Fix calculation of offsets to take misalignment of first byte in
file into account.
* elf/dl-load.c (_dl_map_object_from_fd): Initialize
l_tls_firstbyte_offset field.
* elf/rtld.c (_dl_start_final, _dl_start, dl_main): Likewise.
* elf/dl-reloc.c (_dl_allocate_static_tls): Change return type to int.
Take l_tls_firstbyte_offset information into account.
(CHECK_STATIS_TLS): _dl_allocate_static_tls can fail now.
* sysdeps/generic/ldsodefs.h: Adjust _dl_allocate_static_tls prototype.
* elf/Makefile: Add rules to build and run tst-tls14.
* elf/tst-tls14.c: New file.
* elf/tst-tlsmod14a.c: New file.
* elf/tst-tlsmod14b.c: New file.
2003-07-22 Jakub Jelinek <jakub@redhat.com>
* include/resolv.h (__resp): Declare. Define to __libc_resp
if in libc.so.
(_res): If USE___THREAD, define to (*__resp).
* resolv/res_libc.c (_res): Normal .bss variable with compat_symbol
even if USE___THREAD.
(__resp): New __thread variable.
(__libc_resp): New alias.
* resolv/Versions (libc): Export _res@GLIBC_2.0 even if
USE_TLS && HAVE___THREAD. Export __resp@@GLIBC_PRIVATE.
* sysdeps/generic/res-state.c (__res_state): Return __resp
if USE___THREAD.
2003-07-22 H.J. Lu <hongjiu.lu@intel.com>
* elf/dl-support.c (_dl_hwcap): New variable.
(_dl_aux_init): Initialize GL(dl_hwcap) for static binaries.
* sysdeps/i386/fpu/fclrexcpt.c: Include <unistd.h>, <ldsodefs.h>
and <dl-procinfo.h>.
(__feclearexcept): Clear MXCSR if needed.
* sysdeps/i386/fpu/fsetexcptflg.c: Likewise.
* sysdeps/i386/fpu_control.h (_FPU_GETCW, _FPU_SETCW): Document
that newer hardware needs more than these macros.
* sysdeps/i386/setfpucw.c: New file.
2003-07-22 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile (CFLAGS-ldconfig.c): Define IS_IN_ldconfig.
* elf/ldconfig.c: Include dl-procinfo.c.
(PROCINFO_CLASS): Define.
* sysdeps/generic/ldsodefs.h (PROCINFO_CLASS): Define.
* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: New file.
* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h: New file.
* sysdeps/unix/sysv/linux/i386/dl-procinfo.c (PROCINFO_CLASS):
Define if not yet defined. Use it instead of EXTERN. Undefine
at the end of the file.
* sysdeps/unix/sysv/linux/arm/dl-procinfo.c (PROCINFO_CLASS):
Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c
(PROCINFO_CLASS): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c
(PROCINFO_CLASS): Likewise.
2003-07-22 H.J. Lu <hongjiu.lu@intel.com>
* elf/ldconfig.c (main): Issue a fatal error if relative path
is used to build cache.
2003-07-22 Ulrich Drepper <drepper@redhat.com>
* elf/readlib.c (process_file): Avoid possible overflow in assignment.
More cancellation handling fixups.
* sysdeps/unix/sysv/linux/not-cancel.h: Add waitpid_not_cancel.
* sysdeps/generic/not-cancel.h: Likewise.
* catgets/open_catalog.c: Use not-cancelable syscalls.
* time/Makefile (CFLAGS-getdate.c): Add -fexceptions.
* sysdeps/unix/sysv/linux/llseek.c: Must not be cancelable.
* sysdeps/unix/syscalls.list: Don't mark lseek as cancelable.
* dlfcn/dlfcn.h: Mark dlopen with __THROW again.
* io/fcntl.h: Don't mark posix_fallocate with __THROW.
* libio/fileops.c: Use not-cancelable syscalls for fclose.
* libio/iopopen.c: Use no-cancelable syscalls.
* libio/stdio.h: Mark popen and pclose with __THROW again.
* misc/Makefile (CFLAGS-syslog.c): Add -fexceptions.
* misc/syslog.c: Fix locking and cancellation cleanup handling.
* posix/unistd.h: Mark ttyname and ttyname_r again with __THROW.
* stdio-common/Makefile (CFLAGS-tmpfile.c, CFLAGS-tmpfile64.c,
CFLAGS-tempname.c): Add -fexceptions.
* stdlib/Makefile (CFLAGS-mkstemp.c): Add -fexceptions.
* string/string.h: Mark strerror and strerror_r with _THROW again.
* sysdeps/generic/unwind.inc: New file. Copied from gcc.
* sysdeps/generic/unwind-dw2.c: Update from gcc version. Remove
#ifs since we now need all the code compiled.
* sysdeps/posix/spawni.c: Use close_not_cancel instead of close.
* sysdeps/unix/closedir.c: Use not-cancelable syscalls.
* sysdeps/unix/opendir.c: Likewise.
2003-07-02 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Protect new_sysinfo
decl and use with #ifdef NEED_DL_SYSINFO.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Don't set
GL(dl_sysinfo) unles GL(dl_sysinfo_dso) is also set.
* sysdeps/unix/sysv/linux/kernel-features.h: Define
__ASSUME_VSYSCALL only for 2.5.69 and up since this is when the
vsyscall DSO was added.
2003-06-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/cris/sysdep.h (INLINE_SYSCALL): Cast
result to long int so that extensions to long long int work.
Patch by Uwe Reimann <libc-alpha@pulsar.homelinux.net>.
2003-06-19 Jakub Jelinek <jakub@redhat.com>
* elf/ldconfig.c (main): Use add_system_dir instead of add_dir.
* sysdeps/generic/dl-cache.h (add_system_dir): Define.
* sysdeps/unix/sysv/linux/x86_64/dl-cache.h: Include sparc
dl-cache.h.
* sysdeps/unix/sysv/linux/s390/dl-cache.h: New file.
* sysdeps/unix/sysv/linux/mips/dl-cache.h: New file.
* sysdeps/unix/sysv/linux/powerpc/dl-cache.h: New file.
* sysdeps/unix/sysv/linux/sparc/dl-cache.h: New file.
2003-06-15 Ulrich Drepper <drepper@redhat.com>
Fix cancellation point handling wrt exception based cleanup.
* io/Makefile: Compile fcntl.c, poll.c, and lockf.c with exceptions.
* misc/Makefile: Compile pselect.c, readv.c, writev.c, and usleep.c
with exceptions.
* posix/Makefile: Compile pread.c, pread64.c, pwrite.c, pwrite64.c,
sleep.c, wait.c, waitid.c, and waitpid.c with exceptions.
* rt/Makefile: Compile aio_suspend.c and clock_nanosleep.c with
exceptions.
* signal/Makefile: Compile sigpause.c, sigsuspend.c, sigtimedwait.c,
sigwait.c, and sigwaitinfo.c with exceptions.
* stdlib/Makefile: Compile system.c with exceptions.
* sysvipc/Makefile: Compile msgrcv.c and msgsnd.c with exceptions.
* termios/Makefile: Compile tcdrain.c with exceptions.
* sysdeps/generic/lockf.c: Add comment explaining the cancellation
situation.
* sysdeps/generic/pselect.c: Likewise.
* sysdeps/posix/sigpause.c: Likewise.
* sysdeps/posix/system.c: Likewise.
* sysdeps/posix/waitid.c: Likewise.
* sysdeps/unix/sysv/linux/sleep.c: Likewise.
* sysdeps/unix/sysv/linux/usleep.c: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Major rewrite of
INTERNAL_SYSCALL to not use push inside asm statement so that
unwind info is correct around the syscall.
* sysdeps/unix/clock_nanosleep.c: Add cancellation support.
* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
2003-06-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/glob.c [HAVE_D_TYPE] (glob_in_dir): Also allow
DT_LNK entries if GLOB_ONLYDIR is set [PR libc/5043].
* posix/globtest.sh: Adjust for this change.
2003-05-15 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Fix typo
(DL_NEED_SYSINFO -> NEED_DL_SYSINFO). If aux value is not known
print numeric values.
2003-05-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/bits/sched.h: Define cpu_set_t only if not
already defined and when really needed.
* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
* sysdeps/generic/enbl-secure.c (__libc_enable_secure_decided): New
variable.
(__libc_init_secure): Don't do anything if __libc_enable_secure_decided
is nonzero.
* include/unistd.h: Declare __libc_enable_secure_decided.
* elf/dl-support.c (_dl_aux_init): Recognize AT_UID, AT_EUID, AT_GID,
and AT_EGID. If all found, set __libc_enable_secure and
__libc_enable_secure_decided.
2003-04-22 Roland McGrath <roland@redhat.com>
* elf/elf.h (AT_SYSINFO_EHDR): New macro, replaces AT_SYSINFO_EH_FRAME.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Remove
dl_sysinfo_eh_frame member, add dl_sysinfo_dso member instead.
* elf/dl-support.c: Update defn.
* sysdeps/generic/libc-start.c: Don't call __register_frame_info_bases.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [NEED_DL_SYSINFO]:
Set GL(dl_sysinfo_dso) from AT_SYSINFO_EHDR.
(_dl_show_auxv): Grok AT_SYSINFO_EHDR, not AT_SYSINFO_EH_FRAME.
* elf/rtld.c (dl_main) [NEED_DL_SYSINFO]: If GL(dl_sysinfo_dso) is
set, set up a link_map for the preloaded, prelinked object.
* sysdeps/unix/sysv/linux/i386/bp-thunks.h: Likewise.
* sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h):
Use $(make-target-directory).
* sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Likewise.
* Makerules (compile-mkdep-flags): New variable, pass -MD -MF $@.d.
(compile-command.S): Don't use ifndef. Append $(compile-mkdep-flags).
(compile-command.s, compile-command.c): Likewise.
($(objpfx)%.d): All such pattern rules removed.
($(+sysdir_pfx)sysd-rules): Don't generate them.
($(common-objpfx)dummy.d): Target removed.
(make-dummy-dep): Variable removed.
(generate-md5): Likewise.
(%.d: %.dt): New pattern rule.
(+depfiles): Use $(wildcard) function to get just existing *.d files
and .d files for existing *.dt files.
(common-clean): Remove all *.d and *.dt files.
(before-compile): Add $(objpfx). when it doesn't exist,
regardless of $(no_deps).
* elf/rtld-Rules ($(objpfx)rtld-%.d): All such pattern rules removed.
(rtld-depfiles): Use .os.d instead of .d names.
Include existing *.d files and .d files for existing *.dt files.
* Makerules ($(common-objpfx)%.make): Protect with [! subdir].
Use -MD, -MT and -MF flags instead of SUNPRO_DEPENDENCIES variable.
* sysdeps/unix/Makefile ($(common-objpfx)s-%.d): Remove compat.h hack.
Do s-*.d includes only if we have some syscall routines in this subdir.
* include/libc-symbols.h (libc_freeres_ptr): Use %nobits instead of
@nobits. The former is accepted by gas on any ELF platform.
* sysdeps/unix/sysv/linux/system.c: If compiled without threads
don't do anything fancy.
* sysdeps/generic/bits/libc-lock.h: Define
__rtld_lock_define_initialized_recursive.
2003-04-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
which mishandles loading of global object addresses in PIC.
(THREAD_SETMEM_NC): Likewise.
2003-04-11 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/libc-start.c: Cleanup MAIN_AUXVEC_ARG handling.
Remove HAVE_CANCELBUF code. Replace with code using the new
initializers for unwind-based cleanup handling.
* sysdeps/generic/unwind.h: Update from latest gcc version.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Define labels in a few
places to allow unwind data generation.
* sysdeps/i386/bits/setjmp.h: Allow file to be included multiple times.
* sysdeps/x86_64/bits/setjmp.h: Likewise.
* sysdeps/sh/bits/setjmp.h: Likewise.
* sysdeps/powerpc/bits/setjmp.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/setjmp.h: Likewise.
* sysdeps/alpha/bits/setjmp.h: Likewise.
2003-03-26 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/ldsodefs.h (ELF_RTYPE_CLASS_COPY): Define to 2
only if DL_NO_COPY_RELOCS is not defined.
* sysdeps/ia64/dl-lookupcfg.h: Define DL_NO_COPY_RELOCS.
2003-03-25 Ulrich Drepper <drepper@redhat.com>
* csu/tst-atomic.c: Adjust tests to what atomic_add_negative and
atomic_add_zero were supposed to do.
* include/atomic.h: Adjust atomic_add_negative and atomic_add_zero
to x86 behavior.
* sysdeps/generic/bits/typesizes.h (__TIMER_T_TYPE): Define as void*.
This matches the new timer implementation.
* sysdeps/unix/sysv/linux/bits/siginfo.h (struct siginfo): Adjust
timer info for what the kernel provides these days.
(struct sigevent): Add _tid field.
Define SIGEV_THREAD_ID.
* Versions.def (librt): Add GLIBC_2.3.3.
* abilist/libpthread.abilist: Update for nptl.
Add comment.
(atomic_decrement_and_test): Add comment.
2003-03-22 Jakub Jelinek <jakub@redhat.com>
* include/atomic.h (atomic_compare_and_exchange_val_acq): Add comment.
Don't define if __arch_compare_and_exchange_val_32_acq is not defined.
(atomic_compare_and_exchange_bool_acq): Add comment. Don't use
__oldval variable in the macro, since it might be macro argument.
(atomic_decrement_if_positive): Initialize __memp, remove setting
of non-existent variable.
(atomic_bit_test_set): Cast 1 to __typeof (*mem) before shifting.
* sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Implement
using atomic_compare_and_exchange_val_acq.
(atomic_decrement_if_positive, atomic_bit_test_set): Define.
* sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_8_acq):
Renamed from...
(__arch_compare_and_exchange_bool_8_acq): ... this.
(__arch_compare_and_exchange_val_16_acq): Renamed from...
(__arch_compare_and_exchange_bool_16_acq): ... this.
(__arch_compare_and_exchange_val_32_acq): Return old value. Renamed
from...
(__arch_compare_and_exchange_bool_32_acq): ... this.
(__arch_compare_and_exchange_val_64_acq): Return old value. Renamed
from...
(__arch_compare_and_exchange_bool_64_acq): ... this.
(__arch_compare_and_exchange_val_32_acq): Use __typeof for local
variables types instead of assuming int.
Change prefix of local variables to __arch.
* sysdeps/generic/bits/atomic.h (arch_compare_and_exchange_acq):
Remove.
(atomic_compare_and_exchange_val_acq,
atomic_compare_and_exchange_bool_acq): Define.
* csu/tst-atomic.c: New test.
* csu/tst-atomic-long.c: New test.
* csu/Makefile (tests): Add tst-atomic and tst-atomic-long.
* malloc/memusagestat.c (main): Kill warning if uint64_t is ulong.
* sysdeps/s390/Versions: Add trailing newline.
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Kill warning
if INTERNAL_SYSCALL_ERROR_P doesn't use its first argument.
(LIBC_START_MAIN, LIBC_START_MAIN_AUXVEC_ARG, MAIN_AUXVEC_ARG)
(INIT_MAIN_ARGS): Define, and #include <sysdeps/generic/libc-start.c>.
(__libc_start_main): Just call the generic one for most of the work.
* sysdeps/generic/libc-start.c [LIBC_START_MAIN]: If defined, define a
static function by that name instead of BP_SYM (__libc_start_main).
[LIBC_START_MAIN_AUXVEC_ARG]: Take AUXVEC as argument.
[MAIN_AUXVEC_ARG]: Pass 4th argument to MAIN.
[INIT_MAIN_ARGS]: Give INIT the same args as MAIN.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [DL_PLATFORM_AUXV]:
Use this macro for extra AT_* cases.
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (DL_PLATFORM_AUXV):
New macro, guts from ...
(__aux_init_cache): ... here, function removed.
(DL_PLATFORM_INIT): Don't define this.
* sysdeps/powerpc/powerpc32/memset.S: Put __cache_line_size in bss.
* sysdeps/powerpc/powerpc64/memset.S: Likewise.
* Versions.def (libthread_db): Add GLICB_2.3.3 set.
* sysdeps/generic/libc-start.c [LIBC_START_MAIN]: If defined, define a
static function by that name instead of BP_SYM (__libc_start_main).
[LIBC_START_MAIN_AUXVEC_ARG]: Take AUXVEC as argument.
[MAIN_AUXVEC_ARG]: Pass 4th argument to MAIN.
[INIT_MAIN_ARGS]: Give INIT the same args as MAIN.
allocate space even for the trailing '/'.
Reported by John Reiser <jreiser@BitWagon.com>.
* sysdeps/unix/sysv/linux/ia64/sysdep.h (LOAD_ARGS_6, ASM_ARGS_6,
ASM_CLOBBERS_6): Define.
(ASM_CLOBBERS_5): Use ASM_CLOBBERS_6.
* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Reorder arguments
to match IA-32 order.
* sysdeps/unix/sysv/linux/i386/clone.S: Fix comment.
2003-02-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/libc-start.c [HAVE_PTR_NTHREADS]: Decrement thread
counter and only call __exit_thread if this is not the last thread.
* sysdeps/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and
_CS_GNU_LIBPTHREAD_VERSION.
* posix/conststr.c: Handle these new values.
* posix/getconf.c: Likewise.
* io/ftw.c (ftw_startup): When using FTW_CHDIR, always remember
2002-11-24 Robert Love <rml@tech9.net>
* posix/sched.h: Second parameter of sched_setaffinity and
sched_getaffinity is `unsigned int', not `unsigned long'.
* sysdeps/generic/sched_setaffinity.c: Likewise.
* sysdeps/generic/sched_getaffinity.c: Likewise.
Reported by John Levon <levon@movementarian.org>.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Move check for
null argument before all else.
Reported by Martin Schwidefsky <schwidefsky@de.ibm.com>.
(common-generated): Add s-proto-bp.d.
* sysdeps/unix/make-syscalls.sh: Use s-proto-bp.d for dependencies
of bp thunks.
* sysdeps/unix/s-proto-bp.S: New file.
* sysdeps/generic/bp-thunks.h: Don't include <sys/vm86.h> here.
Use <io/sys/sendfile.h> instead of <sys/sendfile.h>.
* sysdeps/unix/sysv/linux/i386/bp-thunks.h: New file.
$(objpfx) directories, and get rid of vpath directives. The previous
arrangement resulted in files being written to the source directories
when run in a clean build. Find all .abilist files in $(..)abilist/.
(update-abi-%): Likewise.
(generated): Don't add .symlist files, they'll be intermediates.
* sysdeps/generic/init-first.c: Add a comment.
* elf/Makefile ($(objpfx)ld.so): Pass -z defs in link.
* scripts/gen-as-const.awk: Grok lone "--" as a separator between
#includes and expressions.
* scripts/merge-abilist.awk: Omit cpu-.*-os.*/modifier from merged
config list when it already contains cpu-.*-os.* without / part.
* Makerules (sed-remove-dotdot): New variable.
($(common-objpfx)%.make): Use it. Depend on $(before-compile).
($(common-objpfx)%.h $(common-objpfx)%.h.d): Likewise.
(check-abi-config): New variable, append /tls or /notls to the tuple.
(check-abi-%): Use that for -v config value.
Find .abilist files in abilist/libfoo.abilist, not in subdir.
* Rules: Move bits/stdio_lim.h generation rules to Makerules.
2003-01-11 Jim Meyering <jim@meyering.net>
* io/ftw.c [HAVE_CONFIG_H]: Include <config.h>.
[HAVE_SYS_PARAM_H || _LIBC]: Guard inclusion of <sys/param.h>.
Include <sys/stat.h>, not <include/sys/stat.h>, if !_LIBC.
[!_LIBC] (__chdir, __closedir, __fchdir, __getcwd, __opendir): Define.
[!_LIBC] (__readdir64, __tdestroy, __tfind, __tsearch): Define.
[!_LIBC] (internal_function, dirent64, MAX): Define.
(__set_errno): Define if not already defined.
(open_dir_stream): When FTW_CHDIR is enabled, invoke opendir on
the basename, not the entire file name.
(process_entry): When FTW_CHDIR is enabled, invoke XSTAT or LXSTAT on
the basename, not the entire file name.
2003-01-12 Ulrich Drepper <drepper@redhat.com>
* string/tester.c (test_strcpy): Disable last added strcpy until
it is fixed.
2003-01-11 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/arm/socket.S: Add cancellation support.
2003-01-11 Andreas Schwab <schwab@suse.de>
* Makerules: Add vpath for %.dynsym and %.so so that the
implicit rule chaining for check-abi works.
2003-01-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/sysdep.h (SYSCALL_ERROR_HANDLER):
Add non-PIC case.
2003-01-11 Jakub Jelinek <jakub@redhat.com>
* elf/tls-macros.h [__ia64__] (__TLS_CALL_CLOBBERS): Define.
[__ia64__] (TLS_LE, TLS_IE): Fix typos. Add ;; at start of asm if
gp is used early.
[__ia64__] (TLS_LD, TLS_GD): Likewise. Use __TLS_CALL_CLOBBERS.
* elf/Makefile ($(objpfx)tst-tlsmod5.so, $(objpfx)tst-tlsmod6.so):
Ensure libc.so in DT_NEEDED.
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Move
CHECK_STATIC_TLS before l_tls_offset use.
* sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela):
Likewise.
* sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage) [TLS_DTV_AT_TP]:
Allocate TLS_PRE_TCB_SIZE bytes below result.
(_dl_deallocate_tls) [TLS_DTV_AT_TP]: Adjust before freeing.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): If
TLS_INIT_TP_EXPENSIVE is not defined, allocate even if no PT_TLS
segment has been found. If TLS_DTV_AT_TP, allocate TLS_PRE_TCB_SIZE
bytes below result and add tcb_offset to memsz.
* sysdeps/ia64/dl-tls.h (__tls_get_addr): New prototype.
* sysdeps/ia64/dl-machine.h: Include tls.h.
(elf_machine_type_class): Return ELF_RTYPE_CLASS_PLT for TLS relocs
too.
(elf_machine_rela): Assume if sym_map != NULL sym is non-NULL too.
Handle R_IA64_DTPMOD*, R_IA64_DTPREL* and R_IA64_TPREL* relocations.
* sysdeps/ia64/libc-tls.c: New file.
2003-01-10 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_RET): Add branch hit.
* sysdeps/unix/sysv/linux/powerpc/bits/stat.h (STAT_VER_LINUX):
Fix type. Move definition out of #if.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S: Add cancellation
support.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Remove
ftruncate64, pread64, pwrite64, truncate64 entries.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
(INLINE_SYSCALL): New version that supports function call like
syscalls. Add __builtin_expect.
(LOADARGS_n): Add argument size safety checks.
(INTERNAL_SYSCALL): New Macro.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c: New file.
* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h [__PPC_ELF_H]: Avoid
redefinition of elf_fpreg_t and elf_fpregset_t.
2003-01-12 Ulrich Drepper <drepper@redhat.com>
* elf/dl-close.c (_dl_close): Add several asserts. Correct and
simplify test for unloading. If loader of a DSO is unloaded do not
use its scope anymore. Fall back to own scope and adjust opencounts.
Fix several comments.
* elf/dl-deps.c (_dl_map_object_deps): Always allocate memory for
the l_searchlist, not only for l_initfini.
* elf/dl-lookup.c (add_dependencies): Avoid creating relocation
dependencies if objects cannot be removed. Remove object with the
definition as not unloadable if necessary.
* elf/reldep6.c: Create relocation dependency before closing the first
module.
2003-01-10 Guido Gnther <agx@sigxcpu.org>
* elf/Makefile: Add rules to build and run reldep9 test.
* elf/reldep9.c: New file.
* elf/reldep9mod1.c: New file.
* elf/reldep9mod2.c: New file.
* elf/reldep9mod3.c: New file.
2003-01-09 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile: Add rules to build and run nodelete2 test.
* elf/nodelete2.c: New file.
* elf/nodel2mod1.c: New file.
* elf/nodel2mod2.c: New file.
* elf/nodel2mod3.c: New file.
2003-01-09 Jakub Jelinek <jakub@redhat.com>
2002-12-28 Ulrich Drepper <drepper@redhat.com>
* descr.h (struct pthread): Move header.data.list to the back of the
struct.
* sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
(MULTIPLE_THREADS_OFFSET): Adjust offset.
(SYSINFO_OFFSEET): Likewise.
2002-12-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
Define.
(DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
(USE_DL_SYSINFO): Undef.
2002-12-22 Jakub Jelinek <jakub@redhat.com>
* Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
$(common-objpfx)libc.so.
* tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
it is bigger than pipe buffer size even on arches with bigger
page size.
(tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
2002-12-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep.h: Add support to use AT_SYSINFO
information for system calls.
* sysdeps/generic/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO to 1 only
for ld.so.
* elf/rtld.c (_dl_start) [USE___THREAD]: Define initdtv.
2002-12-18 Ulrich Drepper <drepper@redhat.com>
* elf/dl-support.c [NEED_DL_SYSINFO]: Define and initialize
_dl_sysinfo.
[DL_SYSINFO_IMPLEMENTATION]: If defined use it to generate the needed
code.
* elf/rtld.c [DL_NEED_SYSINFO]: Initialize _dl_sysinfo element of
_rtld_global.
[DL_SYSINFO_IMPLEMENTATION]: If defined use it to generate the needed
code.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [NEED_DL_SYSINFO]:
Check for AT_SYSINFO and set _dl_sysinfo appropriately.
* sysdeps/generic/ldsodefs.h (struct rtld_global) [NEED_DL_SYSINFO]:
Add _dl_sysinfo.
2002-12-16 Ulrich Drepper <drepper@redhat.com>
* stdio-common/Makefile (routines): Remove lockfile. Add
flockfile, ftrylockfile, and funlockfile.
* sysdeps/generic/lockfile.c: Removed. Each function has its own file.
* sysdeps/generic/flockfile.c: New file.
* sysdeps/generic/ftrylockfile.c: New file.
* sysdeps/generic/funlockfile.c: New file.
* sysdeps/unix/sysv/linux/wait.c: Don't include <nptl/pthreadP.h> or
<tls.h> here, no need for it.
* sysdeps/unix/sysv/linux/waitpid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fcntl.c (do_fcntl): Take ARG as void *
parameter, not varargs parameter.
* sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_RESET): Evaluate the
argument so it's not an unused variable.
* resolv/resolv.h (__p_key_syms, __p_cert_syms, __p_class_syms,
__p_type_syms, __p_rcode_syms): Remove decls, never really intended
for users.
* resolv/Versions (libresolv: GLIBC_2.3.2): New set, add __p_rcode.
2002-12-15 Art Haas <ahaas@airmail.net>
* nscd/connections.c: C99 initializer conversion.
* nscd/grpcache.c: Same.
* nscd/hstcache.c: Same.
* nscd/pwdcache.c: Same.
from 2002-12-06, but remove unnecessary memset call without removing
necessary copy of initialization image.
* Makerules ($(common-objpfx)format.lds): New target.
(common-generated): Add it.
($(inst_libdir)/libc.so): Depend on that, and cat it into the result.
* scripts/output-format.sed: New file.
* Makefile (distribute): Add it.
2002-12-07 Kenneth W. Chen <kenneth.w.chen@intel.com>
2002-12-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/libc-tls.c: Include <sys/param.h>.
Reported by Art Haas <ahaas@airmail.net>.
2002-12-07 Kenneth W. Chen <kenneth.w.chen@intel.com>.
* malloc/hooks.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]
(malloc_starter, memalign_starter, free_starter): Don't define these.
* malloc/malloc.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]:
Don't declare them either.
* malloc/arena.c (ptmalloc_init) [_LIBC && USE_TLS]: Don't call
__pthread_initialize, so no need to set hooks to *_starter.
(ptmalloc_init_minimal): New function, broken out of ptmalloc_init.
[_LIBC && SHARED && USE_TLS && !USE___THREAD]
(__libc_malloc_pthread_startup): New function.
* malloc/Versions (libc: GLIBC_PRIVATE): New set, add that function.
* malloc/hooks.c (memalign_starter): New function.
* malloc/malloc.c: Declare it.
* malloc/arena.c (save_memalign_hook): New variable.
(ptmalloc_init): Set __memalign_hook to memalign_starter.
* elf/dl-minimal.c (free): Clear the memory.
(calloc): Just call malloc, knowing all memory it returns is cleared.
* sysdeps/generic/dl-tls.c (allocate_dtv): Use calloc instead of
malloc and memset; calloc can avoid the zeroing when redundant.
(_dl_tls_setup): Likewise.
* elf/dl-load.c (decompose_rpath): Likewise.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Comment out memset
call, since memory from sbrk at startup is already zero.
* elf/rtld.c (_dl_start, dl_main): TLS_INIT_TP macro now returns an
error string for failure, null for success. Update callers.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Likewise.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
members to the end, so a libpthread compiled with !USE_TLS will still
find other members properly.
* sysdeps/i386/i486/bits/string.h (__strcpy_g): Add dummy output
operand for DEST memory. Fix dummy input operand to use SRC.
Reported by Davin McCall <davmac@ozonline.com.au>.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Account for TCB
alignment when initializing the DTV entry.
* elf/dl-load.c (_dl_map_object_from_fd): If we hit a TLS segment
when TLS has not been set up, try to set it up if we can.
* elf/tst-tls4.c: Revert last change.
* elf/tst-tls5.c: Likewise.
* elf/tst-tls6.c: Likewise.
* elf/tst-tls7.c: Likewise.
* elf/tst-tls8.c: Likewise.
* elf/tst-tls9.c: Likewise.
* sysdeps/generic/dl-tls.c [SHARED] (_dl_tls_setup): New function.
* sysdeps/generic/ldsodefs.h: Declare it.
* elf/Versions (ld: GLIBC_PRIVATE): Add it.
* sysdeps/generic/libc-tls.c (init_slotinfo): New static inline
function, broken out of __libc_setup_tls.
(init_static_tls): Likewise.
(__libc_setup_tls): Call them.
(_dl_tls_setup): New function, uses new subroutines.
* elf/dl-close.c (free_slotinfo): Make argument pointer to pointer.
Clear the pointer when returning true.
(libc_freeres_fn) [SHARED]: If GL(dl_initial_dtv) is null, free the
first element of the slotinfo list too.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Define only if
[SHARED].
* sysdeps/generic/ldsodefs.h (_dl_next_tls_modid): Declare as hidden.
(_dl_determine_tlsoffset): Likewise.
* elf/rtld.c (_dl_initial_error_catch_tsd): Renamed from
startup_error_tsd, made global.
(dl_main): Update initialization.
* elf/dl-tsd.c: Likewise.
* sysdeps/generic/ldsodefs.h: Declare it.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Move all [USE_TLS]
members to the end, so a libpthread compiled with !USE_TLS will still
find other members properly.
* sysdeps/generic/dl-tls.c [SHARED] (_dl_tls_setup): New function.
* sysdeps/generic/ldsodefs.h: Declare it.
* elf/Versions (ld: GLIBC_PRIVATE): Add it.
* sysdeps/generic/libc-tls.c (init_slotinfo): New static inline
function, broken out of __libc_setup_tls.
(init_static_tls): Likewise.
(__libc_setup_tls): Call them.
(_dl_tls_setup): New function, uses new subroutines.
* sysdeps/generic/ldsodefs.h (_dl_next_tls_modid): Declare as hidden.
(_dl_determine_tlsoffset): Likewise.
* elf/rtld.c (_dl_initial_error_catch_tsd): Renamed from
startup_error_tsd, made global.
(dl_main): Update initialization.
* elf/dl-tsd.c: Likewise.
* sysdeps/generic/ldsodefs.h: Declare it.
DL_SYSDEP_OSCHECK here.
* sysdeps/unix/sysv/linux/init-first.c (init): Not here.
* sysdeps/unix/sysv/linux/dl-osinfo.h: Include <fcntl.h>.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Bail if
argument TCBSIZE <= TLS_INIT_TCB_SIZE, not just if it's zero.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Check l_tls_offset
instead of l_type to decide whether to use TLS_DTV_UNALLOCATED.
* include/link.h: Comment typo fix.
2002-12-01 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_FSYNC): Set to 200112L.
(_POSIX_SPAWN, _POSIX_MAPPED_FILES, _POSIX_MEMLOCK_RANGE,
_POSIX_MEMORY_PROTECTION): Likewise.
(_POSIX_POLL, _POSIX_SELECT): Removed.
Grok AF_LINK if defined.
From Momchil Velikov <velco@fadata.bg>.
* sysdeps/gnu/ifaddrs.c (getifaddrs): If ioctl fails for netmask,
brdaddr, or dstaddr, just set those pointers to null and don't fail.
Reported by Momchil Velikov <velco@fadata.bg>.
* sysdeps/generic/ifreq.h (__if_nextreq) [_HAVE_SA_LEN]: If sa_len
is > sizeof IFR->ifa_addr, advance past the whole longer length.
(__ifreq): Count up NIFS that way too.
Reported by Momchil Velikov <velco@fadata.bg>.
* sysdeps/mach/hurd/lchmod.c: Include <fcntl.h>.
* sysdeps/generic/errno.c (__libc_errno): Remove alias.
* inet/herrno.c (__libc_h_errno): Likewise.
* resolv/res_libc.c (__libc_res): Likewise.
[USE___THREAD]: Use this in place of [USE_TLS && HAVE___THREAD].
(__res_state) [! USE___THREAD]: Don't define as weak.
* csu/Versions: Revert last change.
* resolv/Versions: Revert last change.
[HAVE_ELF && SHARED && DO_VERSIONING] (errno, _errno): Declare these
with compat_symbol so they are not link-time visible.
[! USE___THREAD] (__libc_errno): New alias for errno.
* csu/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
Add __libc_errno here.
* inet/herrno.c [USE___THREAD]: Use this conditional
in place of [USE_TLS && HAVE___THREAD].
[! USE___THREAD] [HAVE_ELF && SHARED && DO_VERSIONING]
(h_errno, _h_errno): Declare these with compat_symbol so they are not
link-time visible.
[! USE___THREAD] (__libc_h_errno): New alias for h_errno.
* resolv/res_libc.c [! USE___THREAD]
[HAVE_ELF && SHARED && DO_VERSIONING] (_res): Likewise.
(_res): Use __attribute__ ((section (".bss"))) so we can have an alias.
(__libc_res): Define as alias for _res.
* resolv/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
Add __libc_h_errno and __libc_res here.
2002-11-14 Jakub Jelinek <jakub@redhat.com>
* csu/Versions (errno): Move STT_TLS symbol to GLIBC_PRIVATE for now.
* resolv/Versions (h_errno, _res): Likewise.
2002-11-14 Roland McGrath <roland@redhat.com>
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
(__libc_setup_tls): Initialize it. Let the initial value of
_dl_tls_static_size indicate some surplus space in the computed value.
* elf/dl-open.c (_dl_tls_static_size): New variable.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Initialize
_dl_tls_static_used. Add some surplus space into _dl_tls_static_size.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.
* elf/dl-close.c (_dl_close): Adjust _dl_tls_static_used when the
closed objects occupied a trailing contiguous chunk of static TLS area.
conditional from __libc_multiple_libcs access. Remove kludge for weak
symbol access with old compilers we no longer support.
* sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
* sysdeps/generic/libc-start.c (__libc_start_main): Likewise.
2002-10-24 Roland McGrath <roland@redhat.com>
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
(TLS_STATIC_MIN): New macro.
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
(__libc_setup_tls): Initialize it.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Likewise.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.
* elf/dl-close.c (_dl_close): Adjust _dl_tls_static_used when the
closed objects occupied a trailing contiguous chunk of static TLS area.
2002-10-25 Roland McGrath <roland@redhat.com>
(_dl_debug_vdprintf): Only take dl_load_lock if not _dl_starting_up.
* sysdeps/generic/ldsodefs.h (_dl_starting_up): Declare it here.
* sysdeps/unix/sysv/linux/init-first.c: Not here.
* sysdeps/powerpc/elf/libc-start.c: Or here.
* sysdeps/unix/sysv/aix/libc-start.c: Or here.
* sysdeps/unix/sysv/aix/start-libc.c: Or here.
* sysdeps/unix/sysv/aix/init-first.c: Or here.
* sysdeps/generic/libc-start.c: Or here.
* sysdeps/unix/sysv/linux/init-first.c (init): Protect _dl_starting_up
access with [! SHARED].
* sysdeps/unix/sysv/aix/init-first.c (init): Likewise.