[5/6] webkitgtk: Fix build with clang/libc++ >= 7.0.0

Message ID 20190131065016.21887-5-raj.khem@gmail.com
State Accepted
Commit 8f77aeb09504beeb7dd0fcb301543819dfb16673
Headers show
Series
  • [1/6] mpeg2dec: Fix global symbol tests
Related show

Commit Message

Khem Raj Jan. 31, 2019, 6:50 a.m.
Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 .../webkitgtk/bad_optional_access.patch       | 35 +++++++++++++++++++
 meta/recipes-sato/webkit/webkitgtk_2.22.5.bb  |  1 +
 2 files changed, 36 insertions(+)
 create mode 100644 meta/recipes-sato/webkit/webkitgtk/bad_optional_access.patch

-- 
2.20.1

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-sato/webkit/webkitgtk/bad_optional_access.patch b/meta/recipes-sato/webkit/webkitgtk/bad_optional_access.patch
new file mode 100644
index 0000000000..9d0d50b79e
--- /dev/null
+++ b/meta/recipes-sato/webkit/webkitgtk/bad_optional_access.patch
@@ -0,0 +1,35 @@ 
+unbreak build with libc++ 7
+
+based on
+https://svnweb.freebsd.org/ports/head/www/webkit2-gtk3/files/patch-Source_WTF_wtf_Optional.h?view=markup&pathrev=477812
+
+Fixes
+
+/usr/include/c++/v1/optional:171:29: error: redefinition of 'bad_optional_access'
+class _LIBCPP_EXCEPTION_ABI bad_optional_access
+                            ^
+DerivedSources/ForwardingHeaders/wtf/Optional.h:295:7: note: previous definition is here
+class bad_optional_access : public std::logic_error {
+      ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/Source/WTF/wtf/Optional.h
++++ b/Source/WTF/wtf/Optional.h
+@@ -276,14 +276,14 @@ struct nullopt_t
+ };
+ constexpr nullopt_t nullopt{nullopt_t::init()};
+ 
+-
++# if !defined(_LIBCPP_VERSION) || _LIBCPP_VERSION < 7000
+ // 20.5.8, class bad_optional_access
+ class bad_optional_access : public std::logic_error {
+ public:
+   explicit bad_optional_access(const std::string& what_arg) : std::logic_error{what_arg} {}
+   explicit bad_optional_access(const char* what_arg) : std::logic_error{what_arg} {}
+ };
+-
++# endif // _LIBCPP_VERSION < 7000
+ 
+ template <class T>
+ union storage_t
diff --git a/meta/recipes-sato/webkit/webkitgtk_2.22.5.bb b/meta/recipes-sato/webkit/webkitgtk_2.22.5.bb
index e3579e472b..3d8c0338c7 100644
--- a/meta/recipes-sato/webkit/webkitgtk_2.22.5.bb
+++ b/meta/recipes-sato/webkit/webkitgtk_2.22.5.bb
@@ -20,6 +20,7 @@  SRC_URI = "http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
            file://0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch \
            file://0001-Fix-build-with-musl.patch \
            file://detect-gstreamer-gl.patch \
+           file://bad_optional_access.patch \
            "
 
 SRC_URI[md5sum] = "96a731522b800f38e70f85c22f8de477"