about summary refs log tree commit diff
path: root/linuxthreads/no-tsd.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-02 03:37:41 +0000
committerRoland McGrath <roland@gnu.org>2002-08-02 03:37:41 +0000
commitfc10bc8d325d1c0e08ccadaa650686d735b70d3e (patch)
tree37de86ef53188b292ef0a2a20521558aa2e16ee5 /linuxthreads/no-tsd.c
parentc2afe833521105e05298500ba5d4676d6c833242 (diff)
downloadglibc-fc10bc8d325d1c0e08ccadaa650686d735b70d3e.tar.gz
glibc-fc10bc8d325d1c0e08ccadaa650686d735b70d3e.tar.xz
glibc-fc10bc8d325d1c0e08ccadaa650686d735b70d3e.zip
* 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 <tls.h> 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 <string.h> 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 <linux/posix_types.h> might have
	defined them.

2002-08-01  Roland McGrath  <roland@redhat.com>
2002-07-31  Roland McGrath  <roland@redhat.com>
2002-07-31  Roland McGrath  <roland@redhat.com>
Diffstat (limited to 'linuxthreads/no-tsd.c')
-rw-r--r--linuxthreads/no-tsd.c6
1 files changed, 5 insertions, 1 deletions
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 <sys/cdefs.h>  /* for __const */
 #include <bits/libc-tsd.h>
 
+#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) */