Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

cross-compilation du noyau linux sur sarge, aaaarg....

1 réponse
Avatar
Emmanuel Florac
Je suis toujours à la poursuite de ce rêve : compiler un noyau 64 bits
amd64, pour l'installer dans une sarge 32 bits.... J'ai trouvé un petit
guide ici :
http://people.debian.org/~debacle/cross/plante sur ld,

Bon, en pratique, ça ne marche pas. La libc est installée, les binutils
sont bien compilées, mais impossible de compiler cette saleté de gcc...
J'ai eu des problèmes avec crti.o et crtn.o, qui apparemment sont liés
à la gestion de deux archis (x86 et amd64), donc ça je l'ai désactivé
dans debian/rules (bien que crti.o et crtn.o soient bien présents dans
/usr/x86_64-linux/lib ). Mais maintenant ça plante sur

/home/src/gcc-amd64-linux-3.4.3/build/gcc/xgcc -B/home/src/gcc-amd64-linux-3.4.3/build/gcc/ -B/usr/amd64-linux/bin/ -B/usr/amd64-linux/lib/ -isystem /usr/amd64-linux/include -isystem /usr/amd64-linux/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -DNATIVE_CROSS -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc/./libgcc.map -Wl,-O1 -o libgcc_s.so.1.tmp libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_lshrdi3.o libgcc/./_ashldi3.o libgcc/./_ashrdi3.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o libgcc/./_floatdidf.o libgcc/./_floatdisf.o libgcc/./_fixunsdfsi.o libgcc/./_fixunssfsi.o libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o libgcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o libgcc/./_fixtfdi.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o libgcc/./_clear_cache.o libgcc/./_enable_execute_stack.o libgcc/./_trampoline.o libgcc/./__main.o libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o libgcc/./_addvdi3.o libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o libgcc/./_mulvdi3.o libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o libgcc/./_ffssi2.o libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o libgcc/./_clzdi2.o libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_divdi3.o libgcc/./_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o libgcc/./unwind-dw2.o libgcc/./unwind-dw2-fde-glibc.o libgcc/./unwind-sjlj.o libgcc/./gthr-gnat.o libgcc/./unwind-c.o -lc && rm -f libgcc_s.so && if [ -f libgcc_s.so.1 ]; then mv -f libgcc_s.so.1 libgcc_s.so.1.backup; else true; fi && mv libgcc_s.so.1.tmp libgcc_s.so.1 && ln -s libgcc_s.so.1 libgcc_s.so
/usr/amd64-linux/bin/ld: ne peut trouver -lc
collect2: ld returned 1 exit status
make[4]: *** [libgcc_s.so] Erreur 1
make[4]: Leaving directory `/home/src/gcc-amd64-linux-3.4.3/build/gcc'
make[3]: *** [stmp-multilib] Erreur 2
make[3]: Leaving directory `/home/src/gcc-amd64-linux-3.4.3/build/gcc'
make[2]: *** [all-gcc] Erreur 2
make[2]: Leaving directory `/home/src/gcc-amd64-linux-3.4.3/build'
s=`cat status`; rm -f status; test $s -eq 0
make[1]: *** [stamps/05-build-stamp] Erreur 1
make[1]: Leaving directory `/home/src/gcc-amd64-linux-3.4.3'
make: *** [stamps/05-build-stamp] Erreur 2

Et franchement je ne sais plus à quel saint me vouer... Mon but étant de
compiler le noyau, je bloque depuis deux jours sur la compilation du
compilateur!

--
Ce qu'il y a d'enivrant dans le mauvais goût c'est le plaisir
aristocratique de déplaire.
C. Baudelaire.

1 réponse

Avatar
noone
Je suis toujours à la poursuite de ce rêve : compiler un noyau 64 bits
amd64, pour l'installer dans une sarge 32 bits.... J'ai trouvé un petit
guide ici :
http://people.debian.org/~debacle/cross/plante sur ld,


Désolé de ne pas pouvoir t'aider... la seule expérience de
cross-compilation que j'ai c'est avec Scratchbox
http://www.scratchbox.org

x86 vers ARM
pour un PocketPC sous Linux Familar (GPE)

donc tout était déjà fait...

;-)