https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84319
Bug ID: 84319 Summary: [8 regression] Location views break bootstrap with Solaris/SPARC as Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: aoliva at gcc dot gnu.org Target Milestone: --- Host: sparc-sun-solaris2.* Target: sparc-sun-solaris2.* Build: sparc-sun-solaris2.* The location views patch breaks bootstrap on Solaris/SPARC with the native as. The picture is a bit complicated because some builds fail earlier due to the SEGV described in PR debug/84317. Here's the overview: as/ld gas/ld gas/gld as/ld-64 gas/ld-64 s10 segv segv segv diff ok s11 diff segv segv diff ok s11.4 ok ok ok diff ??? (s11 is Solaris 11.3, s11.4 is Solaris 11.4 Beta) The `diff' cases fail like this (e.g. compiling the 64-bit libstdc++-v3/src/c++11/iostream-inst.cc) with -fPIC: /usr/ccs/bin/as: "iostream-inst.s", line 26808: error: can't compute difference between symbols in different segments .uahalf .LLM93-.LLM92 .LLM93: .text._ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev%_ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev .LLM92: .text._ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev%_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev /usr/ccs/bin/as: "iostream-inst.s", line 26813: error: can't compute difference between symbols in different segments .uahalf .LLM94-.LLM93 .LLM94: .text._ZNSdD1Ev%_ZNSdD1Ev with -dA: /usr/ccs/bin/as: "iostream-inst.s", line 30361: error: can't compute difference between symbols in different segments .uaxword .LLM92 .byte 0x1 ! copy line 856 .byte 0x5 ! column 27 .byte 0x1b ! uleb128 0x1b; 27 .byte 0x9 ! fixed advance PC, increment view to 1 .uahalf .LLM93-.LLM92 ! from *.LLM92 to *.LLM93 The last line is from dwarf2out.c (output_one_line_info_table) using dw2_asm_output_delta, which has a fat comment about targets that cannot compute the difference between symbols in different sections. Adding -gno-variable-location-views to the compilation makes it succeed. Rainer The last line is from