summaryrefslogtreecommitdiff
path: root/libc/sysdeps/generic
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2006-11-07 22:59:31 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2006-11-07 22:59:31 +0000
commit2a9b4a0cce09a1bccb092ddc9fb98532ec8b720f (patch)
treed89ccfd8639aaf3a0ece7ac6ccff0b345ba757c7 /libc/sysdeps/generic
parent5464a78aac33302c987c3dab8463f53c3c1dd7df (diff)
downloadeglibc2-2a9b4a0cce09a1bccb092ddc9fb98532ec8b720f.tar.gz
Merge changes between r426 and r615 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@616 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/sysdeps/generic')
-rw-r--r--libc/sysdeps/generic/ldsodefs.h34
-rw-r--r--libc/sysdeps/generic/sysdep-cancel.h1
-rw-r--r--libc/sysdeps/generic/tls.h7
3 files changed, 10 insertions, 32 deletions
diff --git a/libc/sysdeps/generic/ldsodefs.h b/libc/sysdeps/generic/ldsodefs.h
index e9198bca0..dda91bb80 100644
--- a/libc/sysdeps/generic/ldsodefs.h
+++ b/libc/sysdeps/generic/ldsodefs.h
@@ -377,8 +377,6 @@ struct rtld_global
struct link_map *_ns_loaded;
/* Number of object in the _dl_loaded list. */
unsigned int _ns_nloaded;
- /* Array representing global scope. */
- struct r_scope_elem *_ns_global_scope[2];
/* Direct pointer to the searchlist of the main object. */
struct r_scope_elem *_ns_main_searchlist;
/* This is zero at program start to signal that the global scope map is
@@ -449,11 +447,6 @@ struct rtld_global
It returns an errno code or zero on success. */
EXTERN int (*_dl_make_stack_executable_hook) (void **) internal_function;
- /* Keep the conditional TLS members at the end so the layout of the
- structure used by !USE_TLS code matches the prefix of the layout in
- the USE_TLS rtld. Note that `struct link_map' is conditionally
- defined as well, so _dl_rtld_map needs to be last before this. */
-#ifdef USE_TLS
/* Highest dtv index currently needed. */
EXTERN size_t _dl_tls_max_dtv_idx;
/* Flag signalling whether there are gaps in the module ID allocation. */
@@ -481,10 +474,10 @@ struct rtld_global
/* Number of additional entries in the slotinfo array of each slotinfo
list element. A large number makes it almost certain take we never
have to iterate beyond the first element in the slotinfo list. */
-# define TLS_SLOTINFO_SURPLUS (62)
+#define TLS_SLOTINFO_SURPLUS (62)
/* Number of additional slots in the dtv allocated. */
-# define DTV_SURPLUS (14)
+#define DTV_SURPLUS (14)
/* Initial dtv of the main thread, not allocated with normal malloc. */
EXTERN void *_dl_initial_dtv;
@@ -492,23 +485,18 @@ struct rtld_global
EXTERN size_t _dl_tls_generation;
EXTERN void (*_dl_init_static_tls) (struct link_map *);
-#endif
#ifdef SHARED
};
# define __rtld_global_attribute__
# ifdef IS_IN_rtld
-# ifdef HAVE_VISIBILITY_ATTRIBUTE
-# ifdef HAVE_SDATA_SECTION
-# define __rtld_local_attribute__ \
+# ifdef HAVE_SDATA_SECTION
+# define __rtld_local_attribute__ \
__attribute__ ((visibility ("hidden"), section (".sdata")))
-# undef __rtld_global_attribute__
-# define __rtld_global_attribute__ __attribute__ ((section (".sdata")))
-# else
-# define __rtld_local_attribute__ __attribute__ ((visibility ("hidden")))
-# endif
+# undef __rtld_global_attribute__
+# define __rtld_global_attribute__ __attribute__ ((section (".sdata")))
# else
-# define __rtld_local_attribute__
+# define __rtld_local_attribute__ __attribute__ ((visibility ("hidden")))
# endif
extern struct rtld_global _rtld_local __rtld_local_attribute__;
# undef __rtld_local_attribute__
@@ -670,11 +658,7 @@ struct rtld_global_ro
};
# define __rtld_global_attribute__
# ifdef IS_IN_rtld
-# ifdef HAVE_VISIBILITY_ATTRIBUTE
-# define __rtld_local_attribute__ __attribute__ ((visibility ("hidden")))
-# else
-# define __rtld_local_attribute__
-# endif
+# define __rtld_local_attribute__ __attribute__ ((visibility ("hidden")))
extern struct rtld_global_ro _rtld_local_ro
attribute_relro __rtld_local_attribute__;
extern struct rtld_global_ro _rtld_global_ro
@@ -1039,9 +1023,7 @@ rtld_hidden_proto (_dl_allocate_tls_init)
extern void _dl_deallocate_tls (void *tcb, bool dealloc_tcb) internal_function;
rtld_hidden_proto (_dl_deallocate_tls)
-#if defined USE_TLS
extern void _dl_nothread_init_static_tls (struct link_map *) attribute_hidden;
-#endif
/* Find origin of the executable. */
extern const char *_dl_get_origin (void) attribute_hidden;
diff --git a/libc/sysdeps/generic/sysdep-cancel.h b/libc/sysdeps/generic/sysdep-cancel.h
index f07b784f2..ba6a1e04b 100644
--- a/libc/sysdeps/generic/sysdep-cancel.h
+++ b/libc/sysdeps/generic/sysdep-cancel.h
@@ -2,6 +2,7 @@
/* No multi-thread handling enabled. */
#define SINGLE_THREAD_P (1)
+#define RTLD_SINGLE_THREAD_P (1)
#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
#define LIBC_CANCEL_HANDLED() /* Nothing. */
diff --git a/libc/sysdeps/generic/tls.h b/libc/sysdeps/generic/tls.h
index 6a23ec05e..06e41ad12 100644
--- a/libc/sysdeps/generic/tls.h
+++ b/libc/sysdeps/generic/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. Generic version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006 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
@@ -17,11 +17,6 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-/* By default no TLS support is available. This is signaled by the
- absence of the symbol USE_TLS. */
-#undef USE_TLS
-
-
/* An architecture-specific version of this file has to defined a
number of symbols: