【问题标题】:Remove a section from ELF during linking stage在链接阶段从 ELF 中删除一个部分
【发布时间】:2020-07-04 14:10:06
【问题描述】:

如何在链接阶段从 ELF 中删除部分?是否有任何链接器选项或标志?我最感兴趣的是如何使用 LLVM 完成它,但任何有关 GCC 的信息也将不胜感激。

谢谢!

【问题讨论】:

    标签: gcc clang llvm ld lld


    【解决方案1】:

    如果您想要与默认 ELF 构造不同的任何内容——复制所有内容——那么您将需要编写链接描述文件。文件可以指定要包含的内容和放置位置。因此,您可以通过不复制来删除此部分。 LLD 支持GNU LD style linker scripts。它们看起来像:

    SECTIONS
    {
      . = 0x10000;
      .text : { *(.text) }
      . = 0x8000000;
      .data : { *(.data) }
      .bss : { *(.bss) }
    }
    

    它们是在 lld 命令行中指定的,例如: ld.lld --script=../linker_script xxx.o -o xxx

    【讨论】:

      猜你喜欢
      • 2013-01-09
      • 2020-05-08
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多