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