我正在尝试构建 Linux 内核 3.8 的自定义版本,我希望我的链接器的行为有点不同,所以我更改了它的 ldscripts。 具体来说,我配置 binutils -> make -> 更改 ldscripts -> make install。 然而,当我尝试使用我的链接器编译 libc 时,我唯一看到的是:
GNU ld (GNU Binutils) 2.23
Supported emulations:
elf32_sparc
sparclinux
elf64_sparc
sun4
using internal linker script:
==================================================
/* Script for --shared -z combreloc: shared library, combine & sort relocs */
等等
问题是我已经更改了我的 ldscripts 并在每个脚本的开头添加了一个标签以便识别它们,但我的编译器似乎并不关心。 但是我的系统中没有任何其他 elf 脚本,所以搜索错误的库路径的选项实际上不是一个选项。
我在这里遗漏了什么吗?
注意我正在为 sparc 进行交叉编译
最佳答案
您可以将自定义链接描述文件传递给 ld
:
ld -T <path/to/file> ...
或gcc
:
gcc -Wl,-T,<path/tofile> ...
关于linux - 如何使用自定义链接描述文件编译 ld?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19931935/