2004-11-27 Ulrich Drepper <drepper@redhat.com>
* posix/getconf.c (vars): Add support for _SC_IPV6 and
_SC_RAW_SOCKETS.
* sysdeps/posix/sysconf.c (__sysconf): Add support for _SC_IPV6
and _SC_RAW_SOCKETS.
* sysdeps/generic/bits/confname.h: Define _SC_IPV6 and
_SC_RAW_SOCKETS.
* posix/Makefile (install-others): Add $(inst_libexecdir)/getconf.
(CFLAGS-sysconf.c): Add -D_GETCONF_DIR.
(CFLAGS-getconf.c): New.
($(inst_libexecdir)/getconf): New.
* posix/confstr.c (confstr): Use __sysconf to query specifications
that don't have _POSIX_V6_* macros defined. Use __*_{C,LD}FLAGS
macros defined in bits/environments.h.
* sysdeps/posix/sysconf.c: Include stdlib.h, string.h and
sys/stat.h.
(__sysconf_check_spec): New routine.
(__sysconf): Use it.
* posix/getconf.c (specs): Change into structure array.
(main): If -v is not given, try to get default from
$(libexecdir)/getconf/default. If specification is not
supported by this getconf, try to execute
$(libexecdir)/getconf/$(specification).
* sysdeps/unix/bsd/bsd4.4/freebsd/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/sparc/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/i386/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/environments.h: New file.
* sysdeps/generic/bits/environments.h (__ILP32_OFFBIG_CFLAGS):
Define.
2004-11-26 Jakub Jelinek <jakub@redhat.com>
* posix/sys/wait.h [__WIFCONTINUED] (WIFCONTINUED): New macro.
* stdlib/stdlib.h [__WIFCONTINUED] (WIFCONTINUED): New macro.
* sysdeps/generic/bits/waitstatus.h (__W_CONTINUED): New macro.
[WCONTINUED] (__WIFCONTINUED): New macro.
(__WIFSIGNALED): Rewritten to exclude __W_CONTINUED value, and have no
branches.
2004-09-23 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/bits/dlfcn.h: Add RTLD_DEEPBIND.
* elf/dl-object.c (_dl_new_object): Add new parameter mode. If mode
has RTLD_DEEPBIND set add local searchlist before global scope.
* sysdeps/generic/ldsodefs.h (_dl_new_object): Adjust prototype.
* elf/rtld.c: Adjust callers of _dl_new_object.
* elf/dl-load.c: Likewise.
(_dl_map_object_from_fd): If RTLD_DEEPBIND is used, don't do anything
for DF_SYMBOLIC.
* elf/dl-open.c (dl_open_writer): Pass RTLD_DEEPBIND flag on to
_dl_map_object_deps.
* elf/tst-deep1.c: New file.
* elf/tst-deep1mod1.c: New file.
* elf/tst-deep1mod2.c: New file.
* elf/tst-deep1mod3.c: New file.
* elf/Makefile: Add rules to build and run new tests.
* elf/dl-deps.c: Pretty printing.
* sysdeps/generic/bits/in.h
(IMPLINK_IP, IMPLINK_LOWEXPER, IMPLINK_HIGHEXPER): Macros removed.
These are long obsolete in BSD systems where they originated.
* conform/data/netinet/in.h-data: Remove `allow IMPLINK_*'
2004-04-08 Ulrich Drepper <drepper@redhat.com>
* rt/tst-mqueue3.c: New file.
* rt/Makefile (tests): Add tst-mqueue3.
2004-04-08 Jakub Jelinek <jakub@redhat.com>
* rt/tst-mqueue1.c: New file.
* rt/tst-mqueue2.c: New file.
* rt/tst-mqueue4.c: New file.
* rt/Makefile (tests): Add tst-mqueue1, tst-mqueue2, tst-mqueue4.
* rt/Versions (librt): Add mq_*@@GLIBC_2.3.4.
* rt/Makefile (headers): Add mqueue.h and bits/mqueue.h.
(mq-routines): Set.
(librt-routines): Use it.
* rt/mqueue.h: New file.
* include/mqueue.h: New file.
* sysdeps/generic/bits/mqueue.h: New file.
* sysdeps/generic/mq_setattr.c: New file.
* sysdeps/generic/mq_getattr.c: New file.
* sysdeps/generic/mq_notify.c: New file.
* sysdeps/generic/mq_close.c: New file.
* sysdeps/generic/mq_send.c: New file.
* sysdeps/generic/mq_unlink.c: New file.
* sysdeps/generic/mq_receive.c: New file.
* sysdeps/generic/mq_timedreceive.c: New file.
* sysdeps/generic/mq_timedsend.c: New file.
* sysdeps/generic/mq_open.c: New file.
* sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
* sysdeps/unix/sysv/linux/bits/mqueue.h: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add mq_timedsend,
mq_timedreceive and mq_setattr.
* sysdeps/unix/sysv/linux/mq_getattr.c: New file.
* sysdeps/unix/sysv/linux/mq_notify.c: New file.
* sysdeps/unix/sysv/linux/mq_close.c: New file.
* sysdeps/unix/sysv/linux/mq_send.c: New file.
* sysdeps/unix/sysv/linux/mq_unlink.c: New file.
* sysdeps/unix/sysv/linux/mq_receive.c: New file.
* sysdeps/unix/sysv/linux/mq_open.c: New file.
2004-04-09 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/s390/ffs.c: Don't add ffsl weak alias on s390x.
2004-04-09 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: New file.
2004-03-12 Ulrich Drepper <drepper@redhat.com>
* posix/getconf.c (vars): Add _SC_ values for cache information.
* sysdeps/generic/bits/confname.h: Add _SC_* values for cache
information.
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Reorganize to
allow yet another sysconf function to include the one in this file.
* sysdeps/unix/sysv/linux/i386/sysconf.c: New file.
* sysdeps/generic/sysconf.c: Add default handling for cache line info.
2003-09-08 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/bits/types.h (__quad_t): Make long int if 64-bit.
(__u_quad_t): Make unsigned long int if 64-bit.
(__SQUAD_TYPE): Make long int if 64-bit.
(__UQUAD_TYPE): Make unsigned long int if 64-bit.
* sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.
2003-09-08 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Run check-c++-types.sh if possible.
* scripts/check-c++-types.h: New file.
* scripts/data/c++-ctypes-i386-linux-gnu.data: New file.
contiguous case. Bug report from Prem Gopalan <prem@mazunetworks.com>.
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-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/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-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.
* 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>.
Check for the result overflowing off_t and fail with EOVERFLOW.
* libio/ioftell.c (_IO_ftell): Likewise.
* libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
* login/logwtmp.c (logwtmp): If sizeof ut_tv != sizeof struct timeval,
use a temporary timeval on the stack for gettimeofday and copy it.
* login/logout.c (logout): Likewise.
Reported by Steven Munroe <sjmunroe@us.ibm.com>.
* sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs):
Use __SWORD_TYPE instead of int for member types.
(struct statfs64): Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/ia64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: Moved to ...
* sysdeps/unix/sysv/linux/bits/statvfs.h: ... here.
(ST_NODIRATIME): Restore fixed value of 2048.
* sysdeps/unix/sysv/linux/alpha/bits/statvfs.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/statvfs.h: File removed.
Rearranged <bits/types.h> definitions to reduce duplication.
* sysdeps/generic/bits/types.h: Rewritten, using macros from
<bits/wordsize.h> and new header <bits/typesizes.h>.
* posix/Makefile (headers): Add bits/typesizes.h here.
* sysdeps/generic/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
* sysdeps/mach/hurd/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/mips/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/s390/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/types.h: File removed.
* posix/sys/types.h [__USE_POSIX199506 || __USE_UNIX98]: Include
<bits/pthreadtypes.h> here, not in <bits/types.h>.
* signal/signal.h: Likewise.
* streams/stropts.h: Include <bits/xtitypes.h>.
* streams/Makefile (headers): Add bits/xtitypes.h here.
* sysdeps/generic/bits/xtitypes.h: New file.
* sysdeps/s390/bits/xtitypes.h: New file.
* sysdeps/ia64/bits/xtitypes.h: New file.
* sysdeps/x86_64/bits/xtitypes.h: New file.
* sysvipc/Makefile (headers): Add bits/ipctypes.h here.
* sysdeps/generic/bits/ipctypes.h: New file.
* sysdeps/mips/bits/ipctypes.h: New file.
* sysdeps/gnu/bits/shm.h: Include <bits/ipctypes.h>.
* sysdeps/gnu/bits/msq.h: Likewise.
* sysvipc/sys/ipc.h: Likewise.
2002-10-22 Roland McGrath <roland@redhat.com>
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
(TLS_STATIC_MIN): New macro.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.
sysdeps/unix/sysv/linux/i386/bits/time.h file. All the following
files were identical except for the absence of CLOCK_THREAD_CPUTIME_ID
and CLOCK_PROCESS_CPUTIME_ID in .../linux/bits/time.h; adding these
macros is ok even for architectures that don't now implement them.
* sysdeps/mach/hurd/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/i386/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/time.h: File removed.
changed from [USE_TLS && HAVE___THREAD].
* sysdeps/i386/dl-machine.h (elf_machine_type_class, elf_machine_rel):
Disable TLS relocs if [RTLD_BOOTSTRAP && !USE___THREAD].
* sysdeps/x86_64/dl-machine.h
(elf_machine_type_class, elf_machine_rela): Likewise.
* sysdeps/sh/dl-machine.h (elf_machine_type_class, elf_machine_rela):
Likewise.
* include/link.h (struct link_map): Remove member l_tls_tp_initialized.
* elf/rtld.c (_dl_start_final, dl_main): Don't use it.
(_dl_start): Conditionalize PT_TLS check on [USE___THREAD].
* sysdeps/i386/dl-tls.h (__TLS_GET_ADDR): Use ___tls_get_addr_internal
instead of ___tls_get_addr.
(___tls_get_addr_internal): Add attribute_hidden to decl.
* sysdeps/generic/ldsodefs.h (struct rtld_global): New variable
_dl_error_catch_tsd.
* elf/rtld.c (startup_error_tsd): New function.
(dl_main): Point _dl_error_catch_tsd at that.
* elf/dl-error.c: Don't use libc-tsd.h for DL_ERROR,
use new function pointer instead.
* elf/dl-tsd.c: New file.
* elf/Makefile (routines): Add it.
2002-10-07 Roland McGrath <roland@redhat.com>
* elf/dl-misc.c (_dl_debug_vdprintf): Use INTERNAL_SYSCALL macro for
writev if it's available. Otherwise if [RTLD_PRIVATE_ERRNO] then
take _dl_load_lock around calling __writev.
* sysdeps/unix/sysv/linux/i386/sysdep.h (INTERNAL_SYSCALL): New macro.
(INLINE_SYSCALL): Use that.
* sysdeps/generic/dl-sysdep.h: New file.
* sysdeps/mach/hurd/dl-sysdep.h: New file.
* sysdeps/generic/ldsodefs.h: Include <dl-sysdep.h>.
* include/errno.h [IS_IN_rtld]: Include <dl-sysdep.h> to define ...
[RTLD_PRIVATE_ERRNO]: Use a hidden global variable for errno and
access it directly.
* elf/dl-minimal.c (__errno_location): Removed.
* sysdeps/unix/i386/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
Use GOTOFF access for errno.
* sysdeps/unix/sysv/linux/i386/sysdep.h
[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
* sysdeps/unix/x86_64/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
Use PC-relative access for errno.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h
[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
* include/tls.h: New file.
(USE___THREAD): New macro.
Define to 1 under [USE_TLS && HAVE___THREAD] and only when compiling
libc or libpthread.
* sysdeps/unix/sysv/linux/i386/sysdep.h [USE___THREAD]: Conditional
changed from [USE_TLS && HAVE___THREAD].
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
* sysdeps/unix/i386/sysdep.S: Likewise.
* sysdeps/unix/x86_64/sysdep.S: Likewise.
* include/errno.h: Likewise.
* include/netdb.h: Likewise.
* include/resolv.h: Likewise.
* sysdeps/generic/errno.c: New file.
* csu/Makefile (aux): New variable, list errno.
* sysdeps/unix/sysv/linux/i386/sysdep.S (errno, _errno): Remove defns.
* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/cris/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep.S: Likewise.
* sysdeps/unix/alpha/sysdep.S: Likewise.
* sysdeps/generic/start.c: Likewise.
* sysdeps/unix/start.c: Likewise.
* sysdeps/unix/arm/start.c: Likewise.
* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
* sysdeps/unix/sparc/start.c: Likewise.
* sysdeps/unix/sysv/irix4/start.c: Likewise.
* sysdeps/unix/sysv/linux/mips/sysdep.S: File removed.
* manual/search.texi (Tree Search Function, Hash Search Function):
Mention search.h clearly.
2002-10-05 Roland McGrath <roland@redhat.com>
* elf/dl-fxstat64.c: File removed.
* elf/dl-xstat64.c: File removed.
* elf/Makefile (rtld-routines): Remove them.
* sysdeps/unix/sysv/linux/xstat64.c: Remove RTLD_STAT64 conditionals.
Instead, use strong_alias instead of versioned_symbol in the
!SHLIB_COMPAT case.
* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
* include/shlib-compat.h
(SHLIB_COMPAT): Require that IS_IN_##lib be defined nonzero.
[! NOT_IN_libc] (IS_IN_libc): Define it.
* cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Use -Dx=1 not just -Dx.
* elf/Makefile (CPPFLAGS-.os): Likewise.
* sunrpc/rpc_main.c (main): Don't declare with noreturn attribute.
Return the status instead of calling exit.
* Makeconfig (CFLAGS): Prepend -std=gnu99.
* Makerules (+make-deps): Use $(CFLAGS) only for .c sources.
Remove superfluous rm command, whose @ plus make bugs hid
all these commands from the make output.
* include/stubs-prologue.h: New file. Give #error under #ifdef _LIBC.
* Makefile ($(inst_includedir)/gnu/stubs.h): Depend on it.
Use that file's contents instead of literal echo's for the prologue.
* include/features.h: Include <gnu/stubs.h> unconditionally.
* include/gnu/stubs.h: New file.
2002-09-30 Roland McGrath <roland@redhat.com>
* elf/rtld-Rules: New file.
* elf/Makefile ($(objpfx)librtld.map, $(objpfx)librtld.mk,
$(objpfx)rtld-libc.a): New targets.
(generated): Add them.
(reloc-link): Remove -o $@ from the variable.
($(objpfx)dl-allobjs.os): Add -o $@ after $(reloc-link).
(distribute): Add rtld-Rules.
(CPPFLAGS-.os): Define this instead of CFLAGS-.os.
* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for rtld-% targets.
(common-mostlyclean, common-clean): Clean up rtld-* files.
* sysdeps/unix/make-syscalls.sh: Add rtld-*.os target name to rules.
* sysdeps/generic/bits/libc-tsd.h [!(USE_TLS && HAVE___THREAD)]
(__libc_tsd_address): Use correct variable name.
Patch by sStefan Jones <tefan.jones@multigig.com>.
Variable declarations removed.
(__ctype_b_loc, __ctype_toupper_loc, __ctype_tolower_loc): Declare
these functions to replace them.
(__isctype, tolower, toupper, _tolower, _toupper): Use those accessor
functions plus an indirection rather than the old global variables.
* include/ctype.h (__isctype, tolower, _tolower, toupper, _toupper):
Macros removed.
(__ctype_b_loc, __ctype_toupper_loc, __ctype_tolower_loc): New extern
inline functions.
* ctype/ctype-info.c: Revert last reversion back the other way.
Define tsd vars CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
Define real function versions of include/ctype.h inlines here.
* ctype/Versions (libc: GLIBC_2.3): Add __ctype_b_loc,
__ctype_tolower_loc, __ctype_toupper_loc.
* locale/lc-ctype.c: Revert last reversion back the other way.
(_nl_postload_ctype): If current thread uses the global locale,
update its tsd vars.
* locale/uselocale.c (__uselocale): Update tsd vars from new locale.
* hurd/hurd/threadvar.h (enum __hurd_threadvar_index): Add CTYPE_B,
CTYPE_TOLOWER, CTYPE_TOUPPER.
* sysdeps/generic/bits/libc-tsd.h (__libc_tsd_address): New macro.
* sysdeps/mach/hurd/bits/libc-tsd.h (__libc_tsd_address): Renamed
from __libc_tsd_threadvar_location.
(__libc_tsd_set, __libc_tsd_get): Update uses.
2002-08-26 Ulrich Drepper <drepper@redhat.com>
* libio/Makefile (tests): Add bug-fopena+.
* libio/bug-fopena+.c: New file.
* stdio-common/tst-swprintf.c (main): Add casts to avoid warnings.
* locale/xlocale.c: Fix the last change. The variable still has
to end in _data.
* sysdeps/generic/bits/libc-tsd.h [!(USE_TLS && HAVE___THREAD)]
(__libc_tsd_set): Add _data prefix to variable name.
[USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
which does the right thing when __thread support is available.
* descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
`p_h_errno', `p_resp', and `p_res' members.
* pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
Don't initialize `p_errnop' and `p_h_errnop' members.
(__pthread_reset_main_thread): Likewise.
(__pthread_initialize_manager): Likewise.
* manager.c (__pthread_manager, pthread_handle_create): Likewise.
* pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
Don't initialize `p_resp' member.
(__pthread_reset_main_thread): Likewise.
* manager.c (pthread_handle_create): Likewise.
* specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
* errno.c [USE_TLS && HAVE___THREAD]
(__h_errno_location, __res_state): Don't define these at all.
* sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
(INSTALL_NEW_DTV, GET_DTV): Likewise.
* sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
* weaks.c: Don't include <errno.h> here.
2002-08-01 Roland McGrath <roland@redhat.com>
* sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
TLS_INIT_TP.
(TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
(TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
(TLS_INIT_TP): Use that.
* libio/stdio.h (sys_errlist, sys_nerr, _sys_errlist, _sys_nerr):
Declarations moved to <bits/sys_errlist.h>. Include that file.
* libio/Makefile (headers): Add bits/sys_errlist.h to the list.
* sysdeps/generic/bits/sys_errlist.h: New file. This does *not*
declare sys_errlist and sys_nerr.
* sysdeps/unix/sysv/linux/bits/sys_errlist.h: New file. Does
provide declarations.