[packages/wxWidgets] - fix building with gcc 6.x - relax oversensitive abi check
baggins
baggins at pld-linux.org
Sat Apr 15 23:44:56 CEST 2017
commit 5157e719a6aa3af9526da9136ac7a89e7e1aec33
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sat Apr 15 23:44:32 2017 +0200
- fix building with gcc 6.x
- relax oversensitive abi check
gcc6.patch | 37 +++++++++++++++++++++++++++++++++++++
relax-abicheck.patch | 35 +++++++++++++++++++++++++++++++++++
wxWidgets.spec | 4 ++++
3 files changed, 76 insertions(+)
---
diff --git a/wxWidgets.spec b/wxWidgets.spec
index 0e45dcb..473f773 100644
--- a/wxWidgets.spec
+++ b/wxWidgets.spec
@@ -25,6 +25,8 @@ Patch2: %{name}-link.patch
Patch3: export-wxGetRootWindow.patch
Patch4: %{name}-c++.patch
Patch5: %{name}-gifdelay.patch
+Patch6: relax-abicheck.patch
+Patch7: gcc6.patch
URL: http://www.wxWidgets.org/
%{?with_directfb:BuildRequires: DirectFB-devel >= 0.9.23}
BuildRequires: OpenGL-GLU-devel
@@ -780,6 +782,8 @@ obsługą UNICODE.
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
%{__rm} build/aclocal/bakefile*.m4
diff --git a/gcc6.patch b/gcc6.patch
new file mode 100644
index 0000000..c2bf5de
--- /dev/null
+++ b/gcc6.patch
@@ -0,0 +1,37 @@
+commit 73e9e18ea09ffffcaac50237def0d9728a213c02
+Author: Scott Talbert <swt at techie.net>
+Date: Sat Feb 20 00:08:14 2016 -0500
+
+ Fix STC compilation with GCC6
+
+ Use std::abs() from <cmath> instead of abs() from <math.h> to avoid problems
+ with ambiguous overloads.
+
+ Closes #17147.
+
+ Closes https://github.com/wxWidgets/wxWidgets/pull/222
+
+diff --git a/src/stc/scintilla/src/Editor.cxx b/src/stc/scintilla/src/Editor.cxx
+index cd72953a..2081df28 100644
+--- a/src/stc/scintilla/src/Editor.cxx
++++ b/src/stc/scintilla/src/Editor.cxx
+@@ -11,6 +11,7 @@
+ #include <ctype.h>
+ #include <assert.h>
+
++#include <cmath>
+ #include <string>
+ #include <vector>
+ #include <map>
+@@ -5841,9 +5842,9 @@ void Editor::GoToLine(int lineNo) {
+ }
+
+ static bool Close(Point pt1, Point pt2) {
+- if (abs(pt1.x - pt2.x) > 3)
++ if (std::abs(pt1.x - pt2.x) > 3)
+ return false;
+- if (abs(pt1.y - pt2.y) > 3)
++ if (std::abs(pt1.y - pt2.y) > 3)
+ return false;
+ return true;
+ }
diff --git a/relax-abicheck.patch b/relax-abicheck.patch
new file mode 100644
index 0000000..2ba14fe
--- /dev/null
+++ b/relax-abicheck.patch
@@ -0,0 +1,35 @@
+Description: Relax error about mismatching C++ ABI version to warning
+ In practice, the differences between ABI versions 2 and 8 don't seem to be
+ incompatible since they apparently only affect obscure corner cases. So
+ relax this error to a warning so we don't have to rebuild the entire wx world
+ in one go.
+Author: Olly Betts <olly at survex.com>
+Forwarded: no
+Last-Update: 2015-06-29
+
+--- wxwidgets3.0-3.0.2.orig/src/common/appbase.cpp
++++ wxwidgets3.0-3.0.2/src/common/appbase.cpp
+@@ -762,6 +762,23 @@ bool wxAppConsoleBase::CheckBuildOptions
+ 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());
+
++
++ int l_off = lib.Find("compiler with C++ ABI ");
++ int p_off = prog.Find("compiler with C++ ABI ");
++ if (l_off != wxNOT_FOUND && p_off != wxNOT_FOUND) {
++ int space;
++ space = lib.Find(' ', l_off);
++ lib.erase(l_off, space - l_off);
++ space = prog.Find(' ', l_off);
++ prog.erase(p_off, space - p_off);
++ if (lib == prog) {
++ // Only difference is the ABI version, which apparently only
++ // affect obscure cases, so just warn.
++ wxLogWarning(msg.c_str());
++ return false;
++ }
++ }
++
+ wxLogFatalError(msg.c_str());
+
+ // normally wxLogFatalError doesn't return
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/wxWidgets.git/commitdiff/5157e719a6aa3af9526da9136ac7a89e7e1aec33
More information about the pld-cvs-commit
mailing list