diff mbox series

[oe,meta-oe,2/3] cpprest: Fix build with clang

Message ID 20180523223928.21302-2-raj.khem@gmail.com
State Accepted
Commit 51c6624684a5acfceb2feeb8bd9bfa7f744c1526
Headers show
Series [oe,meta-oe,1/3] procmail: Use build ldflags when invoking native compile/link | expand

Commit Message

Khem Raj May 23, 2018, 10:39 p.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 .../0001-Fix-a-build-problem-on-Clang.patch   | 28 +++++++++++++++++++
 .../0002-Define-virtual-destructor.patch      | 28 +++++++++++++++++++
 .../recipes-support/cpprest/cpprest_2.10.2.bb |  8 ++++--
 3 files changed, 61 insertions(+), 3 deletions(-)
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch

-- 
2.17.0

-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch
new file mode 100644
index 0000000000..dc6b9dfcab
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch
@@ -0,0 +1,28 @@ 
+From 0c07931f77aa9df2da065b633ae66faad5a570ec Mon Sep 17 00:00:00 2001
+From: Wu Yongwei <wuyongwei@gmail.com>
+Date: Tue, 10 Apr 2018 11:29:12 +0800
+Subject: [PATCH] Fix a build problem on Clang.
+
+AND_CAPTURE_MEMBER_FUNCTION_POINTERS workaround had a check for GCC,
+but did not exclude Clang.  Clang has a fake GCC version of 4.2, thus
+caused problems.
+
+Upstream-Status: Backport [https://github.com/Microsoft/cpprestsdk/pull/732]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Release/src/http/client/http_client_asio.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Release/src/http/client/http_client_asio.cpp b/Release/src/http/client/http_client_asio.cpp
+index 4ba3e085..fca4bb5b 100644
+--- a/Release/src/http/client/http_client_asio.cpp
++++ b/Release/src/http/client/http_client_asio.cpp
+@@ -47,7 +47,7 @@
+ #include <unordered_set>
+ #include <memory>
+ 
+-#if defined(__GNUC__)
++#if defined(__GNUC__) && !defined(__clang__)
+ 
+ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
+ #define AND_CAPTURE_MEMBER_FUNCTION_POINTERS
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch
new file mode 100644
index 0000000000..34cbe66974
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch
@@ -0,0 +1,28 @@ 
+From 816d183eb0fe9ab4607cb049b4b792f8df84d5fe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 22 May 2018 22:17:43 -0700
+Subject: [PATCH] Define virtual destructor
+
+Fixes
+error: destructor called on non-final 'pplx::details::linux_scheduler' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
+    __data_.second().~_Tp();
+
+Upstream-Status: Pending [https://github.com/Microsoft/cpprestsdk/issues/747]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Release/include/pplx/pplxlinux.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Release/include/pplx/pplxlinux.h b/Release/include/pplx/pplxlinux.h
+index 6aa1ba35..f3f8d70d 100644
+--- a/Release/include/pplx/pplxlinux.h
++++ b/Release/include/pplx/pplxlinux.h
+@@ -240,6 +240,7 @@ namespace platform
+     {
+     public:
+         _PPLXIMP virtual void schedule( TaskProc_t proc, _In_ void* param);
++    virtual ~linux_scheduler() {}
+     };
+ 
+ } // namespace details
diff --git a/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
index 2ba6fc66cc..1dbe093bee 100644
--- a/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
+++ b/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
@@ -5,9 +5,11 @@  LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${S}/../license.txt;md5=a2e15b954769218ff912468eecd6a02f"
 DEPENDS = "openssl websocketpp zlib boost"
 
-SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master"
-
-SRC_URI += "file://fix-cmake-install.patch"
+SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
+           file://fix-cmake-install.patch \
+           file://0001-Fix-a-build-problem-on-Clang.patch;patchdir=.. \
+           file://0002-Define-virtual-destructor.patch;patchdir=.. \
+           "
 
 # tag 2.10.2
 SRCREV= "fea848e2a77563cf2a6f28f8eab396fd6e787fbf"