Need to allocate more initial tls space since we use __thread
authorDavid Bartley <dtbartle@glibc.(none)>
Sat, 31 Jan 2009 05:08:20 +0000 (05:08 +0000)
committerDavid Bartley <dtbartle@glibc.(none)>
Sat, 31 Jan 2009 05:08:20 +0000 (05:08 +0000)
csu/libc-tls.c
elf/dl-tls.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ldsodefs.h

index 0d240cc..2b41b7e 100644 (file)
@@ -61,7 +61,7 @@ struct dtv_slotinfo_list *_dl_tls_dtv_slotinfo_list;
 size_t _dl_tls_static_nelem;
 /* Size of the static TLS block.  Giving this initialized value
    preallocates some surplus bytes in the static TLS area.  */
-size_t _dl_tls_static_size = 2048;
+size_t _dl_tls_static_size = 2048 + TLS_STATIC_EXTRA_SURPLUS;
 /* Size actually allocated in the static TLS block.  */
 size_t _dl_tls_static_used;
 /* Alignment requirement of the static TLS block.  */
index d5865ab..8c49c8b 100644 (file)
@@ -31,7 +31,7 @@
 
 /* Amount of excess space to allocate in the static TLS area
    to allow dynamic loading of modules defining IE-model TLS data.  */
-#define TLS_STATIC_SURPLUS     64 + DL_NNS * 100
+#define TLS_STATIC_SURPLUS     64 + DL_NNS * 100 + TLS_STATIC_EXTRA_SURPLUS
 
 /* Value used for dtv entries for which the allocation is delayed.  */
 #define TLS_DTV_UNALLOCATED    ((void *) -1l)
index 63ef2b8..734a6c6 100644 (file)
 extern const char * _dl_sun_execname;
 extern int _dl_malloc_prot_exec;
 
+/* Since we use __thread in a few places in libc, we need a bit more surplus.  */
+#include <deflt.h>
+#include <vfsentP.h>
+#define TLS_STATIC_EXTRA_SURPLUS       (2 * (_DEFLT_BUFSIZE + VFS_LINE_MAX + 32))
+
 /* Get the real definitions.  */
 #include_next <ldsodefs.h>
 
@@ -47,6 +52,4 @@ extern void _dl_non_dynamic_init (void) internal_function;
 # define DLOPEN_ALLOWED_FLAGS  (RTLD_BINDING_MASK | RTLD_NOLOAD | \
        RTLD_DEEPBIND | RTLD_GLOBAL | RTLD_LOCAL | RTLD_NODELETE)
 
-#define DLERR_USE_INTERNAL_MALLOC
-
 #endif /* ldsodefs.h */