[PATCH] Improve and consolidate sparc PIC assembler.

Torbjorn Granlund tg at gmplib.org
Sat Apr 13 21:10:35 CEST 2013


  > ld: fatal: relocation error: R_SPARC_GOTDATA_OP_LOX10: file mpn/.libs/gcd_1.o: symbol ctz_table: relocation illegal for TLS symbol
  > ld: fatal: relocation error: R_SPARC_GOTDATA_OP: file mpn/.libs/gcd_1.o: symbol ctz_table: relocation illegal for TLS symbol
  > 
  > TLS?  Thread local storage?
  
  Sun's tools give the worst diagnostics in the world.  Yes, that's what it
  means by TLS.
  
Which seems nonsensical.

  And no I have no idea why it's complaining like this :-/
  
  Maybe because ctz_zero is in .rodata?  That shouldn't matter at all, gcc
  emits things like that all the time.
  
  Is there a "ctz_table" in libc.so by chance?  If so, then changing the
  name of the table should be sufficient to fix the problem.

No ctz_zero in libc according to nm.

Since GMP supports Solaris, and since Solaris is different, you need
Solaris access for GMP hacking.  I am probably not able to help, since I
don't have any sparc-solaris in the GMP test environment.

(I'll get sparc64 added to the test environment the day qemu actually
works for that target.)

-- 
Torbjörn


More information about the gmp-devel mailing list