Salut tout le monde, depuis quelques temps j'essaye de compiler des binaires plats avec gcc et ld, mais ld fait des erreurs ?
voici comment je fait :
_________________________________________________
fichier.c---->gcc------>fichier.o
fichier.asm------->nasm------>fichier1.o
_________________________________________________
bin\ld -T bin\link.ld -o resultat.bin --oformat binary fichier.o fichier1.o
avec ld le fichier suivant :
OUTPUT_FORMAT("binary")
ENTRY(start)
SECTIONS
{
.text 0x100000 : /* 1 meg */
{
code
.; _code .; __code = .;
*(.text)
}
.data :
{
data
.; _data .; __data = .;
*(.data)
}
.bss :
{
bss
.; _bss .; __bss = .;
*(.bss)
*(COMMON) /* GNU C "common" variables */
}
end
.; _end .; __end = .;
}
_________________________________________________
Seulement voilà, il y a des probleme au niveau des variables :
les variables non déclaré (.bss) sont absente mais leur adresse est dans le segment .text, du coup lorsque l'on change leur contenu, on fait executer nimprte quoi au CPU, une idée ?
Afficher la suite