From: Andrew Pinski <apin...@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.

Thanks,
Andrew Pinski

libstdc++/ChangeLog:
* config/cpu/aarch64/opt/ext/opt_random.h: Wrap around with check
for little-endian like ext/random is done.

Signed-off-by: Andrew Pinski <apin...@marvell.com>
---
 libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h 
b/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
index 696a6d18ab4..9eca9b7df74 100644
--- a/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
+++ b/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
@@ -44,6 +44,7 @@
      _C+8, _C+9, _C+10, _C+11, _C+12, _C+13, _C+14, _C+15})
 #endif
 
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
 namespace __gnu_cxx _GLIBCXX_VISIBILITY (default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -175,6 +176,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 _GLIBCXX_END_NAMESPACE_VERSION
   } // namespace
 
+#endif // __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
 #endif // __ARM_NEON
 
 #endif // _EXT_OPT_RANDOM_H
-- 
2.17.1

Reply via email to