J'ai réussi à compiler de manière plus propre le programme :
gcc -g -Dlinux -D__linux__ -Dunix -fno-builtin -nostdinc -I/usr/include -I/usr/lib/gcc-lib/i386-redhat-linux/2.96/include -b i386-redhat-linux -c -o shueber.o shueber.c
gcc -nostartfiles -nostdlib -L/usr/lib -L/usr/lib/gcc-lib/i386-redhat-linux/2.96 /lib/libc-2.2.5.so /usr/lib/crt{1,i}.o -b i386-redhat-linux shueber.o -lgcc
Mais lors de l'exécution, je n'atteinds plus l'instruction printf. Il plante dans les processus init. Voir la backtrace de gdb :
(gdb) bt
#0 fixup (l=0x40014850, reloc_offset=269026572) at dl-runtime.c:60
#1 0x40009f10 in _dl_runtime_resolve () from /lib/ld-linux.so.2
#2 0x4002e71a in __libc_start_main (main=0x80482c0 , argc=1,
ubp_av=0xbfffe354, init=0x804823c <_init>, fini=0x80482e0 <_fini>,
rtld_fini=0x4000a560 <_dl_fini>, stack_end=0xbfffe34c)
at ../sysdeps/generic/libc-start.c:122
Si vous pouviez avoir une info ou une soluce ça serait cool. merci d'avance :-)
# J'y suis presque mais j'ai encore besoin d'aide
Posté par Jean-Christophe Berthon . En réponse au message Utiliser 2 versions de la glibc en parallèle. Évalué à 2.
gcc -g -Dlinux -D__linux__ -Dunix -fno-builtin -nostdinc -I/usr/include -I/usr/lib/gcc-lib/i386-redhat-linux/2.96/include -b i386-redhat-linux -c -o shueber.o shueber.c
gcc -nostartfiles -nostdlib -L/usr/lib -L/usr/lib/gcc-lib/i386-redhat-linux/2.96 /lib/libc-2.2.5.so /usr/lib/crt{1,i}.o -b i386-redhat-linux shueber.o -lgcc
Mais lors de l'exécution, je n'atteinds plus l'instruction printf. Il plante dans les processus init. Voir la backtrace de gdb :
(gdb) bt
#0 fixup (l=0x40014850, reloc_offset=269026572) at dl-runtime.c:60
#1 0x40009f10 in _dl_runtime_resolve () from /lib/ld-linux.so.2
#2 0x4002e71a in __libc_start_main (main=0x80482c0 , argc=1,
ubp_av=0xbfffe354, init=0x804823c <_init>, fini=0x80482e0 <_fini>,
rtld_fini=0x4000a560 <_dl_fini>, stack_end=0xbfffe34c)
at ../sysdeps/generic/libc-start.c:122
Si vous pouviez avoir une info ou une soluce ça serait cool. merci d'avance :-)