Mailinglist Archive: opensuse-factory (745 mails)

< Previous Next >
Re: [opensuse-packaging] Re: [opensuse-factory] Why has -fstack-clash-protection been added to optflags?


On 24/01/2018 12:02, Richard Biener wrote:
Error message from console reads thus:

audacity
Fatal Error: Mismatch between the program and library build versions
detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1002,wx
containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1009,wx
containers,compatible with 2.8).

this seems to be a premature check done by wxWidgets / audacity? They
appear to key on __GXX_ABI_VERSION but almost_nothing_ changes when
this version changes. It's really only for corner cases like fixing
mangling with vectors and attributes. For packages you could also
simply downgrade the ABI version via -fabi-version=N (but then you'd
have to have a way to communicate the ABI version chosen to compile
wxWidgets to wxWidget users). There is also the corresponding
-Wabi=N so you can instead do -Wabi=N (ABI version used to compile
wxWidget).

Can you somehow disable this checking for wxWidgets? It seems_really_
odd they invented this.

Googling reveals the current upstream version has

// 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 1010 (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 <= 1010))
#define wxGXX_EFFECTIVE_ABI_VERSION 1002
#else
#define wxGXX_EFFECTIVE_ABI_VERSION __GXX_ABI_VERSION
#endif

so wouldn't have complained like in bnc#1074040. GCC 7 introduces version
11 which I bet also doesn't affect wxWidgets... quoting the docs:

Version 11, which first appeared in G++ 7, corrects the mangling of
sizeof... expressions and operator names. For multiple entities with
the same name within a function, that are declared in different scopes,
the mangling now changes starting with the twelfth occurrence. It also
implies @option{-fnew-inheriting-ctors}.

Just patch this insanity out ...

Richard.
Seems I was panicking for no reason, audacity built with gcc7 in Leap:42.3 works fine with gcc5 built wxWidgets-3_0-nostl.
Thanks all
Dave
--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >