On Fri, Apr 21, 2006 at 02:42:49PM +0200, Christian Joensson wrote:
> hmm, I am uncertain again. The testresults available at
> http://gcc.gnu.org/ml/gcc-testresults/2006-04/msg01133.html indicate
> that this is indeed a TLS problem. From the log file of the libgomp
> testsuite (with the -m64 switch), I see this, e.g.:
> 
> Executing on host: /usr/local/src/trunk/objdir/gcc/xgcc
> -B/usr/local/src/trunk/objdir/gcc/
> /usr/local/src/trunk/gcc/libgomp/testsuite/libgomp.c/appendix-a/a.15.1.c
>  -B/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/64/libgomp/
> -I/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/64/libgomp
> -I/usr/local/src/trunk/gcc/libgomp/testsuite/.. -mcpu=v9
> -fmessage-length=0 -fopenmp  -O2 -fopenmp  
> -L/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/64/libgomp/.libs
> -lgomp -lm   -m64 -o ./a.15.1.exe    (timeout = 1800)
> PASS: libgomp.c/appendix-a/a.15.1.c (test for excess errors)
> Setting LD_LIBRARY_PATH to
> .:/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/64/libgomp/.libs:/usr/local/src/trunk/objdir/gcc:/usr/local/src/trunk/objdir/gcc/64:.:/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/64/libgomp/.libs:/usr/local/src/trunk/objdir/gcc:/usr/local/src/trunk/objdir/gcc/64:/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/libmudflap/.libs:/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/libssp/.libs:/usr/local/src/trunk/objdir/sparc64-unknown-linux-gnu/libgomp/.libs:/usr/local/src/trunk/objdir/./gcc:/usr/local/src/trunk/objdir/./prev-gcc
> ./a.15.1.exe: error while loading shared libraries: libgomp.so.1:
> cannot handle TLS data
> FAIL: libgomp.c/appendix-a/a.15.1.c execution test
> 
> and I have this:
> 
> file .libs/libgomp.so.1.0.0
> .libs/libgomp.so.1.0.0: ELF 64-bit MSB shared object, SPARC V9,
> version 1 (SYSV), not stripped
> 
> Now, where is the TLS data supposed to be handled? Is that in glibc or
> somewhere else?

In the dynamic linker, but your glibc is clearly too old.
The thing on sparc64 is, the assembler TLS (and GCC) support has been added
many years ago, for 32-bit and 64-bit ABI at the same time.
But, linker support has been done only for elf32-sparc at that time
and 64-bit linker support has been added only in April 2005.
So, until then 64-bit glibc couldn't support it either.

Just use more recent glibc...

        Jakub

Reply via email to