Comment bien utiliser un simple éditeur de liens (linker script? Executable est SIGKILL lors de l'exécution

J'essaie de comprendre plus profondément processus de liaison et de linker scripts...en regardant binutils doc, j'ai trouvé un simple éditeur de liens (linker script de mise en œuvre que je me suis amélioré par l'ajout de certaines commandes:

OUTPUT_FORMAT("elf32-i386", "elf32-i386",
          "elf32-i386")
OUTPUT_ARCH(i386)

ENTRY(mymain)

SECTIONS
{
   . = 0x10000;
   .text : { *(.text) }
   . = 0x8000000;
   .data : { *(.data) }
   .bss : { *(.bss) }
}

Mon programme est un programme très simple:

void mymain(void)
{
  int a;
  a++;
}

Maintenant, j'ai essayé de créer un fichier exécutable:

gcc -c main.c
ld -o prog -T my_script.lds main.o

Mais si j'essaie de le lancer prog il reçoit un SIGKILL lors du démarrage. Je sais que lorsqu'un programme est compilé et lié avec la commande:

gcc prog.c -o prog

l'exécutable final est le produit également d'autres fichiers de l'objet comme crt1.o, crti.o et crtn.o mais qu'en est mon dossier? Qui est la façon correcte d'utiliser ce linker scripts?

InformationsquelleAutor MirkoBanchi | 2011-08-24