[Bug target/94391] gcc refers to absolute symbols with R_X86_64_PC32 relocation
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Mar 29 23:51:03 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94391
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|WONTFIX |WORKSFORME
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Yuxuan Shui from comment #0)
> Test case:
>
> Source file (a.c):
> extern char _binary_a_c_size[];
> unsigned long foo() { return (unsigned long)_binary_a_c_size; }
Try
---
extern unsigned long _binary_a_c_size;
unsigned long foo() { return _binary_a_c_size; }
---
> Run:
> objcopy -B i386:x86-64 -I binary -O elf64-x86-64 a.c b.o
> gcc -fuse-ld=lld -fpie -pie a.c b.o
>
> lld complains about:
>
> ld.lld: error: relocation R_X86_64_PC32 cannot refer to absolute symbol:
> _binary_a_c_size
This is an lld bug.
More information about the Gcc-bugs
mailing list