I've done some more research into this.

I first made sure that we are using the same test that GCC uses to
enable the use of gotdata relocations.

Then I read over the new m4 LEA macros a few times, the only thing
I found was that I left around a local label that was only necessary
for an earlier revision of my changes, patch below to delete it.

Next, I tried to reproduce the asm --> s file made for gcd_1.asm to
try and double check the assembler output, I did this by configuring
for ultrasparc3-linux and forcing HAVE_SHARED_THUNKS to "no" in the
created config.m4

The line numbers match up with your report and the assembler line
looks fine as far as I can tell.  Also the lines surrounding look
ok too, just in case the line number reported by the assembler is
not correct for some reason.

The last remaining possible difference I can come up with is that
the build will pass "-K PIC" to the assembler (because of -fPIC
in the gcc command line) but for the relocation test in acinclude.m4
we don't pass that option.  Could you try, on swift.nada.kth.se,
a test file:

        .text
        sethi   %gdop_hix22(ctz_table), %i5
        xor     %i5, %gdop_lox10(ctz_table), %i5
        ldx     [%l7 + %i5], %i5, %gdop(ctz_table)

and then try to build it with:

        gcc -O2 -m64 -c -o test.o test.s

and then:

        gcc -O2 -m64 -fPIC -c -o test.o test.s

Finally, try to fetch the gcc command line used by the gotdata test in
config.log   Maybe we can include the config.log output in the build
farm links just like config.h currently is?  That would help diagnose
things like this.

Thanks!

2013-04-11  David S. Miller  <da...@davemloft.net>

        * mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label.
        (LEA_LEAF): Likewise.

diff -r ace68333a9dc mpn/sparc32/sparc-defs.m4
--- a/mpn/sparc32/sparc-defs.m4 Wed Apr 10 22:42:33 2013 +0200
+++ b/mpn/sparc32/sparc-defs.m4 Thu Apr 11 12:39:33 2013 -0700
@@ -50,7 +50,7 @@
        sethi   %hi(_GLOBAL_OFFSET_TABLE_-4), %`$3'
        call    __sparc_get_pc_thunk.`$3'
         or     %`$3', %lo(_GLOBAL_OFFSET_TABLE_+4), %`$3'
-99:    sethi   %gdop_hix22(`$1'), %`$2'
+       sethi   %gdop_hix22(`$1'), %`$2'
        xor     %`$2', %gdop_lox10(`$1'), %`$2'
 ifdef(`HAVE_ABI_64',`
        ldx     [%`$3' + %`$2'], %`$2', %gdop(`$1')',`
@@ -58,7 +58,7 @@
        sethi   %hi(_GLOBAL_OFFSET_TABLE_-4), %`$3'
        call    __sparc_get_pc_thunk.`$3'
         or     %`$3', %lo(_GLOBAL_OFFSET_TABLE_+4), %`$3'
-99:    sethi   %hi(`$1'), %`$2'
+       sethi   %hi(`$1'), %`$2'
        or      %`$2', %lo(`$1'), %`$2'
 ifdef(`HAVE_ABI_64',`
        ldx     [%`$3' + %`$2'], %`$2'',`
@@ -82,7 +82,7 @@
        mov     %o7, %`$2'
        call    __sparc_get_pc_thunk.`$3'
         or     %`$3', %lo(_GLOBAL_OFFSET_TABLE_+4), %`$3'
-99:    mov     %`$2', %o7
+       mov     %`$2', %o7
        sethi   %gdop_hix22(`$1'), %`$2'
        xor     %`$2', %gdop_lox10(`$1'), %`$2'
 ifdef(`HAVE_ABI_64',`
@@ -92,7 +92,7 @@
        mov     %o7, %`$2'
        call    __sparc_get_pc_thunk.`$3'
         or     %`$3', %lo(_GLOBAL_OFFSET_TABLE_+4), %`$3'
-99:    mov     %`$2', %o7
+       mov     %`$2', %o7
        sethi   %hi(`$1'), %`$2'
        or      %`$2', %lo(`$1'), %`$2'
 ifdef(`HAVE_ABI_64',`
_______________________________________________
gmp-devel mailing list
gmp-devel@gmplib.org
http://gmplib.org/mailman/listinfo/gmp-devel

Reply via email to