https://sourceware.org/bugzilla/show_bug.cgi?id=20258
Bug ID: 20258 Summary: Internal error with nocopyreloc Product: binutils Version: unspecified Status: UNCONFIRMED Severity: normal Priority: P2 Component: gold Assignee: ccoutant at gmail dot com Reporter: ian at wienand dot org CC: ian at airs dot com Target Milestone: --- --- $ cat test.c extern int foo; int main(int argc, char *argv[]) { foo = 1; } $ cat lib.c int foo; $ gcc -shared -o libfoo.so lib.c $ gcc -Wl,-z,nocopyreloc -o test test.c -L. -lfoo $ gcc -Wl,-fuse-ld=gold -Wl,-z,nocopyreloc -o test test.c -L. -lfoo /usr/bin/ld.gold: internal error in check_non_pic, at ../../gold/x86_64.cc:2295 collect2: error: ld returned 1 exit status --- So I think gold is right to fail; an R_X86_64_PC32 reloc for "foo" is just not going to work because it's too far away; you either need to use PIC, copy-reloc or huge-model I guess. So I think the assert can be relaxed -- 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