Page 1 of 1

compilation GMP

Unread postPosted: 27 Oct 2019, 08:44
by parisse
Je n'arrive pas a cross-compiler GMP 6.1.2 (ca pourrait servir a remplacer libtommath et permettre d'avoir MPFR et MPFI pour faire des flottants multi-precisions).
Voici ce que j'ai fait
Code: Select all
export CC=/usr/bin/arm-none-eabi-gcc
export CC_FOR_BUILD=/usr/bin/gcc
export CFLAGS='-mthumb -march=armv7e-m -mfloat-abi=hard  -mcpu=cortex-m7 -mfpu=fpv5-sp-d16  -fdata-sections -ffunction-sections -fno-strict-aliasing -nostdlib -L/usr/lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv5/hard/ -lgcc'

./configure --host=arm-none-eabi


Mais j'obtiens l'erreur suivante (fichier config.log)
Code: Select all
conftest.c:(.text.gcc303+0xe): undefined reference to `__aeabi_d2uiz'
collect2: error: ld returned 1 exit status

Pourtant ce symbole est defini dans la librairie libgcc.a de /usr/lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv5/hard/, comme on peut le voir en faisant dans un repertoire temporaire
Code: Select all
ar x /usr/lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv5/hard/libgcc.a
arm-none-eabi-objdump -D _arm_fixunsdfsi.o  | less


Meme resultat en remplacant fpv5 par fpv4-sp.
Et pourtant
Code: Select all
/usr/bin/arm-none-eabi-gcc -mthumb -march=armv7e-m -mfloat-abi=hard  -mcpu=cortex-m7 -mfpu=fpv5-sp-d16  -fdata-sections -ffunction-sections -fno-strict-aliasing -nostdlib  --print-search-dirs
install: /usr/lib/gcc/arm-none-eabi/7.3.1/
programs: =/usr/lib/gcc/arm-none-eabi/7.3.1/:/usr/lib/gcc/arm-none-eabi/7.3.1/:/usr/lib/gcc/arm-none-eabi/:/usr/lib/gcc/arm-none-eabi/7.3.1/:/usr/lib/gcc/arm-none-eabi/:/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/bin/arm-none-eabi/7.3.1/:/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/bin/
libraries: =/usr/lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/:/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/lib/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/:/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/:/usr/lib/gcc/arm-none-eabi/7.3.1/:/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/lib/arm-none-eabi/7.3.1/:/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/lib/

Quelqu'un aurait une explication?

Re: compilation GMP

Unread postPosted: 27 Oct 2019, 09:50
by parisse
bon, en fait c'est le configure de gmp qui pose probleme, ou bien je ne sais pas m;en servir. En ajoutant des -lc -lgcc -lnosys aux bons endroits ca configure. Mais il y a plein de fichiers .h generes pour du 64 bits au lieu de 32 qu'il faut recopier a la main d'une install 32 bits de gmp.

Re: compilation GMP

Unread postPosted: 27 Oct 2019, 11:45
by parisse
Voila, j'ai reussi a compiler GMP+MPFR+MPFI pour Numworks, le source et les libs sont la:
https://www-fourier.univ-grenoble-alpes.fr/~parisse/numworks/
On va pouvoir faire du calcul avec 30 decimales (ou plus) ou de l'arithmetique d'intervalles certifiee (i.e. des calculs en approche avec un resultat de calcul compris entre 2 bornes d'un intervalle certifie).

La meilleure configuration que j'ai trouvee pour lancer ./configure est la suivante
Code: Select all
export CC=/usr/bin/arm-none-eabi-gcc
export CC_FOR_BUILD=/usr/bin/gcc
export LIBS='-lc -lgcc -lnosys'

export CFLAGS='-Os -mthumb -march=armv7e-m -mfloat-abi=hard  -mcpu=cortex-m7 -mfpu=fpv5-sp-d16  -fdata-sections -ffunction-sections -fno-strict-aliasing -nostdlib -L/usr/lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/ -I/home/parisse/numworks/include'
./configure --host=arm-none-eabi

Ca pourra peut-etre servir a quelqu'un qui veut compiler d'autres sources utilisant autoconf.