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