ports built with gcc instead of clang will fail to start with a fatal error: 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.6,compatible with 2.8), and your program used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.6,compatible with 2.8). Abort (core dumped) This patch changes the fatal error to a warning to allow the programs to still function. root@upstairs:/usr/ports/x11-toolkits/wxgtk30 # svn diff Index: files/patch-src-common-appbase.cpp =================================================================== --- files/patch-src-common-appbase.cpp (nonexistent) +++ files/patch-src-common-appbase.cpp (working copy) @@ -0,0 +1,15 @@ +--- src/common/appbase.cpp.orig 2014-10-06 14:33:44.000000000 -0700 ++++ src/common/appbase.cpp 2017-06-05 21:16:18.988544000 -0700 +@@ -762,10 +762,10 @@ + msg.Printf(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."), + lib.c_str(), progName.c_str(), prog.c_str()); + +- wxLogFatalError(msg.c_str()); ++ wxLogWarning(msg.c_str()); + + // normally wxLogFatalError doesn't return +- return false; ++ //return false; + } + + return true;
Thank you for your report Jack. Use "category/portname: Summary" so that issues automatically get automatically assigned and notify their maintainers. Please also include the patch in the description as an attachment
Created attachment 183255 [details] Patch to allow ports built with gcc to warn about C++ ABI instead of fatal error
I don't think it's safe. We've had a lot of crashes with clang wx/gcc apps before, and it's better to have this error instead of a crash. The only correct solution is to make everything c++ buildable with clang.
No feedback from submitter! Close?
Looks like it's been fixed. ok to close.