From fc10bc8d325d1c0e08ccadaa650686d735b70d3e Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 2 Aug 2002 03:37:41 +0000 Subject: [PATCH] * resolv/resolv.h (_res): Define macro unconditionally. [! _LIBC_REENTRANT] (_res): Move this conditional decl to ... * include/resolv.h: ... here. [USE_TLS && HAVE___THREAD] (_res): #undef it and declare as a __thread variable. * resolv/res_libc.c [USE_TLS && HAVE___THREAD] (_res): Define it as a __thread variable instead of a global. * resolv/res_data.c [_LIBC]: Don't #undef _res. * include/errno.h: Include to make sure USE_TLS defined by the time we test it. * intl/loadmsgcat.c [__GNUC__]: #undef alloca before defining it. * malloc/malloc.c [_LIBC]: Include instead of using local decls of memset and memcpy. * sysdeps/generic/sysdep.h (END): Conditionalize on [__ASSEMBLER__]. * sysdeps/unix/sysv/linux/i386/sysdep.h (L): Likewise. * elf/dl-load.c (_dl_map_object_from_fd): Comment fix. * sysdeps/generic/bits/libc-tsd.h [USE_TLS && HAVE___THREAD] (__libc_tsd_define): Define using __thread. * sunrpc/rpc_thread.c: Use __libc_tsd_define. (__rpc_thread_variables): Use __libc_tsd_get. (__rpc_thread_destroy): Use __libc_tsd_get instead of calling __rpc_thread_variables, which might allocate what we're about to free. * inet/herrno.c [USE_TLS && HAVE___THREAD] (h_errno): Define as a thread-local variable. * resolv/netdb.h (h_errno): Define macro unconditionally. [_LIBC] (__set_h_errno): Macro moved to ... * include/netdb.h: ... here. [USE_TLS && HAVE___THREAD] (h_errno): Declare __thread variable. [USE_TLS && HAVE___THREAD] (__set_h_errno): Define using that. [! _LIBC_REENTRANT]: #undef h_errno here. * include/errno.h: Protect from multiple inclusion. * misc/sys/select.h (__NFDBITS, __FDELT, __FDMASK): #undef these before defining them, since Linux's might have defined them. 2002-08-01 Roland McGrath 2002-07-31 Roland McGrath 2002-07-31 Roland McGrath --- ChangeLog | 53 +++++++++++++++++++++++++++++++++++++++--- linuxthreads/ChangeLog | 1 + linuxthreads/no-tsd.c | 6 ++++- 3 files changed, 56 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2872e63351..6e4a526fb5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,50 @@ +2002-07-30 Roland McGrath + + * resolv/resolv.h (_res): Define macro unconditionally. + [! _LIBC_REENTRANT] (_res): Move this conditional decl to ... + * include/resolv.h: ... here. + [USE_TLS && HAVE___THREAD] (_res): #undef it and declare + as a __thread variable. + * resolv/res_libc.c [USE_TLS && HAVE___THREAD] (_res): Define it as + a __thread variable instead of a global. + * resolv/res_data.c [_LIBC]: Don't #undef _res. + + * include/errno.h: Include to make sure USE_TLS defined by the + time we test it. + + * intl/loadmsgcat.c [__GNUC__]: #undef alloca before defining it. + + * malloc/malloc.c [_LIBC]: Include instead of using local + decls of memset and memcpy. + + * sysdeps/generic/sysdep.h (END): Conditionalize on [__ASSEMBLER__]. + * sysdeps/unix/sysv/linux/i386/sysdep.h (L): Likewise. + + * elf/dl-load.c (_dl_map_object_from_fd): Comment fix. + + * sysdeps/generic/bits/libc-tsd.h [USE_TLS && HAVE___THREAD] + (__libc_tsd_define): Define using __thread. + + * sunrpc/rpc_thread.c: Use __libc_tsd_define. + (__rpc_thread_variables): Use __libc_tsd_get. + (__rpc_thread_destroy): Use __libc_tsd_get instead of calling + __rpc_thread_variables, which might allocate what we're about to free. + + * inet/herrno.c [USE_TLS && HAVE___THREAD] (h_errno): Define as a + thread-local variable. + * resolv/netdb.h (h_errno): Define macro unconditionally. + [_LIBC] (__set_h_errno): Macro moved to ... + * include/netdb.h: ... here. + [USE_TLS && HAVE___THREAD] (h_errno): Declare __thread variable. + [USE_TLS && HAVE___THREAD] (__set_h_errno): Define using that. + [! _LIBC_REENTRANT]: #undef h_errno here. + + * include/errno.h: Protect from multiple inclusion. + + * misc/sys/select.h (__NFDBITS, __FDELT, __FDMASK): #undef these + before defining them, since Linux's might have + defined them. + 2002-08-02 Jakub Jelinek * malloc/malloc.c (public_cALLOc): Check for overflow on @@ -11,14 +58,14 @@ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_SET_THREAD_AREA_SYSCALL): Define. -2002-08-01 Roland McGrath +2002-08-01 Roland McGrath * libio/fileops.c (_IO_file_sync_mmap): New function. (_IO_file_jumps_mmap): Use it. (_IO_file_underflow_mmap): Rewritten. If after EOF or fflush, repeat the stat check and resize the mapped buffer as necessary. -2002-07-31 Roland McGrath +2002-07-31 Roland McGrath * libio/fileops.c (decide_maybe_mmap): New static function. Code taken from libio/iofopen.c:__fopen_maybe_mmap to try to @@ -56,7 +103,7 @@ * sysdeps/unix/sysv/linux/bits/sys_errlist.h: New file. Does provide declarations. -2002-07-31 Roland McGrath +2002-07-31 Roland McGrath * elf/rtld.c (dl_main): Fix typo in error message. diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 30917d367d..4b86627f17 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -17,6 +17,7 @@ * manager.c (pthread_handle_create): Likewise. * specific.c (libc_internal_tsd_set, libc_internal_tsd_get): Conditionalize these on [!(USE_TLS && HAVE___THREAD)]. + * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)]. * errno.c [USE_TLS && HAVE___THREAD] (__h_errno_location, __res_state): Don't define these at all. diff --git a/linuxthreads/no-tsd.c b/linuxthreads/no-tsd.c index 84abb6f405..7b5f7ef949 100644 --- a/linuxthreads/no-tsd.c +++ b/linuxthreads/no-tsd.c @@ -1,5 +1,5 @@ /* libc-internal interface for thread-specific data. - Copyright (C) 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1998,99,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,6 +20,8 @@ #include /* for __const */ #include +#if !(USE_TLS && HAVE___THREAD) + /* This file provides uinitialized (common) definitions for the hooks used internally by libc to access thread-specific data. @@ -32,3 +34,5 @@ void *(*__libc_internal_tsd_get) (enum __libc_tsd_key_t); int (*__libc_internal_tsd_set) (enum __libc_tsd_key_t, __const void *); + +#endif /* !(USE_TLS && HAVE___THREAD) */