Ignore all changes to g++ ABI version since 1002
Checking for the exact match of __GXX_ABI_VERSION created more problems (including for both Fedora and Debian packagers, see https://github.com/wxWidgets/wxWidgets/pull/828) than it solved (approximately 0), so relax it and assume that future g++ versions will remain broadly compatible with the current ABI, which seems like a safe assumption so far. It's not really clear if there is any value in having this ABI check at all, or if we should remove CheckBuildOptions() and all the code calling it entirely, as it seems that there is no way to trigger this check during run-time without getting a link error first. But keep it for now, just because it's simpler to keep it than to remove it.
This commit is contained in:
@@ -52,17 +52,18 @@
|
|||||||
// GCC and Intel C++ share same C++ ABI (and possibly others in the future),
|
// GCC and Intel C++ share same C++ ABI (and possibly others in the future),
|
||||||
// check if compiler versions are compatible:
|
// check if compiler versions are compatible:
|
||||||
#if defined(__GXX_ABI_VERSION)
|
#if defined(__GXX_ABI_VERSION)
|
||||||
// The changes between ABI versions 1002 through 1011 (documented at
|
// All the changes since ABI version 1002 so far have been insignificant,
|
||||||
// https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html
|
// so just check for this value, first used for g++ 3.4 and used by default
|
||||||
// under -fabi-version) don't affect wxWidgets, so we allow a library
|
// by all g++ 4 versions, as checking for the exact ABI version simply
|
||||||
// and an application to differ within that range.
|
// results in run-time breakage whenever a new gcc version is released,
|
||||||
#if ((__GXX_ABI_VERSION >= 1002) && (__GXX_ABI_VERSION <= 1011))
|
// even if there are no real problems.
|
||||||
#define wxGXX_EFFECTIVE_ABI_VERSION 1002
|
#if __GXX_ABI_VERSION >= 1002
|
||||||
|
#define __WX_BO_COMPILER \
|
||||||
|
",compiler with C++ ABI compatible with gcc 4"
|
||||||
#else
|
#else
|
||||||
#define wxGXX_EFFECTIVE_ABI_VERSION __GXX_ABI_VERSION
|
#define __WX_BO_COMPILER \
|
||||||
|
",compiler with C++ ABI " __WX_BO_STRINGIZE(__GXX_ABI_VERSION)
|
||||||
#endif
|
#endif
|
||||||
#define __WX_BO_COMPILER \
|
|
||||||
",compiler with C++ ABI " __WX_BO_STRINGIZE(wxGXX_EFFECTIVE_ABI_VERSION)
|
|
||||||
#elif defined(__GNUG__)
|
#elif defined(__GNUG__)
|
||||||
#define __WX_BO_COMPILER ",GCC " \
|
#define __WX_BO_COMPILER ",GCC " \
|
||||||
__WX_BO_STRINGIZE(__GNUC__) "." __WX_BO_STRINGIZE(__GNUC_MINOR__)
|
__WX_BO_STRINGIZE(__GNUC__) "." __WX_BO_STRINGIZE(__GNUC_MINOR__)
|
||||||
|
Reference in New Issue
Block a user