nasm: ELF 格式无法生成非 PC 相关的 PLT 引用
nasm: ELF format cannot produce non-PC-relative PLT references
我在使用 nasm
编译器时遇到错误。在 nasm 的源代码中,错误源自 here.
我正在尝试构建一个可重定位的目标文件,该文件可以在 运行 时间链接(而不是构建时间链接)期间解析特定符号。
最小代码:
EXTERN start
foo:
; wrt: with respect to
dd start wrt ..plt
错误是ELF 格式无法生成非 PC 相关的 PLT 引用。
这是怎么回事?
看来您必须使用 dd start wrt ..got
,即引用 全局偏移量 table 而不是 过程链接 table。后者只适用于 call start wrt ..plt
之类的东西,即真正的指令。在这种情况下,您使用的是 dd
,即在输出中存储一个立即值。
我在使用 nasm
编译器时遇到错误。在 nasm 的源代码中,错误源自 here.
我正在尝试构建一个可重定位的目标文件,该文件可以在 运行 时间链接(而不是构建时间链接)期间解析特定符号。
最小代码:
EXTERN start
foo:
; wrt: with respect to
dd start wrt ..plt
错误是ELF 格式无法生成非 PC 相关的 PLT 引用。 这是怎么回事?
看来您必须使用 dd start wrt ..got
,即引用 全局偏移量 table 而不是 过程链接 table。后者只适用于 call start wrt ..plt
之类的东西,即真正的指令。在这种情况下,您使用的是 dd
,即在输出中存储一个立即值。