[PATCH] configury : Fix LEB128 support for non-GNU assemblers.

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Thu Nov 26 13:08:31 GMT 2020


Hi Iain,

>> The ports I know of that can benefit from a change here are:
> [...]
>> Solaris (bootstrapped and tests running on GCC211, but maybe Rainer would
>>             want wider checks).
>
> I've just manually tried the augmented test on Solaris 10-11.4, SPARC
> and x86.  While the Solaris/SPARC assembler handles it just fine, the
> x86 one chokes in a known way:
>
> Assembler: 
> 	"/homes/ro/leb128.s", line 2 : Syntax error
> 	Near line: "	.uleb128 L2 - L1"
>
>> I guess we could exclude specific ports that don’t want to use leb128 with
>> a target elif in the configuration.
>
> I'll include the patch in tonight's Solaris bootstraps for good measure,
> but it seems fine to me as is.

unfortunately, Solaris/SPARC results are miserable:

* About 1600 Go tests FAIL, spread across go.*, libgo, and gotools, all
  in the same way, it seems:

+FAIL: go.go-torture/execute/array-1.go execution,  -O0 

fatal error: DWARF underflow in .debug_line at 3266879

goroutine 1 [running, locked to thread]:
fatal error: DWARF underflow in .debug_line at 3266879
panic during panic

goroutine 1 [running, locked to thread]:
fatal error: DWARF underflow in .debug_line at 3266879
stack trace unavailable

* On top of that, I get about 80 libstdc++ failures, again all of the
  same kind:

+FAIL: libstdc++-prettyprinters/80276.cc whatis p4

type = std::unique_ptr<std::vector<std::unique_ptr<std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >>[]>>[99]>
got: type = std::unique_ptr<std::vector<std::unique_ptr<std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >>[]>>[99]>

  which is confusing because the the found and expected types are
  identical.

All this happens for both 32 and 64-bit tests.

To ascertain that this is really the leb128 patch, I've reverted it in
my tree and reran the bootstrap: all those failures are gone.

So without further investigation, we cannot use the leb128 directives
with Solaris/SPARC as.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


More information about the Gcc-patches mailing list