make failure trying to build gmp-5.1.0a on Tru64unix v5.1b system
    Bill.Glessner at cwu.EDU 
    Bill.Glessner at cwu.EDU
       
    Fri Feb 15 18:55:21 CET 2013
    
    
  
Hello,
I downloaded the GMP-5.1.1 distribution.
The first attempt for GMP-5.1.1 to build using the same configuration options 
./configure "ac_cv_prog_cc_c99=" \
            --with-cxx CPPFLAGS=-D__USE_STD_IOSTREAM
as previously reported produced the same results:
# gnumake
./gen-fac 64 0 >fac_table.h || (rm -f fac_table.h; exit 1)
Assertion failed: dp[dn-1] & GMP_LIMB_HIGHBIT, file mini-gmp/mini-gmp.c, line 99
6
/bin/bash: line 1: 403478 IOT/Abort trap          ./gen-fac 64 0 > fac_table.h
gnumake: *** [fac_table.h] Error 1
I have found that the Tru64unix 5.1B-6 C compiler,
Compaq C V6.5-011 on HP Tru64 UNIX V5.1B (Rev. 2650)
Compiler Driver V6.5-003 (sys) cc Driver
apparently has issues with a form of 'assert' that is used in the
./mini-gmp/mini-gmp.c component. Specifically it appears that:
an 'assert' containing an array reference such as 'dp[dn-1]'  or
a conditional statement that does not contain an explicit relational 
operator 'assert (dp[dn-1] & GMP_LIMB_HIGHBIT);' rather than 
''assert ((dp[dn-1] & GMP_LIMB_HIGHBIT) != 0);' do not evaluate/compile
correctly.
The following changes in the ./mini-gmp.mini-gmp.c module allowed the
Tru64unix 5.1B-6 C compiler to produce a result that continued the build:
Replace
/*  assert ((dp[dn-1] & GMP_LIMB_HIGHBIT) != 0); */
With
  mp_limb_t dpVAL;
  dpVAL = dp[dn-1];
  assert ((dpVAL & GMP_LIMB_HIGHBIT) != 0);
And Replace 
    assert (dp[dn-1] & GMP_LIMB_HIGHBIT); 
With 
      mp_limb_t dpVAL;
      dpVAL = dp[dn-1];
      assert ((dpVAL & GMP_LIMB_HIGHBIT) != 0);
Later in the build I encountered the following C++ issues:
libtool: compile:  cxx -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMPXX -I.. -D__US
E_STD_IOSTREAM -nocompress -c limits.cc  -DPIC -o .libs/limits.o
cxx: Error: ../gmpxx.h, line 1516: no instance of function template
          "std::swap" matches the argument list
            argument types are: (__mpz_struct, __mpz_struct)
  void swap(__gmp_expr& z) __GMPXX_NOEXCEPT { std::swap(*mp, *z.mp); }
----------------------------------------------^
cxx: Error: ../gmpxx.h, line 1710: no instance of function template
          "std::swap" matches the argument list
            argument types are: (__mpq_struct, __mpq_struct)
  void swap(__gmp_expr& q) __GMPXX_NOEXCEPT { std::swap(*mp, *q.mp); }
----------------------------------------------^
cxx: Error: ../gmpxx.h, line 1931: no instance of function template
          "std::swap" matches the argument list
            argument types are: (__mpf_struct, __mpf_struct)
  void swap(__gmp_expr& f) __GMPXX_NOEXCEPT { std::swap(*mp, *f.mp); }
----------------------------------------------^
cxx: Info: 3 errors detected in the compilation of "limits.cc".
I am not that familiar with C++, so that pursuing these will take some 
additional time.
By changing the configure options to 
./configure "ac_cv_prog_cc_c99=" \
            --disable-cxx
The GMP-5.1.1 build completes successfully and the 'make check' passes all
tests with only the additional message
...
PASS: t-fat
Warning, IEEE overflow tests skipped due to SIGFPE (exp=1024)
PASS: t-get_d
...
which has appeared in previous gmp-5.0.x 'make check's and which has not
seemed to indicate any usage problems. There are a number of IEEE 
floating-point support switches for the Tru64unix version 5.1B C compiler
which may be relevant to the above warning; however, I haven't had time yet
to experiment with them.
For my work in the Tru64unix version 5.1B environemnt, I can proceed using 
the GMP-5.1.1 that has been successfully built so far; but, I will continue
to investigate the remaining issues.
Regards,
Bill
>Return-path: <tg at gmplib.org>
>Date: Tue, 12 Feb 2013 20:04:58 +0100
>From: Torbjorn Granlund <tg at gmplib.org>
>Subject: Re: make failure trying to build gmp-5.1.0a on Tru64unix v5.1b system
>Sender: tg at gmplib.org
>To: Bill.Glessner at cwu.edu
>
>Bill!
>
>Please follow up to the list, so that the community can follow the
>effort.
>-- 
>Torbjörn
>>
>>Torbjorn,
>>
>>Thank you for your resonse. 
>>I understand about OSF1 access/availablilty issues. I would certainly
>>be willing to assist in any way that I am able to figure out the cause
>>of the make problems that I am encountering. We use gmp in a number of
>>mathematics and physics student/faculty research projects that have been
>>developed in the AlphaServer/OSF1 environment so maintaining the availability
>>of gmp is important. As a bit of background, I have been able to build all
>>of the gmp 5.0.x releases in the OSF1 environment using the same configuration
>>options and compilers that were used for gmp 5.1.0 and 5.1.0a. 
>>I notice that gmp 5.1.1 has been released. I will download it and have a try
>>at building it so I can focus my efforts on getting that version to build.
>>I will let you know how gmp 5.1.1 build works out.
>>Thanks again for your assistance.
>>
>>Bill
    
    
More information about the gmp-bugs
mailing list