[PPL-devel] why ppl configure fails

Dennis Clarke dclarke at blastwave.org
Mon Mar 28 06:16:31 CEST 2011


Just a guess but I'll bet your configure test code is looking for an old
var that simply is not defined anymore.

Thus :

[titan] $ cat -n simple_test.cpp
     1  #include <gmpxx.h>
     2  #include <climits>
     3  #include <string>
     4  #include <sstream>
     5  #include <iostream>
     6
     7  #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 &&
__GNU_MP_VERSION_MINOR < 1) || (__GNU_MP_VERSION == 4 &&
__GNU_MP_VERSION_MINOR == 1 && __GNU_MP_VERSION_PATCHLEVEL < 3)
     8  #GMP version 4.1.3 or higher is required
     9  #endif
    10
    11  int
    12  main() {
    13     std::string header_version;
    14     {
    15       std::ostringstream s(header_version);
    16       s << __GNU_MP_VERSION << "." << __GNU_MP_VERSION_MINOR; 17   
   // Starting from GMP version 4.3.0, the gmp_version variable 18    
  // always contains three parts.  In previous versions the 19      
// patchlevel was omitted if it was 0.
    20       if (__GNU_MP_VERSION_PATCHLEVEL != 0
    21           || __GNU_MP_VERSION > 4
    22           || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >=
3))
    23         s << "." << __GNU_MP_VERSION_PATCHLEVEL;
    24       header_version = s.str();
    25     }
    26
    27     std::string library_version = gmp_version;
    28
    29     if (header_version != library_version) {
    30       std::cerr
    31         << "GMP header (gmp.h) and library (ligmp.*) version
mismatch:\n"
    32         << "header gives " << header_version << ";\n"
    33         << "library gives " << library_version << "." << std::endl;
34       return 1;
    35     }
    36
    37     if (sizeof(mp_limb_t)*CHAR_BIT != GMP_LIMB_BITS
    38         || GMP_LIMB_BITS != mp_bits_per_limb) {
    39       std::cerr
    40         << "GMP header (gmp.h) and library (ligmp.*) bits-per-limb
mismatch:\n"
    41         << "header gives " << __GMP_BITS_PER_MP_LIMB << ";\n" 42   
     << "library gives " << mp_bits_per_limb << ".\n"
    43         << "This probably means you are on a bi-arch system and\n"
44         << "you are compiling with the wrong header or linking
with\n"
    45         << "the wrong library." << std::endl;
    46       return 1;
    47     }
    48
    49     mpz_class n("3141592653589793238462643383279502884");
    50     return 0;
    51  }
    52
[titan] $
[titan] $
[titan] $ $CXX $CPPFLAGS -I/opt/bw/include -v -c -o simple_test.o
simple_test.cpp
Using built-in specs.
COLLECT_GCC=/opt/csw/gcc4/bin/g++
COLLECT_LTO_WRAPPER=/opt/csw/gcc4/libexec/gcc/i386-pc-solaris2.8/4.5.1/lto-wrapper
Target: i386-pc-solaris2.8
Configured with: ../gcc-4.5.1/configure --host=i386-pc-solaris2.8
--build=i386-pc-solaris2.8 --with-gnu-as --with-as=/opt/csw/bin/gas
--without-gnu-ld --with-ld=/usr/ccs/bin/ld --with-cpu=i386
--enable-stage1-languages=c --enable-nls --enable-threads=posix
--prefix=/opt/csw/gcc4 --with-local-prefix=/opt/csw --enable-shared
--enable-multilib --with-pkgversion='Blastwave.org Inc. Mon Aug  9
07:10:45 GMT 2010' --with-bugurl=http://www.blastwave.org/support
--enable-languages=c,c++,objc,fortran,ada --enable-bootstrap
Thread model: posix
gcc version 4.5.1 (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010) 
COLLECT_GCC_OPTIONS='-march=pentiumpro' '-malign-double'
'-mpreferred-stack-boundary=8' '-m32' '-O3' '-fexceptions' '-D_TS_ERRNO'
'-Dsun=1' '-Dunix=1' '-Di386=1' '-D__sun' '-D__unix' '-D__SunOS_5_8'
'-D__i386' '-D__SVR4' '-DSOLARIS2=8' '-D_POSIX_PTHREAD_SEMANTICS'
'-D_LARGEFILE64_SOURCE' '-I/opt/bw/include' '-v' '-c' '-o' 'simple_test.o'
'-shared-libgcc'
 /opt/csw/gcc4/libexec/gcc/i386-pc-solaris2.8/4.5.1/cc1plus -quiet -v
-I/opt/bw/include -D_TS_ERRNO -Dsun=1 -Dunix=1 -Di386=1 -D__sun -D__unix
-D__SunOS_5_8 -D__i386 -D__SVR4 -DSOLARIS2=8 -D_POSIX_PTHREAD_SEMANTICS
-D_LARGEFILE64_SOURCE simple_test.cpp -quiet -dumpbase simple_test.cpp
-march=pentiumpro -malign-double -mpreferred-stack-boundary=8 -m32
-auxbase-strip simple_test.o -O3 -version -fexceptions -o
/var/tmp//cca6qaec.s
GNU C++ (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010) version 4.5.1
(i386-pc-solaris2.8)
        compiled by GNU C version 4.5.1, GMP version 4.3.1, MPFR version
2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=82 --param ggc-min-heapsize=98255
ignoring nonexistent directory
"/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../i386-pc-solaris2.8/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/bw/include
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../include/c++/4.5.1
/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../include/c++/4.5.1/i386-pc-solaris2.8
/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../include/c++/4.5.1/backward
/opt/csw/include
 /opt/csw/gcc4/include
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/include
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/include-fixed
 /usr/include
End of search list.
GNU C++ (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010) version 4.5.1
(i386-pc-solaris2.8)
        compiled by GNU C version 4.5.1, GMP version 4.3.1, MPFR version
2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=82 --param ggc-min-heapsize=98255
Compiler executable checksum: 9bd5ae1469b8af3369ce6260a5d1ccdd
simple_test.cpp: In function 'int main()':
simple_test.cpp:41:30: error: '__GMP_BITS_PER_MP_LIMB' was not declared in
this scope
[titan] $
[titan] $ grep "GMP_BITS_PER_MP_LIMB" /opt/bw/include/gmpxx.h
[titan] $ grep "GMP_BITS_PER_MP_LIMB" /opt/bw/include/gmp.h
[titan] $

however, if we "revert" back down to gmp 4.3.2 we see this :

[titan] $ grep "GMP_BITS_PER_MP_LIMB" /opt/bw/include/gmp.h
#define __GMP_BITS_PER_MP_LIMB             32

[titan] $ $CXX $CPPFLAGS -I/opt/bw/include -v -c -o simple_test.o
simple_test.cpp
Using built-in specs.
COLLECT_GCC=/opt/csw/gcc4/bin/g++
COLLECT_LTO_WRAPPER=/opt/csw/gcc4/libexec/gcc/i386-pc-solaris2.8/4.5.1/lto-wrapper
Target: i386-pc-solaris2.8
Configured with: ../gcc-4.5.1/configure --host=i386-pc-solaris2.8
--build=i386-pc-solaris2.8 --with-gnu-as --with-as=/opt/csw/bin/gas
--without-gnu-ld --with-ld=/usr/ccs/bin/ld --with-cpu=i386
--enable-stage1-languages=c --enable-nls --enable-threads=posix
--prefix=/opt/csw/gcc4 --with-local-prefix=/opt/csw --enable-shared
--enable-multilib --with-pkgversion='Blastwave.org Inc. Mon Aug  9
07:10:45 GMT 2010' --with-bugurl=http://www.blastwave.org/support
--enable-languages=c,c++,objc,fortran,ada --enable-bootstrap
Thread model: posix
gcc version 4.5.1 (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010)
COLLECT_GCC_OPTIONS='-march=pentiumpro' '-malign-double'
'-mpreferred-stack-boundary=8' '-m32' '-O3' '-fexceptions' '-D_TS_ERRNO'
'-Dsun=1' '-Dunix=1' '-Di386=1' '-D__sun' '-D__unix' '-D__SunOS_5_8'
'-D__i386' '-D__SVR4' '-DSOLARIS2=8' '-D_POSIX_PTHREAD_SEMANTICS'
'-D_LARGEFILE64_SOURCE' '-I/opt/bw/include' '-v' '-c' '-o' 'simple_test.o'
'-shared-libgcc'
 /opt/csw/gcc4/libexec/gcc/i386-pc-solaris2.8/4.5.1/cc1plus -quiet -v
-I/opt/bw/include -D_TS_ERRNO -Dsun=1 -Dunix=1 -Di386=1 -D__sun -D__unix
-D__SunOS_5_8 -D__i386 -D__SVR4 -DSOLARIS2=8 -D_POSIX_PTHREAD_SEMANTICS
-D_LARGEFILE64_SOURCE simple_test.cpp -quiet -dumpbase simple_test.cpp
-march=pentiumpro -malign-double -mpreferred-stack-boundary=8 -m32
-auxbase-strip simple_test.o -O3 -version -fexceptions -o
/var/tmp//ccNDRaDm.s
GNU C++ (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010) version 4.5.1
(i386-pc-solaris2.8)
        compiled by GNU C version 4.5.1, GMP version 4.3.1, MPFR version
2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=82 --param ggc-min-heapsize=98255
ignoring nonexistent directory
"/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../i386-pc-solaris2.8/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/bw/include
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../include/c++/4.5.1
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../include/c++/4.5.1/i386-pc-solaris2.8
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../../include/c++/4.5.1/backward
 /opt/csw/include
 /opt/csw/gcc4/include
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/include
 /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/include-fixed
 /usr/include
End of search list.
GNU C++ (Blastwave.org Inc. Mon Aug  9 07:10:45 GMT 2010) version 4.5.1
(i386-pc-solaris2.8)
        compiled by GNU C version 4.5.1, GMP version 4.3.1, MPFR version
2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=82 --param ggc-min-heapsize=98255
Compiler executable checksum: 9bd5ae1469b8af3369ce6260a5d1ccdd
COLLECT_GCC_OPTIONS='-march=pentiumpro' '-malign-double'
'-mpreferred-stack-boundary=8' '-m32' '-O3' '-fexceptions' '-D_TS_ERRNO'
'-Dsun=1' '-Dunix=1' '-Di386=1' '-D__sun' '-D__unix' '-D__SunOS_5_8'
'-D__i386' '-D__SVR4' '-DSOLARIS2=8' '-D_POSIX_PTHREAD_SEMANTICS'
'-D_LARGEFILE64_SOURCE' '-I/opt/bw/include' '-v' '-c' '-o' 'simple_test.o'
'-shared-libgcc'
 /opt/csw/bin/gas -v -I/opt/bw/include -V -Qy -s -o simple_test.o
/var/tmp//ccNDRaDm.s
GNU assembler version 2.20.1 (i386-pc-solaris2.8) using BFD version (GNU
Binutils) 2.20.1.20100303
COMPILER_PATH=/opt/csw/gcc4/libexec/gcc/i386-pc-solaris2.8/4.5.1/:/opt/csw/gcc4/libexec/gcc/i386-pc-solaris2.8/4.5.1/:/opt/csw/gcc4/libexec/gcc/i386-pc-solaris2.8/:/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/:/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/:/usr/ccs/bin/
LIBRARY_PATH=/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/:/usr/ccs/lib/:/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.5.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-march=pentiumpro' '-malign-double'
'-mpreferred-stack-boundary=8' '-m32' '-O3' '-fexceptions' '-D_TS_ERRNO'
'-Dsun=1' '-Dunix=1' '-Di386=1' '-D__sun' '-D__unix' '-D__SunOS_5_8'
'-D__i386' '-D__SVR4' '-DSOLARIS2=8' '-D_POSIX_PTHREAD_SEMANTICS'
'-D_LARGEFILE64_SOURCE' '-I/opt/bw/include' '-v' '-c' '-o' 'simple_test.o'
'-shared-libgcc'
[titan] $


works as expected.

I *strongly* suspect your tests in the configure script are broken for
newer gmp revs like 5.0.1


-- 
Dennis Clarke
dclarke at opensolaris.ca  <- Email related to the open source Solaris
dclarke at blastwave.org   <- Email related to open source for Solaris







More information about the PPL-devel mailing list