sys-devel/llvm: Patch gcc-8 compatibility in <6
authorMichał Górny <mgorny@gentoo.org>
Sat, 7 Jul 2018 07:27:18 +0000 (09:27 +0200)
committerMichał Górny <mgorny@gentoo.org>
Sat, 7 Jul 2018 07:38:10 +0000 (09:38 +0200)
Thanks to Ben Chaney for providing the patch.

Closes: https://bugs.gentoo.org/655140

sys-devel/llvm/files/5.0.2/0001-Fix-return-type-in-ORC-readMem-client-interface.patch [new file with mode: 0644]
sys-devel/llvm/llvm-4.0.1-r1.ebuild
sys-devel/llvm/llvm-5.0.2.ebuild

diff --git a/sys-devel/llvm/files/5.0.2/0001-Fix-return-type-in-ORC-readMem-client-interface.patch b/sys-devel/llvm/files/5.0.2/0001-Fix-return-type-in-ORC-readMem-client-interface.patch
new file mode 100644 (file)
index 0000000..6eaacec
--- /dev/null
@@ -0,0 +1,31 @@
+From b25d5675b67bd08e25dd093aaaf8c8f4bb1f822e Mon Sep 17 00:00:00 2001
+From: Tilmann Scheller <tschelle@redhat.com>
+Date: Thu, 1 Feb 2018 11:40:01 -0600
+Subject: [PATCH] Fix return type in ORC readMem() client interface.
+
+GCC 8.0.1 detects the type mismatch and causes the compilation to fail. Clang
+and earlier versions of GCC don't detect the issue.
+
+Fixes rhbz#1540620.
+---
+ include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h b/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
+index da02250ba16..bed472e2e0e 100644
+--- a/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
++++ b/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
+@@ -713,8 +713,8 @@ private:
+   uint32_t getTrampolineSize() const { return RemoteTrampolineSize; }
+-  Expected<std::vector<char>> readMem(char *Dst, JITTargetAddress Src,
+-                                      uint64_t Size) {
++  Expected<std::vector<uint8_t>> readMem(char *Dst, JITTargetAddress Src,
++                                         uint64_t Size) {
+     // Check for an 'out-of-band' error, e.g. from an MM destructor.
+     if (ExistingError)
+       return std::move(ExistingError);
+-- 
+2.18.0
+
index 044c8c45feddb5d938694a95232876cabb842624..1df06e2d848c1f7a6112a39a6a05735a4ae19de9 100644 (file)
@@ -79,6 +79,9 @@ src_prepare() {
        # e.g. https://bugs.gentoo.org/617154
        eapply "${FILESDIR}"/4.0.1/0001-cmake-Pass-Wl-z-nodelete-on-Linux-to-prevent-unloadi.patch
 
+       # gcc-8 build failure
+       eapply "${FILESDIR}"/5.0.2/0001-Fix-return-type-in-ORC-readMem-client-interface.patch
+
        # Remove failing test (fixed in newer versions)
        rm test/tools/llvm-symbolizer/print_context.c || die
 
index 768c86f3ad63f9ee9f61f8c515afb2718fd862f4..58c2bb8209591def9878f3184ef20e4f6372fc5a 100644 (file)
@@ -86,6 +86,9 @@ src_prepare() {
        # Fix appending -Wl,-rpath-link on non-Linux (-> FreeBSD).
        eapply "${FILESDIR}"/6.0.9999/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch
 
+       # gcc-8 build failure
+       eapply "${FILESDIR}"/5.0.2/0001-Fix-return-type-in-ORC-readMem-client-interface.patch
+
        # disable use of SDK on OSX, bug #568758
        sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die