GMP 5.1.1 make check fail on Solaris 11
ken mays
maybird1776 at yahoo.com
Sun Feb 17 01:29:15 CET 2013
Hi Marc,
I fixed the two issues with compiling gmp-5.1.1 with Oracle Solaris Studio 12.1 doing this:
Seems -library=stdcxx4 was causing my issue.
$ export CXX="CC -library=stlport4 -m64"
Version: GNU MP 5.1.1
Host type: coreiwsm-pc-solaris2.11
ABI: 64
Install prefix: /usr/local
Compiler: cc -xc99
Static libraries: no
Shared libraries: yes
./configure ABI=64 --prefix=/usr/local --disable-static --enable-cxx --enable-fat
Patches:
---------
1. cxx/osdoprnti.cc - replace <cstdarg> with <stdarg.h>
2. Fixed mpn/*def with GCC .protected visibility flag for SS 12.1 handling (see bug in relation to this).
Note: Build completed 100%
make check
----------
make check passes all C-related tests 100%.
make check cxx test results (1 test failed out of 19 tests):
PASS: t-assign
PASS: t-binary
PASS: t-cast
PASS: t-constr
PASS: t-cxx11
PASS: t-headers
PASS: t-iostream
PASS: t-istream
PASS: t-locale
PASS: t-misc
PASS: t-mix
PASS: t-ops
FAIL: t-ops2 <-- 'trunc' symbol issue
PASS: t-ops3
PASS: t-ostream
PASS: t-prec
PASS: t-rand
PASS: t-ternary
PASS: t-unary
Hope that helps!,
Ken Mays
________________________________
From: Marc Glisse <marc.glisse at inria.fr>
To: ken mays <maybird1776 at yahoo.com>
Cc: gmp-bugs at gmplib.org
Sent: Saturday, February 16, 2013 10:49 AM
Subject: Re: GMP 5.1.1 make check fail on Solaris 11
On Sat, 16 Feb 2013, ken mays wrote:
> if the two errors below are fixed.
How did you fix them?
> /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]>&).
Could you try the options I give in:
http://gmplib.org/list-archives/gmp-bugs/2013-February/002923.html
?
It would also be good to report the bug to Oracle, if 12.3 still has it.
--
Marc Glisse
More information about the gmp-bugs
mailing list