GMP pakken inneholder matematikkbiblioteker. Disse har nyttige funksjoner for vilkårlig presisjonsaritmetikk.
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:
CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \
CXXFLAGS="$CFLAGS" \
ABI="32" \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
./configure --prefix=/usr \
--host=i686-pc-linux-gnu \
--disable-static \
--enable-cxx \
--libdir=/usr/lib32 \
--includedir=/usr/include/m32/gmp
Betydningen av de nye konfigurasjonsalternativene:
--includedir=/usr/include/m32/gmp
Deklarasjonene for GMP varierer mellom arkitekturer. Siden håndtering av GMP er en delikat sak, må overskriftene skilles per arkitektur. På en per-pakke basis vil deklarasjonsbanen for GMP overstyre, som i tilfellet med Nettle i GLFS.
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 199 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/lib32/* /usr/lib32 cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/ rm -rf DESTDIR