5.1.2 assembler error on Solaris 10 with CC='cc -xtarget=opteron -xarch=amd64'

Daniel Richard G. skunk at iSKUNK.ORG
Tue Oct 8 09:10:07 CEST 2013

On Tue, 2013 Oct  8 8:19+0200, Marc Glisse wrote:
> You must be using an ancient version of that compiler, since AFAIK it
> understands -m64 now. Could you use a more recent version?

Getting updates for Sun products is not easy now that Oracle runs
the show :(

> You missed some of the required information in your email:
> http://gmplib.org/manual/Reporting-Bugs.html


* Building stock GMP 5.1.2

* Configured with --disable-dependency-tracking
  --disable-maintainer-mode --disable-shared --with-pic
  --without-readline CC='cc -xtarget=opteron -xarch=amd64'

* Configure summary:

  Version:           GNU MP 5.1.2
  Host type:         x86_64-pc-solaris2.10
  ABI:               64
  Install prefix:    /tg/freeport/arch/sunos_x86_64
  Compiler:          cc -xtarget=opteron -xarch=amd64 -D_STDC_C99=
  Static libraries:  yes
  Shared libraries:  no

* Compiler info:

  $ which cc
  $ cc -V
  cc: Sun C 5.7 Patch 117837-08 2006/04/19
  usage: cc [ options] files.  Use 'cc -flags' for details

* uname info:

  $ uname -a
  SunOS darkstar 5.10 Generic_147441-01 i86pc i386 i86pc

* config.m4 file: see attached.

> mpn/add_n.asm is a symlink for what file?

$ ls -l mpn/add_n.asm
lrwxrwxrwx 1 cport 100 53 2013-10-08 01:22 mpn/add_n.asm -> /tmp/gmp-5.1.2/mpn/x86_64/aors_n.asm

> > cc -xtarget=opteron -xarch=amd64 -D_STDC_C99= -c -DHAVE_CONFIG_H -I. -I/tmp/gmp-5.1.2/mpn -I.. -D__GMP_WITHIN_GMP -I/tmp/gmp-5.1.2 -DOPERATION_add_n -xO3 -m64 tmp-add_n.s -KPIC -DPIC -o add_n.o
> > cc: Warning: illegal option -m64
> > Assembler:
> >        "tmp-add_n.s", line 86 : Syntax error
> >        "tmp-add_n.s", line 88 : Illegal mnemonic
> >        "tmp-add_n.s", line 88 : Syntax error
> Could you show some of those lines?
> (you many need to remove the last line of mpn/m4-ccas so the file
> doesn't disappear)

Of course:

        .align  16
        .globl  __gmpn_add_nc
        .type   __gmpn_add_nc, at function

        mov     %ecx, %eax
        shr     $2, %rcx    <---- line 86
        and     $3, %eax
        bt      $0, %r8     <---- line 88
        jrcxz   .Llt4

> > Dropping the -m64 option does not help.
> How about dropping the xtarget/xarch options, or using -
> xarch=native64 maybe?

If I drop xtarget/xarch, the build triplet is detected as coreisbr-pc-
solaris2.10 (I want x86_64 for the CPU) and the configure script
errors out with

    configure: error: Oops, mp_limb_t is 32 bits, but the assembler code
    in this configuration expects 64 bits.

If I use -xarch=native64, I get the same assembler error as before.


Daniel Richard G. || skunk at iSKUNK.ORG
My ASCII-art .sig got a bad case of Times New Roman.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: config.m4.txt
URL: <http://gmplib.org/list-archives/gmp-bugs/attachments/20131008/e036e286/attachment.txt>

More information about the gmp-bugs mailing list