[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: