[llvm-dev] [LLD] Can't create dynamic relocation R_X86_64_64 against local symbol in readonly segment
Martin Richtarsky via llvm-dev
llvm-dev at lists.llvm.org
Thu Mar 23 05:23:24 PDT 2017
Hi,
the attached example works with bfd-ld and with gold, but not with lld:
$ cat rodatareloc.s
...
.align 16
leaq .JTab(%rip), %r10
jmp *(%r10, %rdx, 8)
...
.section .rodata
.JTab:
.quad .L00, .L01, .L02, .L03, .L04, .L05, .L06, .L07
.quad .L08, .L09, .L10, .L11, .L12, .L13, .L14, .L15, .L16
$ gcc -o rodatareloc.s.o -c rodatareloc.s
$ lld -o rodatareloc.so -shared rodatareloc.s.o
ld: error: rodatareloc.s.o:(.rodata+0x0): can't create dynamic relocation
R_X86_64_64 against local symbol in readonly segment defined in
rodatareloc.s.o
Changing the section from .rodata to .data fixes it, but I guess this
should be supported also for .rodata. Should I open a bug?
Best regards,
Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lld_rodata_dynamic_relro.tar.gz
Type: application/x-gzip
Size: 807 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170323/2aaf9665/attachment.bin>
More information about the llvm-dev
mailing list