Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 11 Dec 2002 09:32:45 +0000 (09:32 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 11 Dec 2002 09:32:45 +0000 (09:32 +0000)
2002-12-11  Ulrich Drepper  <drepper@redhat.com>

* init.c (__pthread_initialize_minimal): Fix initialization in
static lib by preventing gcc from being too clever.

nptl/ChangeLog
nptl/init.c

index 6dea293..cc8ac2a 100644 (file)
@@ -1,3 +1,8 @@
+2002-12-11  Ulrich Drepper  <drepper@redhat.com>
+
+       * init.c (__pthread_initialize_minimal): Fix initialization in
+       static lib by preventing gcc from being too clever.
+
 2002-12-10  Ulrich Drepper  <drepper@redhat.com>
 
        * init.c (__pthread_initialize_minimal): Remove unneccesary
index e3f5111..678c0a5 100644 (file)
@@ -104,6 +104,12 @@ __pthread_initialize_minimal (void)
   /* Unlike in the dynamically linked case the dynamic linker has not
      taken care of initializing the TLS data structures.  */
   __libc_setup_tls (TLS_TCB_SIZE, TLS_TCB_ALIGN);
+
+  /* We must prevent gcc from being clever and move any of the
+     following code ahead of the __libc_setup_tls call.  This function
+     will initialize the thread register which is subsequently
+     used.  */
+  __asm __volatile ("");
 #endif
 
   /* Minimal initialization of the thread descriptor.  */