Phi*_*pos 9 c++ gcc ld sections
我正在一个新平台上构建一个带有GNU工具链/ gcc 4.9的c ++项目(在jetson K1评估板上展示debian).链接器提供了许多消息
usr/bin/ld: ../../../../lib/libsomething.so: invalid string offset 3118 >= 2767 for section `.strtab'
Run Code Online (Sandbox Code Playgroud)
我甚至不知道这是一个错误,一个警告或只是一些链接器smalltalk.该项目建立并运行,但这让我感到困惑.
我已经在几个ARM和英特尔平台上使用相同的工具链(但在Ubuntu或Debian Jessie上)构建了这个项目,并且从未见过这些东西.
我已经看到过这可能与并行构建有关的建议make -j
,但是如果我重建所有libs也会发生这种情况-j
.
请给我一个暗示这是什么以及如何摆脱它.
更新:
objdump
根本没有列出该.strtab
部分ld.bfd
Binutils 之前有一个错误2.33
。
它尝试读取 ARM CMSE 符号名称,但使用.strtab
而不是.dynstr
. 如果符号在共享库中被剥离,则其.strtab
节短于.dynstr
,因此对于 中的某些符号.dynsym
,其名称(实际引用.dynstr
)的偏移量超过 的大小.strtab
。因此,链接器发出了警告。
如果您需要更多详细信息,这里是解决该问题的补丁:https://sourceware.org/git/? p=binutils-gdb.git;a=commit;h=baf46cd78048e1b959462567556e1de1ef6b9039 。