diff options
Diffstat (limited to 'nptl/init.c')
-rw-r--r-- | nptl/init.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/nptl/init.c b/nptl/init.c index e3f51119cf..678c0a56c8 100644 --- a/nptl/init.c +++ b/nptl/init.c @@ -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. */ |