Le paquet GMP contient des bibliothèques de maths. Elles contiennent des fonctions utiles pour l'arithmétique à précision arbitraire.
Si vous construisez pour un x86 32 bits, mais si vous avez un
processeur capable d'exécuter du code 64 bits et si vous avez spécifié CFLAGS dans l'environnement, le script configure
va essayer de configurer pour du 64 bits et va échouer. Évitez
cela en invoquant la commande configure ci-dessous avec
ABI=32 ./configure ...
The default settings of GMP produce libraries optimized for the
host processor. If libraries suitable for processors less capable
than the host's CPU are desired, generic libraries can be created
by appending the --disable-assembly
option to the configure command.
Tout d'abord, ajustez le paquet pour le rendre compatible avec gcc-15 et supérieur :
sed -i '/long long t1;/,+1s/()/(...)/' configure
Préparez la compilation de GMP :
./configure --prefix=/usr \
--enable-cxx \
--disable-static \
--docdir=/usr/share/doc/gmp-6.3.0
Voici la signification des nouvelles options de configure :
--enable-cxx
Ce paramètre active la prise en charge de C++
--docdir=/usr/share/doc/gmp-6.3.0
Cette variable indique le bon emplacement de la documentation.
Compilez le paquet et générez la documentation HTML :
make make html
La suite de tests de GMP dans cette section est considérée comme critique. Ne la sautez en aucun cas.
Testez les résultats :
make check
Le code de gmp est hautement optimisé pour le processeur sur
lequel il est construit. Parfois, le code chargé de détecter le
processeur identifie mal les capacités du système et produira des
erreurs dans les tests ou d’autres applications utilisant les
bibliothèques gmp avec le message Illegal instruction. Dans ce cas, gmp
devrait être reconfiguré avec l’option --host=none-linux-gnu et reconstruit.
Assurez-vous qu'au moins 199 tests de la suite de tests réussissent tous. Vérifiez les résultats en exécutant la commande suivante :
cat $(find -name '*.log') | grep -c ^PASS
Installez le paquet et sa documentation :
make install make install-html