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:
parent
42932d4670
commit
7f1d08d5bd
@ -52,17 +52,18 @@
|
||||
// GCC and Intel C++ share same C++ ABI (and possibly others in the future),
|
||||
// check if compiler versions are compatible:
|
||||
#if defined(__GXX_ABI_VERSION)
|
||||
// The changes between ABI versions 1002 through 1011 (documented at
|
||||
// https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html
|
||||
// under -fabi-version) don't affect wxWidgets, so we allow a library
|
||||
// and an application to differ within that range.
|
||||
#if ((__GXX_ABI_VERSION >= 1002) && (__GXX_ABI_VERSION <= 1011))
|
||||
#define wxGXX_EFFECTIVE_ABI_VERSION 1002
|
||||
// All the changes since ABI version 1002 so far have been insignificant,
|
||||
// so just check for this value, first used for g++ 3.4 and used by default
|
||||
// by all g++ 4 versions, as checking for the exact ABI version simply
|
||||
// results in run-time breakage whenever a new gcc version is released,
|
||||
// even if there are no real problems.
|
||||
#if __GXX_ABI_VERSION >= 1002
|
||||
#define __WX_BO_COMPILER \
|
||||
",compiler with C++ ABI compatible with gcc 4"
|
||||
#else
|
||||
#define wxGXX_EFFECTIVE_ABI_VERSION __GXX_ABI_VERSION
|
||||
#define __WX_BO_COMPILER \
|
||||
",compiler with C++ ABI " __WX_BO_STRINGIZE(__GXX_ABI_VERSION)
|
||||
#endif
|
||||
#define __WX_BO_COMPILER \
|
||||
",compiler with C++ ABI " __WX_BO_STRINGIZE(wxGXX_EFFECTIVE_ABI_VERSION)
|
||||
#elif defined(__GNUG__)
|
||||
#define __WX_BO_COMPILER ",GCC " \
|
||||
__WX_BO_STRINGIZE(__GNUC__) "." __WX_BO_STRINGIZE(__GNUC_MINOR__)
|
||||
|
Loading…
Reference in New Issue
Block a user