From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Fri, 4 Mar 2022 12:00:26 +0100 Subject: [PATCH] GLIBCXX fix for GCC 12? --- build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp index 0180f6bcfa998..8d7a542ff11f0 100644 --- a/build/unix/stdc++compat/stdc++compat.cpp +++ b/build/unix/stdc++compat/stdc++compat.cpp @@ -24,6 +24,7 @@ GLIBCXX_3.4.27 is from gcc 10 GLIBCXX_3.4.28 is from gcc 10 GLIBCXX_3.4.29 is from gcc 11 + GLIBCXX_3.4.30 is from gcc 12 This file adds the necessary compatibility tricks to avoid symbols with version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with @@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); } } // namespace std #endif +#if _GLIBCXX_RELEASE >= 12 +namespace std { + +/* This avoids the GLIBCXX_3.4.30 symbol version. */ +void __attribute__((weak)) +__glibcxx_assert_fail(const char* __file, int __line, const char* __function, + const char* __condition) { + MOZ_CRASH(); +} + +} // namespace std +#endif + /* While we generally don't build with exceptions, we have some host tools * that do use them. libstdc++ from GCC 5.0 added exception constructors with * char const* argument. Older versions only have a constructor with -- 2.35.1