https://sourceware.org/bugzilla/show_bug.cgi?id=23892
Bug ID: 23892 Summary: ld.gold fails partial linking on sparc64 for global registers: only registers %g[2367] can be declared using STT_REGISTER Product: binutils Version: 2.31 Status: UNCONFIRMED Severity: normal Priority: P2 Component: gold Assignee: ccoutant at gmail dot com Reporter: slyfox at inbox dot ru CC: ian at airs dot com Target Milestone: --- Initially observed as a build failure of linux kernel: make defconfig make LD=sparc64-unknown-linux-gnu-ld.gold ... sparc64-unknown-linux-gnu-ld.gold: error: drivers/char/hw_random/core.o: only registers %g[2367] can be declared using STT_REGISTER Here is the minimal reproducer: $ cat bug.c register long a asm("g6"); $ sparc64-unknown-linux-gnu-gcc -Wall -c -o bug0.o bug.c $ sparc64-unknown-linux-gnu-ld.gold -m elf64_sparc -r -o bug1-gold.o bug0.o $ sparc64-unknown-linux-gnu-ld.gold -m elf64_sparc -r -o bug2-gold.o bug1-gold.o $ sparc64-unknown-linux-gnu-ld.gold: error: bug1-gold.o: only registers %g[2367] can be declared using STT_REGISTER Note, partial linking is very simple here as it uses single input source. Second partial linking step should be a no-op (it is a no-op on bfd). Attached source and emitted binaries. Tool versions: binutils: 2.31.1 gcc: 8.2.0 target: sparc64-unknown-linux-gnu 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