linux - 在 ELF 中交换部分

标签 linux assembly elf

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

也许我可以强制他们不生成除 .text 之外的任何其他部分,例如,如果我在 .data、.rodata、.bss 和其他部分?

最佳答案

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

ENTRY(_start)

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

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

关于linux - 在 ELF 中交换部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882899/

相关文章:

debugging - ELF 文件 - 获取字符串使用位置的函数

linux - 是否有从 dir1 到 dir2 cp 文件的最快选项?

c++ - 将内联 GASM 移植到 x64 MASM 访问冲突问题

linux - 加载引导加载程序的第二阶段和/或将控制权转移给它时出现问题

assembly - 简单内核无法在 GRUB 中启动

linux - 如何 Hook 特定共享 ELF 库的函数?

创建 TCP 服务器来托管 ELF 文件

linux - CL 解释器有语法高亮吗?

linux - 如何在 'when'模块中包含特殊字符?

php - 从源安装 php 和 mysql 找不到头文件