summarylogtreecommitdiffstats
path: root/llvm8.patch
diff options
context:
space:
mode:
authorMichael Lass2019-12-01 18:23:55 +0100
committerMichael Lass2019-12-01 22:34:13 +0100
commit90648e8c5be33987cd92bfac910b2e9db1fc21db (patch)
tree9938ffc2cb666b5a4be68c98c4aecb09ad4aa777 /llvm8.patch
parentd58cef24046d2e4e882c71c53fddd7df4fd4cc0f (diff)
downloadaur-90648e8c5be33987cd92bfac910b2e9db1fc21db.tar.gz
Fix build against current git version
This introduces a couple of changes: * match more closely the version in the community repository * change git url to github as it contains newer commits * build against LLVM 7, as this is currently the most recent version supported by upstream * add optional patch to resolve undefined behavior / segfaults * build with cmake and ninja
Diffstat (limited to 'llvm8.patch')
-rw-r--r--llvm8.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/llvm8.patch b/llvm8.patch
new file mode 100644
index 000000000000..15128d1a1151
--- /dev/null
+++ b/llvm8.patch
@@ -0,0 +1,56 @@
+From 75c152599a7c1739e6dadcdb9b377acf7e44d9cf Mon Sep 17 00:00:00 2001
+From: Jan Beich <jbeich@FreeBSD.org>
+Date: Wed, 30 Jan 2019 12:42:34 +0000
+Subject: [PATCH] lang/beignet: unbreak with llvm80
+
+Regressed by https://github.com/llvm/llvm-project/commit/721d95713a9e
+
+unable to load /usr/local/lib/beignet//libgbeinterp.so which is part of the driver, please check!
+ld-elf.so.1: /usr/local/lib/beignet//libgbeinterp.so: Undefined symbol "_ZN4llvm24DisableABIBreakingChecksE"
+
+Regressed by https://github.com/llvm/llvm-project/commit/4a2d58e16acc
+
+backend/src/llvm/llvm_gen_backend.cpp:3076:5: error:
+ unknown type name 'TerminatorInst'
+ TerminatorInst *term = bb->getTerminator();
+ ^
+backend/src/llvm/llvm_gen_backend.cpp:3083:5: error:
+ unknown type name 'TerminatorInst'
+ TerminatorInst *term = bb->getTerminator();
+ ^
+
+--- backend/src/CMakeLists.txt.orig 2017-09-22 08:05:22 UTC
++++ backend/src/CMakeLists.txt
+@@ -168,6 +168,7 @@ add_dependencies(gbe beignet_bitcode)
+ endif (NOT (USE_STANDALONE_GBE_COMPILER STREQUAL "true"))
+
+ add_library(gbeinterp SHARED gbe_bin_interpreter.cpp)
++target_link_libraries(gbeinterp ${LLVM_MODULE_LIBS})
+
+ if (LLVM_VERSION_NODOT VERSION_EQUAL 34)
+ find_library(TERMINFO NAMES tinfo ncurses)
+--- backend/src/llvm/llvm_gen_backend.cpp.orig 2017-10-24 06:04:48 UTC
++++ backend/src/llvm/llvm_gen_backend.cpp
+@@ -3073,14 +3073,22 @@ namespace gbe
+
+
+ static unsigned getChildNo(BasicBlock *bb) {
++#if LLVM_VERSION_MAJOR < 8
+ TerminatorInst *term = bb->getTerminator();
++#else
++ Instruction *term = bb->getTerminator();
++#endif
+ return term->getNumSuccessors();
+ }
+
+ // return NULL if index out-range of children number
+ static BasicBlock *getChildPossible(BasicBlock *bb, unsigned index) {
+
++#if LLVM_VERSION_MAJOR < 8
+ TerminatorInst *term = bb->getTerminator();
++#else
++ Instruction *term = bb->getTerminator();
++#endif
+ unsigned childNo = term->getNumSuccessors();
+ BasicBlock *child = NULL;
+ if(index < childNo) {