在 ELF 中交换部分

Swap sections in ELF

有没有办法强制 gccld 将代码段放在输出 ELF 格式文件的末尾?

也许我可以强迫他们不要制作除 .text 以外的任何其他部分,例如,如果我在 .data, .rodata, .bss 和其他部分中没有任何内容?

对我有用的最小脚本版本如下:

ENTRY(_start)

SECTIONS 
{ 
    .data : { *(.data) }
    .bss :  { *(.bss)  *(COMMON) }  
    .text : { *(.text) }
} 

但在我进行了更多研究后 (docs here),我已将此脚本替换为默认脚本 (ld --verbose)。然后我将代码部分放在冗长脚本的最后,它运行得很好。