cpprest: Fix build with clang

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj
2018-05-22 22:24:00 -07:00
parent 8b7834aba8
commit 51c6624684
3 changed files with 61 additions and 3 deletions
@@ -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
@@ -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
@@ -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"