https://sourceware.org/bugzilla/show_bug.cgi?id=23527
Bug ID: 23527 Summary: regression (ld-2.30 worked): relocation R_X86_64_PC32 against protected symbol `a' can not be used when making a shared object Product: binutils Version: 2.31 Status: UNCONFIRMED Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: slyfox at inbox dot ru Target Milestone: --- Created attachment 11183 --> https://sourceware.org/bugzilla/attachment.cgi?id=11183&action=edit binutils-protected-663442.tar.gz The report is extracted from chromium link failure: https://bugs.gentoo.org/663442 Minimal example: $ cat a.s .text .globl a .type a, @function .protected a a: ud2 $ cat b.s .text .globl a .type a, @function .protected a .globl b .type b, @function .protected b b: jmp a $ cat a.sh #!/bin/bash for cc in gcc clang; do echo "cc=$cc" $cc -O2 -fPIC -c a.s -o a.$cc.o $cc -O2 -fPIC -c b.s -o b.$cc.o #objdump -d -r a.o b.o ld -shared \ -fPIC \ -o lib.$cc.so \ a.$cc.o b.$cc.o "$@" done $ LANG=C ./a.sh cc=gcc cc=clang ld: b.clang.o: relocation R_X86_64_PC32 against protected symbol `a' can not be used when making a shared object ld: final link failed: bad value Note: clang builds slightly different final binary using non-PLT reference: $ diffoscope b.gcc.o b.clang.o -0000000000000001 0000000400000004 R_X86_64_PLT32 0000000000000000 a - 4 +0000000000000001 0000000100000002 R_X86_64_PC32 0000000000000000 a - 4 Both tests pass on binutils-2.30 and fail on binutils-2.31.1 (for object files built by clang). binutils-master also fails: $ LANG=C ~/dev/git/binutils-gdb-native/ld/ld-new -shared -fPIC -o lib.clang.so a.clang.o b.clang.o /home/slyfox/dev/git/binutils-gdb-native/ld/ld-new: b.clang.o: relocation R_X86_64_PC32 against protected symbol `a' can not be used when making a shared object /home/slyfox/dev/git/binutils-gdb-native/ld/ld-new: final link failed: bad value Attaching final binaries. Thanks! -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils