les autotools c'est quand même la grosse merde pour faire de la cross compilation : entre les test qui cherche a exécuter des programmes, d'autres test qui hardcode des résultats dans le cas de cross compilation, encore d'autre qui cherche des headers/libs dans /lib ou /usr il faut souvent les patcher.
Je ne parle même pas de libtool qui fait les 3/4 du temps pas ce que tu veux.
Et le plus triste c'est qu'il y a souvent un moyen plus ou moins portable de faire le test.
Par exemple, quand les autotools veulent tester si ta machine cible et big ou little endian, tu passes ac_cv_c_bigendian=yes quand tu es big endian, et ac_cv_c_bigendian=no quand tu es little endian, et le tour est joué.
$ touch endian.c
$ cc -o endian.o -c endian.c
$ objdump -a /tmp/endian.o
[^] # Re: ./configure
Posté par M . En réponse à la dépêche Buildroot 2010.02 est sorti !. Évalué à 3.
Je ne parle même pas de libtool qui fait les 3/4 du temps pas ce que tu veux.
Et le plus triste c'est qu'il y a souvent un moyen plus ou moins portable de faire le test.
Par exemple, quand les autotools veulent tester si ta machine cible et big ou little endian, tu passes ac_cv_c_bigendian=yes quand tu es big endian, et ac_cv_c_bigendian=no quand tu es little endian, et le tour est joué.
$ touch endian.c
$ cc -o endian.o -c endian.c
$ objdump -a /tmp/endian.o
ou encore
$ echo "unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';" > end.c
$ gcc end.c -c -o end.o
$ od -t x1 end | grep -q '42 *49 *47 *45' && echo big