ld et PHDRS

ld et PHDRS - ASM - Programmation

Marsh Posté le 13-04-2024 à 22:47:58    

Bonjour a tous,
Je ne sais pas si le forum est le lieu pour ce genre de questions mais faute de trouver une reponse a mon probleme je tente ma chance ici.
Depuis quelques mois je travaille sur un prototype de "kernel" baremetal fait from scratch. Je passe les details de pourquoi faire car ce n'est pas interessant.
J'ai besoin de forcer une section memoire en type PT_LOAD, j'ai donc un linker script qui ressemble a ca :
OUTPUT_ARCH( "riscv" )
 
SECTIONS
{
   . = seg_reset;
   .reset : { *(.reset) }
   . = ALIGN(0x1000);
   .kernel : { *(.kernel) }
   . = ALIGN(0x1000);
   .exit   : { *(.exit) }
   _kernel_end = .;
}
 
L'idee etant de forcer les sections reset, kernel et exit a etre de type PT_LOAD et je ne veux pas les mettre dans la section .text qui par default a l'air d'etre de type PT_load.
J'ai tente diverse combinaison notamment a l'aide de la fonction PHDRS mentionne sur le site de GNU mais fais toujours face a l'erreur suivante :
no sections assigned to phdrs
 
Le code PHDRS que jai ajoute :  
PHDRS
{
   headers PT_PHDR PHDRS ;
   kernel PT_LOAD PHDRS;
}

Reply

Marsh Posté le 13-04-2024 à 22:47:58   

Reply

Marsh Posté le 23-04-2024 à 01:11:20    

si après  
.kernel : { *(.kernel) }
 
tu ajoutes
.kernel : { *(.kernel) } :kernel AT (ADDR(.kernel) - LOADADDR(.kernel))
 
ça donne quoi ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed