cmaglie / llvm-clang-build-scripts

0 stars 1 forks source link

llvm+clang not prebuilt for ppc64el (OpenPOWER) systems #1

Open madscientist159 opened 5 years ago

madscientist159 commented 5 years ago

There are no prebuilt packages available for ppc64el (OpenPOWER) systems, despite the software working on those platforms.

OpenPOWER systems are being deployed more widely, especially in education, and having an easy way to install a newer IDE version than the 1.5 version in Debian Experimental would be much appreciated.

I can provide a prebuilt binary on request for publication if that is easiest.

See also arduino/Arduino#8778

madscientist159 commented 5 years ago

Note the following patch is needed to get clang to build on gcc8:

https://bugzilla.redhat.com/attachment.cgi?id=1389687&action=diff

From 5cea35478aaaac7728a50cbafd3770f96162f7ac 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.16.1