From 11f487197951270623cfcb9cd3022d1ad544291c Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sun, 12 Feb 2017 00:34:27 -0300 Subject: clamav-0.99.2-3.parabola1: build against current LLVM --- libre/clamav/Add-support-for-LLVM-3.9.patch | 76 +++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 libre/clamav/Add-support-for-LLVM-3.9.patch (limited to 'libre/clamav/Add-support-for-LLVM-3.9.patch') diff --git a/libre/clamav/Add-support-for-LLVM-3.9.patch b/libre/clamav/Add-support-for-LLVM-3.9.patch new file mode 100644 index 000000000..084d41c1a --- /dev/null +++ b/libre/clamav/Add-support-for-LLVM-3.9.patch @@ -0,0 +1,76 @@ +From fef1bbc259bca9cfaac65a85de877f9b7ed27773 Mon Sep 17 00:00:00 2001 +From: Andreas Cadhalpun +Date: Fri, 14 Oct 2016 20:24:56 +0200 +Subject: Add support for LLVM 3.9 + +Changes: +IRBuilder no longer has a preserveNames template argument. +AtomicOrdering is now a strongly typed enum. + +Patch-Name: Add-support-for-LLVM-3.9.patch +--- + libclamav/c++/bytecode2llvm.cpp | 12 +++++++++++- + libclamav/c++/m4/llvm-flags.m4 | 4 ++-- + 2 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/libclamav/c++/bytecode2llvm.cpp b/libclamav/c++/bytecode2llvm.cpp +index 213847c..252f8f6 100644 +--- a/libclamav/c++/bytecode2llvm.cpp ++++ b/libclamav/c++/bytecode2llvm.cpp +@@ -787,7 +787,11 @@ class RuntimeLimits : public FunctionPass { + AbrtC->setDoesNotThrow(); + #endif + new UnreachableInst(F.getContext(), AbrtBB); ++#if LLVM_VERSION < 39 + IRBuilder Builder(F.getContext()); ++#else ++ IRBuilder<> Builder(F.getContext()); ++#endif + + #if LLVM_VERSION < 38 + Value *Flag = F.arg_begin(); +@@ -825,8 +829,10 @@ class RuntimeLimits : public FunctionPass { + #if LLVM_VERSION < 30 + // store-load barrier: will be a no-op on x86 but not other arches + Builder.CreateCall(LSBarrier, ARRAYREF(Value*, MBArgs, MBArgs+5)); +-#else ++#elif LLVM_VERSION < 39 + Builder.CreateFence(Release); ++#else ++ Builder.CreateFence(AtomicOrdering::Release); + #endif + // Load Flag that tells us we timed out (first byte in bc_ctx) + Value *Cond = Builder.CreateLoad(Flag, true); +@@ -969,7 +975,11 @@ class LLVMCodegen { + Twine BytecodeID; + + TargetFolder Folder; ++#if LLVM_VERSION < 39 + IRBuilder Builder; ++#else ++ IRBuilder Builder; ++#endif + + std::vector globals; + DenseMap GVoffsetMap; +diff --git a/libclamav/c++/m4/llvm-flags.m4 b/libclamav/c++/m4/llvm-flags.m4 +index 345c7ae..9631d5d 100644 +--- a/libclamav/c++/m4/llvm-flags.m4 ++++ b/libclamav/c++/m4/llvm-flags.m4 +@@ -98,14 +98,14 @@ elif test $llvmver_test -lt 290; then + elif test $llvmver_test -lt 360; then + llvmcomp="jit nativecodegen scalaropts ipo" + AC_MSG_RESULT([ok ($llvmver)]) +-elif test $llvmver_test -lt 390; then ++elif test $llvmver_test -lt 400; then + dnl LLVM 3.6.0 removed jit, so we have to use mcjit + dnl and we're using InitializeNativeTargetAsmParser, so we need the architecture specific parsers + llvmcomp="mcjit nativecodegen scalaropts ipo x86asmparser powerpcasmparser" + AC_MSG_RESULT([ok ($llvmver)]) + else + AC_MSG_RESULT([no ($llvmver)]) +- AC_MSG_ERROR([LLVM < 3.9 required, but "$llvmver"($llvmver_test) found]) ++ AC_MSG_ERROR([LLVM < 4.0 required, but "$llvmver"($llvmver_test) found]) + fi + + dnl aquire the required flags to properly link in external LLVM -- cgit v1.2.3