GMP pakken inneholder matematikkbiblioteker. Disse har nyttige funksjoner for vilkårlig presisjonsaritmetikk.
Hvis du bygger for 32-bit x86, men du har en CPU som er i stand
til å kjøre 64-bits kode og du har spesifisert CFLAGS
i miljøet vil konfigureringsskriptet
forsøke å konfigurere for 64-biter og mislykkes. Unngå dette ved
å påkalle configure kommandoen nedenfor med
ABI=32
./configure ...
Standardinnstillingene til GMP produserer biblioteker
optimalisert for vertsprosessoren. Hvis det er ønskelig med
biblioteker egnet for prosessorer mindre kapable enn vertens CPU,
kan generiske biblioteker bli opprettet ved å legge til
--host=none-linux-gnu
alternativet
til configure
kommandoen.
Først må du justere kompatibiliteten for gcc-15 og nyere:
sed -i '/long long t1;/,+1s/()/(...)/' configure
Forbered GMP for kompilering:
./configure --prefix=/usr \ --enable-cxx \ --disable-static \ --docdir=/usr/share/doc/gmp-6.3.0
Betydningen av de nye konfigureringsalternativene:
--enable-cxx
Denne parameteren aktiverer C++ støtte
--docdir=/usr/share/doc/gmp-6.3.0
Denne variabelen spesifiserer riktig sted for dokumentasjon.
Kompiler pakken og generer HTML dokumentasjonen:
make make html
Testpakken for GMP i denne delen anses som kritisk. Ikke hopp over det under noen omstendigheter.
Test resultatene:
make check 2>&1 | tee gmp-check-log
Koden i gmp er svært optimalisert for prosessoren hvor den er
bygget. Noen ganger vil koden som oppdager prosessoren
feilidentifisere systemets evner og det vil være feil i testene
eller andre applikasjoner som bruker gmp bibliotekene med
meldingen Illegal
instruction
. I dette tilfellet bør gmp rekonfigureres med
alternativet --host=none-linux-gnu
og
gjenoppbygges.
Sørg for at minst 199 tester i testpakken består. Sjekk resultatene ved å gi følgende kommando:
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
Installer pakken og dens dokumentasjon:
make install make install-html
Rens forrige bygg:
make distclean
Generiske biblioteker kan opprettes ved å kjøre følgende:
cp -v configfsf.guess config.guess cp -v configfsf.sub config.sub
Klargjør GMP for kompilering:
ABI="x32" \ CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \ CXXFLAGS="$CFLAGS" \ PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \ ./configure \ --host=x86_64-pc-linux-gnux32 \ --prefix=/usr \ --disable-static \ --enable-cxx \ --libdir=/usr/libx32 \ --includedir=/usr/include/mx32/gmp
Kompiler pakken:
sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile make
Testpakken for GMP i denne delen anses som kritisk. Ikke hopp over den under noen omstendigheter.
Test resultatene:
make check 2>&1 | tee gmp-check-log
Sørg for at alle 197 testene i testpakken bestod. Sjekk resultatene ved å kjøre følgende kommando:
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
Installer pakken:
make DESTDIR=$PWD/DESTDIR install cp -Rv DESTDIR/usr/libx32/* /usr/libx32 cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/ rm -rf DESTDIR