diff --git a/include/arch/arm/cortex_m/scripts/linker.ld b/include/arch/arm/cortex_m/scripts/linker.ld index 4d3cb2e1970..0567202ee7c 100644 --- a/include/arch/arm/cortex_m/scripts/linker.ld +++ b/include/arch/arm/cortex_m/scripts/linker.ld @@ -113,12 +113,12 @@ SECTIONS * .plt and .iplt are here according to 'arm-zephyr-elf-ld --verbose', * before text section. */ - SECTION_PROLOGUE(.plt,,) + /DISCARD/ : { *(.plt) } - SECTION_PROLOGUE(.iplt,,) + /DISCARD/ : { *(.iplt) } @@ -293,8 +293,7 @@ SECTIONS * These are here according to 'arm-zephyr-elf-ld --verbose', * before data section. */ - SECTION_PROLOGUE(.got,,) - { + /DISCARD/ : { *(.got.plt) *(.igot.plt) *(.got) diff --git a/include/arch/x86/linker.ld b/include/arch/x86/linker.ld index 2bc38a77d3f..eac47a0db6b 100644 --- a/include/arch/x86/linker.ld +++ b/include/arch/x86/linker.ld @@ -69,6 +69,17 @@ SECTIONS #include + /DISCARD/ : + { + *(.plt) + } + + /DISCARD/ : + { + *(.iplt) + } + + GROUP_START(ROMABLE_REGION) #ifdef CONFIG_REALMODE /* 16-bit sections */ @@ -164,7 +175,15 @@ SECTIONS _image_rom_size = _image_rom_end - _image_rom_start; GROUP_END(ROMABLE_REGION) - + /* + * Needed for dynamic linking which we do not have, do discard + */ + /DISCARD/ : { + *(.got.plt) + *(.igot.plt) + *(.got) + *(.igot) + } /* RAMABLE_REGION */ GROUP_START(RAMABLE_REGION)