J'allais te suggérer /usr/lib/crt1.o mais tu l'as trouvé tout seul.
Effectivement, il me semble que l'on ne peut pas générer d'éxecutable C valide sans quelques éléments traditionnellement fournis implicitement par la glibc que sont les symboles de début/fin d'éxecution du programme (des choses qui ressemblent au main() en fait, si tu fais "nm /usr/lib/crt1.o" tu en verras). Il faut donc t'assurer que ce sont les bons qui sont fournis, et qu'aucun n'est omis (syndrome du warning de ld plus haut). Je ne les connais pas par coeur mais je sais qu'il faut au moins trouver _environ _init __libc_init_first __libc_csu_fini __libc_csu_init __libc_start_main _fini atexit exit, si j'en crois la "minilibc" de redhat). Au pire, tu peux toujours en mettre dans ton programme si tu peux te le permettre, voir le contenu de http://cvs.mandrakesoft.com/cgi-bin/cvsweb.cgi/~checkout~/gi/mdk-st(...)
Sinon, pour gdb, je ne suis pas sûr en fait que ce qu'il dit soit correct car lui aussi doit bien trouver quelque part les symboles, enfin, je ne saurais trop comment l'expliquer mais je ne me fierais pas à ses résultats comme cela.
Bon, bref, bonne chance, c'est pas évident de se débrouiller avec ton problème, mais en même temps ça doit être très instructif.
[^] # Re: J'y suis presque mais j'ai encore besoin d'aide
Posté par gc . En réponse au message Utiliser 2 versions de la glibc en parallèle. Évalué à 3.
Effectivement, il me semble que l'on ne peut pas générer d'éxecutable C valide sans quelques éléments traditionnellement fournis implicitement par la glibc que sont les symboles de début/fin d'éxecution du programme (des choses qui ressemblent au main() en fait, si tu fais "nm /usr/lib/crt1.o" tu en verras). Il faut donc t'assurer que ce sont les bons qui sont fournis, et qu'aucun n'est omis (syndrome du warning de ld plus haut). Je ne les connais pas par coeur mais je sais qu'il faut au moins trouver _environ _init __libc_init_first __libc_csu_fini __libc_csu_init __libc_start_main _fini atexit exit, si j'en crois la "minilibc" de redhat). Au pire, tu peux toujours en mettre dans ton programme si tu peux te le permettre, voir le contenu de http://cvs.mandrakesoft.com/cgi-bin/cvsweb.cgi/~checkout~/gi/mdk-st(...)
Sinon, pour gdb, je ne suis pas sûr en fait que ce qu'il dit soit correct car lui aussi doit bien trouver quelque part les symboles, enfin, je ne saurais trop comment l'expliquer mais je ne me fierais pas à ses résultats comme cela.
Bon, bref, bonne chance, c'est pas évident de se débrouiller avec ton problème, mais en même temps ça doit être très instructif.