Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 15 Aug 2002 13:04:07 +0000 (13:04 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 15 Aug 2002 13:04:07 +0000 (13:04 +0000)
2002-08-15  Ulrich Drepper  <drepper@redhat.com>

* csu/Makefile: Define elide-routines.os not static-only-routines.

* include/sched.h (__clone): Add varargs at the end.

* elf/rtld.c (_dl_start): All TLS_INIT_TP to fail and stop in that
case.
(TLS_INIT_HELPER): If defined use it.
* sysdeps/generic/libc-tls.c (TLS_INIT_HELPER): Likewise.

* locale/loadarchive.c (archfname): Add missing slash.
* sysdeps/generic/strtold.c (__strtold_internal): Add libc_hidden_def.
* wcsmbs/wcstold.c (__wcstold_internal): Add libc_hidden_def.

ChangeLog
csu/Makefile
elf/rtld.c
include/sched.h
sysdeps/generic/libc-tls.c
sysdeps/unix/sysv/linux/kernel-features.h

index d251b1a..8f327f9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-08-15  Ulrich Drepper  <drepper@redhat.com>
+
+       * csu/Makefile: Define elide-routines.os not static-only-routines.
+
+       * include/sched.h (__clone): Add varargs at the end.
+
+       * elf/rtld.c (_dl_start): All TLS_INIT_TP to fail and stop in that
+       case.
+       (TLS_INIT_HELPER): If defined use it.
+       * sysdeps/generic/libc-tls.c (TLS_INIT_HELPER): Likewise.
+
 2002-08-15  Roland McGrath  <roland@redhat.com>
 
        * elf/dl-load.c (lose): Remove [!SHARED] conditional from null check
 
 2002-08-13  Jakub Jelinek  <jakub@redhat.com>
 
-        * locale/loadarchive.c (archfname): Add missing slash.
+       * locale/loadarchive.c (archfname): Add missing slash.
 
-        * sysdeps/generic/strtold.c (__strtold_internal): Add libc_hidden_def.
-        * wcsmbs/wcstold.c (__wcstold_internal): Add libc_hidden_def.
+       * sysdeps/generic/strtold.c (__strtold_internal): Add libc_hidden_def.
+       * wcsmbs/wcstold.c (__wcstold_internal): Add libc_hidden_def.
 
 2002-08-12  Roland McGrath  <roland@redhat.com>
 
index ca8dbbb..c0a06e3 100644 (file)
@@ -28,7 +28,7 @@ subdir := csu
 
 routines = init-first libc-start $(libc-init) sysdep version check_fds \
           libc-tls
-static-only-routines = libc-tls
+elide-routines.os = libc-tls
 csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
 extra-objs = start.o gmon-start.o \
             $(start-installed-name) g$(start-installed-name) $(csu-dummies)
index 8a14473..5c42600 100644 (file)
@@ -117,6 +117,11 @@ static hp_timing_t relocate_time;
 static hp_timing_t load_time;
 #endif
 
+/* Additional definitions needed by TLS initialization.  */
+#ifdef TLS_INIT_HELPER
+TLS_INIT_HELPER
+#endif
+
 static ElfW(Addr) _dl_start_final (void *arg, struct link_map *bootstrap_map_p,
                                   hp_timing_t start_time);
 
@@ -257,10 +262,12 @@ _dl_start (void *arg)
        INSTALL_DTV ((char *) tlsblock + bootstrap_map.l_tls_offset,
                     initdtv);
 
-       TLS_INIT_TP ((char *) tlsblock + bootstrap_map.l_tls_offset);
+       if (TLS_INIT_TP ((char *) tlsblock + bootstrap_map.l_tls_offset) != 0)
+         _dl_fatal_printf ("cannot setup thread-local storage\n");
 # elif TLS_DTV_AT_TP
        INSTALL_DTV (tlsblock, initdtv);
-       TLS_INIT_TP (tlsblock);
+       if (TLS_INIT_TP (tlsblock) != 0)
+         _dl_fatal_printf ("cannot setup thread-local storage\n");
 # else
 #  error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
 # endif
index 26ff9c2..291811a 100644 (file)
@@ -16,7 +16,7 @@ extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t);
 
 /* These are Linux specific.  */
 extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
-                   int __flags, void *__arg);
+                   int __flags, void *__arg, ...);
 extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
                     size_t __child_stack_size, int __flags, void *__arg);
 #endif
index cc56a44..51b85ef 100644 (file)
@@ -47,6 +47,12 @@ static struct
 static struct link_map static_map;
 
 
+/* Additional definitions needed by TLS initialization.  */
+#ifdef TLS_INIT_HELPER
+TLS_INIT_HELPER
+#endif
+
+
 void
 __libc_setup_tls (size_t tcbsize, size_t tcbalign)
 {
index 3653f73..e62e90c 100644 (file)
 #endif
 
 /* On x86, the set_thread_area syscall was introduced in 2.5.29, but its
-   semantics was changed in 2.5.30.  */
-#if __LINUX_KERNEL_VERSION >= 132382 && defined __i386__
+   semantics was changed in 2.5.30, and again after 2.3.31.  */
+#if __LINUX_KERNEL_VERSION >= 132384 && defined __i386__
 # define __ASSUME_SET_THREAD_AREA_SYSCALL      1
 #endif