Compilation de buildroot dans un debootstrap 32 bits sur une machine 64 bits

77 views
Skip to first unread message

yargil

unread,
Sep 2, 2012, 1:13:19 PM9/2/12
to concours-li...@googlegroups.com
Salut � tous.

Si lorsque vous compilez buildroot dans le debootstrap en i386 sur une
machine x86_64 et que vous avez l'erreur suivante lors de la
configuration de gmp :

checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
using ABI="64"
CC="/usr/bin/gcc -std=gnu99"
CFLAGS="-O2 -I/test-fj/buildroot-2012.08/output/host/include
-I/test-fj/buildroot-2012.08/output/host/usr/include"
CPPFLAGS=""
MPN_PATH=" x86_64/k8 x86_64 generic"
checking for function prototypes... yes
checking for ANSI C header files... yes
...
checking how to define a 32-bit word... .long
checking if .align assembly directive is logarithmic... no
checking if the .align directive accepts an 0x90 fill in .text... yes
checking size of void *... 4
checking size of unsigned short... 2
checking size of unsigned... 4
checking size of unsigned long... 4
checking size of mp_limb_t... 4
configure: error: Oops, mp_limb_t is 32 bits, but the assembler code
in this configuration expects 64 bits.
You appear to have set $CFLAGS, perhaps you also need to tell GMP the
intended ABI, see "ABI and ISA" in the manual.

C'est que gmp veut utiliser une ABI en 64 bits (ligne : using ABI="64")
alors que l'on veut une ABI 32 bits. C'est un probl�me de d�tection de
l'ABI par la proc�dure de configuration de gmp.Pour r�soudre ce probl�me
il suffit de forcer gmp � utiliser une ABI de 32 bits et c'est ce que
fait le patch ci-joint (patch pour la version 2012-08 mais il est facile
� adapter pour une autre version).

Si vous avez le m�me probl�me mais sans buildroot alors voici comment
forcer l'ABI lors de la configuration de gmp :
$ ABI=32 ./configure --prefix= ...

Comme j'ai perdu beaucoup de temps � comprendre et � trouver une
solution � ce probl�me, je vous fais profiter de la solution.

Et bonne livraison aux retardataire qui vont pouvoir profiter du
plantage du serveur FTP.

--
Yargil
http://yargil.free.fr

buildroot-force_ABI_32.patch

AleaJactaEst

unread,
Sep 2, 2012, 6:16:26 PM9/2/12
to concours-li...@googlegroups.com
Bonsoir,

Excellent, la version Buildroot 2012-08 est sortie.

Bon, pour ceux qui ne souhaite pas s’embêter avec le problème 64bit, une autre solution est de faire la compilation sur un serveur virtuel (via VIRT-MANAGER / KVM par exemple).

L'avantage est que l'on peut installer une debian squeeze et tester sur un environnement identique au pre-requis.
Défaut : le serveur hôte peut perturber le serveur virtuel (et donc QEMU) -> des ralentissement à prévoir.

@+
AleaJactaEst

Reply all
Reply to author
Forward
0 new messages