[PPL-devel] install bug

Roberto Bagnara bagnara at cs.unipr.it
Mon Jun 30 15:42:29 CEST 2003


Mark Poolman wrote:
>   I'm having problems installing ppl 0.5 on a redhat 9 system. The
> configure script fails to detect the gmp library:
> 
> ./configure
> .
> .
> .
>   
> checking for the GMP library... no
> configure: error: Cannot find GMP version 4.1.2 or higher.
> GMP is the GNU Multi-Precision library:
> see http://www.swox.com/gmp/ for more information.
> Do not forget to enable the C++ interface: add --enable-cxx
> to the configuration options.

Dear Mark,

while you have a version of GMP installed on your system, this version
has been built with the C++ interface enabled.  Unfortunately,
distributors still tend to ship RPM packages for GMP with this problem,
regularly dismaying C++ programmers.  You will thus have to build GMP
by yourself, using a configure command like

   /wherever/gmp-4.1.2/configure --prefix=/usr/local --enable-cxx

(notice the `--enable-cxx', as recommended, in the error message above).

> However, gmp  definitely is installed, and rebuilding a fresh version
> doesn't help:
> $rpm -qil gmp
> Name        : gmp                          Relocations: (not
> relocateable)
> Version     : 4.1.2                             Vendor: (none)
> Release     : 6.1                           Build Date: Mon 30 Jun 2003
> 14:04:48 BST
> Install Date: Mon 30 Jun 2003 14:05:22 BST      Build Host: nanook
> Group       : System Environment/Libraries   Source RPM:
> gmp-4.1.2-6.1.src.rpm
> Size        : 289551                           License: LGPL
> Signature   : (none)
> URL         : http://www.swox.com/gmp/
> Summary     : A GNU arbitrary precision library.
> Description :
> The gmp package contains GNU MP, a library for arbitrary precision
> arithmetic which operates on signed integers, rational numbers and
> floating point numbers. GNU MP is designed for speed, for both small
> and very large operands. GNU MP is fast because it uses fullwords as
> the basic arithmetic type, it uses fast algorithms, it carefully
> optimizes assembly code for many CPUs' most common inner loops, and
> generally emphasizes speed over simplicity/elegance in its
> operations.
> /usr/lib/libgmp.so.3
> /usr/lib/libgmp.so.3.3.2
> /usr/lib/libmp.so.3
> /usr/lib/libmp.so.3.1.6
> /usr/share/doc/gmp-4.1.2
> /usr/share/doc/gmp-4.1.2/COPYING
> /usr/share/doc/gmp-4.1.2/NEWS
> /usr/share/doc/gmp-4.1.2/README

Exactly: the C++ interface is not there.  You are missing the libgmpxx.* files.
For instance, in my system I have

/usr/local/lib/libgmp.a
/usr/local/lib/libgmp.la
/usr/local/lib/libgmp.so
/usr/local/lib/libgmp.so.3
/usr/local/lib/libgmp.so.3.3.2
/usr/local/lib/libgmpxx.a
/usr/local/lib/libgmpxx.la
/usr/local/lib/libgmpxx.so
/usr/local/lib/libgmpxx.so.3
/usr/local/lib/libgmpxx.so.3.0.4

(do not worry about the *.la files).

> The bizarre thing about this is that the .so vewrsion numbers do not
> correspond to the rpm version numbers, and I guess that this may be the
> cause of the problem and is more to do with gmp rather than  ppl, but
> any advice offered will be gratefully recieved.

The .so version numbers have little to do with the RPM version numbers
(which coincide with GMP's version numbers).  gmp-4.1.2 means that
you have version 4.1.2 of GMP.  libgmp.so.3.3.2 means that _that_ shared
object has code 3:3:2 in the libtool versioning system (see
http://www.gnu.org/manual/libtool-1.4.2/html_chapter/libtool_6.html
if you are interested).
All the best

      Roberto

-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it




More information about the PPL-devel mailing list