[PATCH] Fix libstdc++ compiling for an aarch64 multilib with big-endian.

Jonathan Wakely jwakely@redhat.com
Tue Nov 26 22:41:00 GMT 2019

On 26/11/19 22:22 +0000, Richard Sandiford wrote:
>+ libstdc++@gcc.gnu.org
><apinski@marvell.com> writes:
>> From: Andrew Pinski <apinski@marvell.com>
>> Hi if we have a aarch64 compiler that has a big-endian
>> multi-lib, it fails to compile libstdc++ because
>> simd_fast_mersenne_twister_engine is only defined for little-endian
>> in ext/random but ext/opt_random.h thinks it is defined always.
>> OK?  Built an aarch64-elf toolchain which has a big-endian multi-lib enabled.
>Looks good to me in the sense that I see the same preprocessor
>conditions you see.  OK if no libstdc++ maintainer tells us it's
>the wrong fix in the next 24 hrs.

Looks right.

The #if could even be moved earlier, as the __VEXT macros don't seem
to be used anywhere except that file. If most of the file gets skipped
for big endian, that macro isn't needed either (and it looks like the
__ARM_BIG_ENDIAN version of it is never used at all).

No harm leaving the macro though, so as far as I'm concerned the patch
is fine.

More information about the Libstdc++ mailing list