https://sourceware.org/bugzilla/show_bug.cgi?id=20989
Bug ID: 20989 Summary: Every 64-bit Solaris 12/SPARC executable dies with SIGILL Product: binutils Version: 2.27 Status: NEW Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: ro at gcc dot gnu.org Target Milestone: --- Host: sparc-sun-solaris2.12 Target: sparc-sun-solaris2.12 Build: sparc-sun-solaris2.12 For some time, Solaris 12 provides its own set of CRTs. Cf. https://gcc.gnu.org/ml/gcc-patches/2015-09/msg01638.html for some backgroup. When recently the __start_crt_compiler function in crt1.o was changed from [29] 0 0 FUNC WEAK D 0 UNDEF __start_crt_compiler to [29] 0 0 FUNC WEAK H 0 UNDEF __start_crt_compiler (i.e. hidden visibility), every single 64-bit executable started to die with SIGILL if linked with gld. Both 32-bit and /bin/ld are fine instead. Here's what I found: /usr/lib/sparcv9/crt1.o has __start_crt+0x64: 40 00 00 00 call +0x0 <__start_crt+0x64> Relocation Section: .rela.text index type offset value addend section symbol [20] R_SPARC_WPLT30 0xe4 0 0 .text __start_crt_compiler __start_crt starts at .text+0x80 [30] 0x80 0xa4 FUNC GLOB D 0 .text __start_crt [29] 0 0 FUNC WEAK H 0 UNDEF __start_crt_compiler When linking with /bin/ld, the resulting executable turns into: __start_crt+0x64: 40 00 00 00 call +0x0 <__start_crt+0x64> [76] 0x100000b80 0xa4 FUNC GLOB D 0 .text __start_crt [32] 0 0 FUNC LOCL H 0 ABS __start_crt_compiler while when I use gld instead, I get __start_crt+0x64: 7f ff fe 4f call -0x6c4 <0x100000000> [53] 0x100000660 0xa4 FUNC GLOB D 0 .text __start_crt Rainer -- 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