Illegal subtraction in tmp-dive_1.s

Dennis Clarke dclarke at blastwave.org
Thu Apr 16 15:29:27 CEST 2009


> On Wed, 15 Apr 2009, Dennis Clarke wrote:
>
>> I hit this repeatedly on Solaris x86.
>>
>> Assembler:
>>        "tmp-dive_1.s", line 292 : Illegal subtraction in ... ".DOT-0 -
>> __gmp_binvert_limb_table"
>> cc: assembler failed for tmp-dive_1.s
>
> Funny, on linux x86_64 with Sun Studio I also got an Illegal subtraction,
> but a different one: the Sun assembler refuses to compute differences of
> symbols in different sections, and x86_64/sqr_basecase.asm does just that.
> Moving "TEXT" before L(jmptab) in the 2 places where it occurs fixes it (I
> know gcc had a similar problem with bug 31713, fixed in 2007) and the
> result passes all tests.
>
> Could you try with the latest March express compiler to check whether you
> get the same error or a slightly different message?

sorry, no joy :

$ cc -V
cc: Sun Ceres C 5.10 SunOS_i386 2009/03/06
usage: cc [ options] files.  Use 'cc -flags' for details
$ CC -V
CC: Sun Ceres C++ 5.10 SunOS_i386 2009/03/06
Usage: CC [ options ] files.  Use 'CC -flags' for details
$

/bin/bash ../libtool --mode=compile --tag=CC
../../../gmp-4.3.0/mpn/m4-ccas --m4="m4" /opt/SSX0903/bin/cc -c
-DHAVE_CONFIG_H -I. -I../../../gmp-4.3.0/mpn -I.. -D__GMP_WITHIN_GMP
-I../../../gmp-4.3.0 -DOPERATION_`echo dive_1 | sed 's/_$//'` 
-I/opt/csw/include  -xstrconst -xildoff -erroff=%all -Xa -xnolibmil -Kpic
-xregs=no%frameptr -xlibmieee -xs -xarch=386  `test -f 'dive_1.asm' ||
echo '../../../gmp-4.3.0/mpn/'`dive_1.asm
 ../../../gmp-4.3.0/mpn/m4-ccas --m4=m4 /opt/SSX0903/bin/cc -c
-DHAVE_CONFIG_H -I. -I../../../gmp-4.3.0/mpn -I.. -D__GMP_WITHIN_GMP
-I../../../gmp-4.3.0 -DOPERATION_dive_1 -I/opt/csw/include -xstrconst
-xildoff -erroff=%all -Xa -xnolibmil -Kpic -xregs=no%frameptr -xlibmieee
-xs -xarch=386 dive_1.asm  -fPIC -DPIC -o .libs/dive_1.o
m4  -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_dive_1 -DPIC dive_1.asm
>tmp-dive_1.s
 /opt/SSX0903/bin/cc -c -DHAVE_CONFIG_H -I. -I../../../gmp-4.3.0/mpn -I..
-D__GMP_WITHIN_GMP -I../../../gmp-4.3.0 -DOPERATION_dive_1
-I/opt/csw/include -xstrconst -xildoff -erroff=%all -Xa -xnolibmil -Kpic
-xregs=no%frameptr -xlibmieee -xs -xarch=386 tmp-dive_1.s -fPIC -DPIC -o
.libs/dive_1.o
Assembler:
        "tmp-dive_1.s", line 232 : Illegal subtraction in ... ".DOT-0 -
__gmp_binvert_limb_table"
cc: fbe failed for tmp-dive_1.s
gmake[2]: *** [dive_1.lo] Error 1
gmake[2]: Leaving directory
`/export/medusa/dclarke/build/libgmp/i386/gmp-4.3.0-build-i386-SSX0903/mpn'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory
`/export/medusa/dclarke/build/libgmp/i386/gmp-4.3.0-build-i386-SSX0903'
gmake: *** [all] Error 2

very much the same except we get

     cc: fbe failed for tmp-dive_1.s

with Studio 11 we get

     cc: assembler failed for tmp-dive_1.s

Dennis




More information about the gmp-discuss mailing list