GMP 5.1.1 make check fail on Solaris 11

ken mays maybird1776 at yahoo.com
Sat Feb 16 15:12:01 CET 2013


Hi Torbjorn,

As mentioned, gmp-5.1.1 built 100% with Oracle Studio 12.1 (using -library=stdcxx4) if the two errors below are fixed.  

Oracle Studio 12.1
-------------------
cc: Sun C 5.10 SunOS_i386 Patch 142363-03 2009/12/03

CC: Sun C++ 5.10 SunOS_i386 128229-03 2009/11/05

as: Sun Compiler Common 12.1 SunOS_i386 Patch 141858-04 2009/12/08


  Version:           GNU MP 5.1.1
  Host type:         coreiwsm-pc-solaris2.11
  ABI:               64
  Install prefix:    /usr/local
  Compiler:          /opt/sunstudio12.1/bin/cc
  Static libraries:  no
  Shared libraries:  yes

Hardware platform: Intel Xeon E5620


Once we fix this bug, libgmp.so passes compilation 100%.

./configure  ABI=64  --disable-static --enable-cxx --enable-fat --prefix=/usr/local

--------------------------------
 /opt/sunstudio12.1/bin/cc -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_invert_limb_table -xO1 -m64 tmp-invert_limb_table.s -KPIC -DPIC -o .libs/invert_limb_table.o

Assembler:
        "tmp-invert_limb_table.s", line 49 : Illegal mnemonic
        Near line: ".protected __gmpn_invert_limb_table"
        "tmp-invert_limb_table.s", line 49 : Syntax error
        Near line: ".protected __gmpn_invert_limb_table"
        "tmp-invert_limb_table.s", line 49 : Illegal mnemonic
        Near line: ".protected __gmpn_invert_limb_table"
cc: fbe failed for tmp-invert_limb_table.s
gmake[2]: *** [invert_limb_table.lo] Error 1
---------------------------------

Once we fix this bug, libgmpxx.so passes compilation 100%.


/bin/sh ../libtool --tag=CXX   --mode=compile CC -xO1 -library=stdcxx4 -m64 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMPXX -I.. -c -o limits.lo limits.cc


libtool: compile:  CC -xO1 -fsimple=0 -features=extensions -library=no%Cstd -library=stdcxx4 -m64 -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMPXX -I.. -xO1 -m64 -c limits.cc  -KPIC -DPIC -o .libs/limits.o

"../gmpxx.h", line 1516: Error: Could not find a match for std::swap<std::_CharT, std::_Traits, std::_Allocator>(__mpz_struct, __mpz_struct) needed in __gmp_expr<__mpz_struct[1], __mpz_struct[1]>::swap(__gmp_expr<__mpz_struct[1], __mpz_struct[1]>&).

"../gmpxx.h", line 1710: Error: Could not find a match for std::swap<std::_CharT, std::_Traits, std::_Allocator>(__mpq_struct, __mpq_struct) needed in __gmp_expr<__mpq_struct[1], __mpq_struct[1]>::swap(__gmp_expr<__mpq_struct[1], __mpq_struct[1]>&).

"../gmpxx.h", line 1931: Error: Could not find a match for std::swap<std::_CharT, std::_Traits, std::_Allocator>(__mpf_struct, __mpf_struct) needed in __gmp_expr<__mpf_struct[1], __mpf_struct[1]>::swap(__gmp_expr<__mpf_struct[1], __mpf_struct[1]>&).

3 Error(s) detected.
gmake[2]: *** [limits.lo] Error 1
------------------------------

Test Result: Make check passes 100% once the two minor bugs are fixed.

Note:
------ 
These are the ONLY TWO BUGS using Oracle Solaris Studio 12.1 when doing a full standard build with gmp-5.1.1 with CXX enabled
on Oracle Solaris 11. I can test any gmp-5.1.1 patches or workarounds - if needed.


Sincerely,
Ken Mays





________________________________
 From: Torbjorn Granlund <tg at gmplib.org>
To: ken mays <maybird1776 at yahoo.com> 
Cc: "gmp-bugs at gmplib.org" <gmp-bugs at gmplib.org> 
Sent: Saturday, February 16, 2013 3:14 AM
Subject: Re: GMP 5.1.1 make check fail on Solaris 11
 
ken mays <maybird1776 at yahoo.com> writes:

  gmp-5.1.1 compiles fine for me using Oracle Studio 12.1 when I
  --disable-assembly. I only get the one bug reported below when I use
  '--enable-cxx --disable-assembly' as well.
  
What difference does --disable-assembly make?  

-- 
Torbjörn


More information about the gmp-bugs mailing list