https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80953

--- Comment #35 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Right: 64-bit Solaris/SPARC uses the full 64-bit address space:
> 
> https://docs.oracle.com/cd/E37838_01/html/E66175/advanced-2.
> html#SSFDGadvanced-5
> 
> The gap between the low and high parts cannot be determined
> programmatically right now and varies between different sparc machines.

Linux uses an equivalent VM layout (although the primary stack is in the low
part instead of the high part).  I think that on Linux the hole is fully
determined by the number of bits available for virtual addresses.

> Even if that could be fixed (there's been talk about adding an interface
> to determine that information at runtime), the current shadow address
> calculation cannot cope with such a discontinuous address space.

Right, but you can tweak it once the position of the hole is determined.  I
have done so for a 52-bit VM layout (T4 and later apparently) and, modulo fixes
all over the place (libsanitizer, libbacktrace, compiler, testsuite), I now
have a 100% clean ASAN testsuite on both 32-bit and 64-bit SPARC/Linux.

Trying on Solaris now...

Reply via email to