我如何进行重新定位的链接,丢弃不用的功能,而不会破坏.eh_frame(How do I perfo

2019-10-21 19:16发布

我使用-ffunction截面使每个功能是在其自己的部分,如果它不使用可以被丢弃编译一些代码。

然后,我通过使用-r和--gc截面产生期间链接阶段新重定位目标丢弃未使用的函数。

然而,当我得到的对象最终链接到一个可执行文件,链接器报告:

“LD:myobject.o(.eh_frame + 0x7f0):RELOC针对`UND“:错误2"

我想这是因为一个符号被丢弃,但它仍然是.eh_frame引用。 我注意到,误差有时也可与部分名称,而不是“UND”其中,部分名称是用来指节被删除,然后未定义符号的名字的报道,但我不知道为什么有两种不同的方式这个轮番上涨。

我怎样才能解决这个(例如,也许删除只包含无法解决的重定位.eh_frame项)?

文章来源: How do I perform a relocatable link, discarding unused functions without breaking .eh_frame
标签: c++ gcc ld