Problème de compilation avec gcc 9.2 (debian/testing)
Bonjour à tous,
Depuis la mise à jour de mon poste de travail (debian/testing), j'ai un
problème de compilation assez surprenant que je n'arrive à résoudre.
Sources :
http://www.rpl2.fr/download/rpl-4.1.31-daily-20191027.tar.bz2
Procédure de compilation :
./autogen.sh
cd ..
mkdir build
cd build
../rpl/configure --enable-native --enable-rplcas
Et attendre l'erreur :
g++ -g -O2 -mtune=native -march=native -O2 -malign-double -Wall
-funsigned-char -fpermissive -fno-strict-aliasing
-DGIAC_GENERIC_CONSTANTS -pthread -o icas icas.o
/export/home/bertrand/gopher/rpl2/build-amd64/rplcas/giac-1.5.0/src/.libs/libgiac.a
/import/home/bertrand/gopher/rpl2/build-amd64/rplcas/lib/libpari.a
/import/home/bertrand/gopher/rpl2/build-amd64/rplcas/lib/ntl.a
/import/home/bertrand/gopher/rpl2/build-amd64/rplcas/lib/libcocoa.a
/import/home/bertrand/gopher/rpl2/build-amd64/tools/gsl-2.6/.libs/libgsl.a
/import/home/bertrand/gopher/rpl2/build-amd64/rplcas/lib/libgmp.a
/import/home/bertrand/gopher/rpl2/build-amd64/rplcas/lib/libmpfr.a
/import/home/bertrand/gopher/rpl2/build-amd64/rplcas/lib/libmpfi.a
./.libs/libxcas.a
/export/home/bertrand/gopher/rpl2/build-amd64/rplcas/giac-1.5.0/src/.libs/libgiac.a
-lrt -lpthread /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so -lsamplerate
-llapack -lblas -lgfortran -ldl -lpng16 -lm -pthread
/usr/bin/ld:
/import/home/bertrand/gopher/rpl2/build-amd64/rplcas/lib/libmpfr.a(get_z_exp.o):
référence au symbole non défini « __gmpz_realloc2 »
/usr/bin/ld : /usr/lib/x86_64-linux-gnu/libgmp.so.10 : erreur lors de
l'ajout de symboles : DSO manquant dans la ligne de commande
collect2: error: ld returned 1 exit status
Pour un certain nombre de raisons, les bibliothèques sont compilées
statiquement (ça permet de ne pas segfaulter lorsque l'on charge des
modules externes).
L'erreur varie en fonction de l'ordre des bibliothèques. Avec gcc 8, ça
compile sans problème.
mpfr est configuré comme suit :
../../../rpl/rplcas/mpfr-4.0.2/configure
--with-gmp=/import/home/bertrand/gopher/rpl2/build-amd64/rplcas
--disable-shared --enable-static
--prefix=/import/home/bertrand/gopher/rpl2/build-amd64/rplcas
et le script configure trouve bien les en-têtes et la version statique
de libgmp.
Naturellement, le symbole non trouvé est bien présent dans la
bibliothèque libgmp.a :
rayleigh:[~/gopher/rpl2/build-amd64/rplcas/lib] > nm -a libgmp.a | grep
__gmpz_realloc2
0000000000000000 T __gmpz_realloc2
J'avoue que je ne sais plus où chercher. Toute idée est la bienvenue.
Bien cordialement,
JKB
Reply to: