GNU MP, lub inaczej GMP jest darmową biblioteką do wykowania arytmetyki precyzyjnej operującej na oznaczonych liczbach całkowitych, wymiernych i zmiennoprzecinkowych. Nie ma praktycznego limitu precyzji w zastosowaniu GMP, poza tym narzuconym przez dostępną pamięć maszyny na której jest uruchomiona. GNU MP posiada bogaty zestaw funkcji, które posiadają usystematyzowany interfejs.
Przy kompilacji GMP należy zejść z opcjami optymalizacji do -x01, przy wyższym poziomie optymalizacji testy mogą wypaść niepomyślnie. Oto zapis sesji konfiguracji i kompilacji (skrypt w załączeniu).:
soft@wega:~/gmp% ./drf_gmp-5.0.2_conf
cc: Sun C 5.10 SunOS_sparc 2009/06/03
usage: cc [ options] files. Use 'cc -flags' for details
MANPATH=/usr/local/share/man:/usr/local/man:/usr/share/man
PATH=/usr/local/bin:/usr/bin:/opt/SUNWspro/bin:/usr/ccs/bin
CFLAGS=-xO1 -native
CPPFLAGS=-I/usr/local/include
CXXFLAGS=-xO1 -native
LDFLAGS=-L/usr/local/lib -R/usr/local/lib
=============================================
gmake clean [y|n] ?
n
=============================================
configure [y|n] ?
y
checking build system type... ultrasparc3-sun-solaris2.10
checking host system type... ultrasparc3-sun-solaris2.10
...
config.status: executing libtool commands
=============================================
gmake [y|n] ?
y
cc -xc99=all `test -f 'gen-fac_ui.c' || echo './'`gen-fac_ui.c -o gen-fac_ui
./gen-fac_ui 32 0 >mpz/fac_ui.h || (rm -f mpz/fac_ui.h; exit 1)
...
libtool: link: ranlib .libs/libgmp.a
libtool: link: rm -fr .libs/libgmp.lax
libtool: link: ( cd ".libs" && rm -f "libgmp.la" && ln -s "../libgmp.la" "libgmp.la" )
gmake[2]: Leaving directory `/home/soft/gmp/gmp-5.0.2'
gmake[1]: Leaving directory `/home/soft/gmp/gmp-5.0.2'
Compilation successful
=============================================
Testowanie, ważne jest aby przeszło bez błędów do końca:
gmake check [y|n] ?
y
gmake check-recursive
===================
All 58 tests passed
===================
...
===================
All 11 tests passed
===================
...
===================
All 27 tests passed
===================
...
==================
All 7 tests passed
==================
...
==================
All 3 tests passed
==================
...
==================
All 0 tests passed
==================
...
==================
All 0 tests passed
==================
...
gmake install po przełączeniu na roota.