【发布时间】:2011-07-07 16:53:22
【问题描述】:
我正在从几个源文件和库中构建一个静态二进制文件,并且我想控制将函数放入生成的二进制文件的顺序。
背景是,我有与此二进制文件中的偏移量相关联的外部代码。现在如果我改变源,所有的偏移量都会改变,因为 gcc 可能会决定对函数进行不同的排序,所以我想把引用的函数以固定的顺序放在开头,这样它们的偏移量就保持不变......
我查看了 ld 的文档,但找不到任何关于函数顺序的信息。
我发现的唯一东西是-fno-toplevel-reorder,它并没有真正帮助我。
【问题讨论】:
-
最后,我选择实现一个(脚本生成的)跳转表,这样我就不再关心移动函数了。这两个答案也可能会起作用。