llvm10: remove
This commit is contained in:
parent
7a6732cd73
commit
2a124d83af
12 changed files with 5 additions and 374 deletions
|
@ -1012,7 +1012,6 @@ libuchardet.so.0 uchardet-0.0.6_1
|
||||||
libgtksourceviewmm-3.0.so.0 gtksourceviewmm-3.2.0_1
|
libgtksourceviewmm-3.0.so.0 gtksourceviewmm-3.2.0_1
|
||||||
libyajl.so.2 yajl-2.0.1_1
|
libyajl.so.2 yajl-2.0.1_1
|
||||||
libconfuse.so.2 confuse-3.2.1_1
|
libconfuse.so.2 confuse-3.2.1_1
|
||||||
libLLVM-10.so libllvm10-10.0.0_1
|
|
||||||
liblldb.so.11 lldb-11.0.0_1
|
liblldb.so.11 lldb-11.0.0_1
|
||||||
libclang.so.11 libclang-11.0.0_1
|
libclang.so.11 libclang-11.0.0_1
|
||||||
libclang-cpp.so.11 libclang-cpp-11.0.0_1
|
libclang-cpp.so.11 libclang-cpp-11.0.0_1
|
||||||
|
|
1
srcpkgs/llvm10/INSTALL.msg
Normal file
1
srcpkgs/llvm10/INSTALL.msg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
llvm10 is no longer provided by Void Linux
|
|
@ -1,9 +0,0 @@
|
||||||
#include <bits/wordsize.h>
|
|
||||||
|
|
||||||
#if __WORDSIZE == 32
|
|
||||||
#include "llvm-config-32.h"
|
|
||||||
#elif __WORDSIZE == 64
|
|
||||||
#include "llvm-config-64.h"
|
|
||||||
#else
|
|
||||||
#error "Unknown word size"
|
|
||||||
#endif
|
|
|
@ -1,58 +0,0 @@
|
||||||
From faca3fbd15d0c3108493c3c54cd93138e049ac43 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
|
||||||
Date: Tue, 8 Sep 2015 22:03:02 +0200
|
|
||||||
Subject: [PATCH 3/3] musl
|
|
||||||
|
|
||||||
---
|
|
||||||
include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++
|
|
||||||
lib/Support/DynamicLibrary.cpp | 2 +-
|
|
||||||
lib/Support/Unix/Signals.inc | 6 +++---
|
|
||||||
utils/unittest/googletest/src/gtest.cc | 1 +
|
|
||||||
5 files changed, 17 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h
|
|
||||||
index e0a1ee3..465b65a 100644
|
|
||||||
--- a/include/llvm/Analysis/TargetLibraryInfo.h
|
|
||||||
+++ b/include/llvm/Analysis/TargetLibraryInfo.h
|
|
||||||
@@ -18,6 +18,15 @@
|
|
||||||
#include "llvm/IR/PassManager.h"
|
|
||||||
#include "llvm/Pass.h"
|
|
||||||
|
|
||||||
+#undef fopen64
|
|
||||||
+#undef fseeko64
|
|
||||||
+#undef fstat64
|
|
||||||
+#undef fstatvfs64
|
|
||||||
+#undef ftello64
|
|
||||||
+#undef lstat64
|
|
||||||
+#undef stat64
|
|
||||||
+#undef tmpfile64
|
|
||||||
+
|
|
||||||
namespace llvm {
|
|
||||||
template <typename T> class ArrayRef;
|
|
||||||
|
|
||||||
diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
|
|
||||||
index 5780764..1d548c1 100644
|
|
||||||
--- a/utils/unittest/googletest/src/gtest.cc
|
|
||||||
+++ b/utils/unittest/googletest/src/gtest.cc
|
|
||||||
@@ -128,6 +128,7 @@
|
|
||||||
|
|
||||||
#if GTEST_CAN_STREAM_RESULTS_
|
|
||||||
# include <arpa/inet.h> // NOLINT
|
|
||||||
+# include <sys/socket.h> // NOLINT
|
|
||||||
# include <netdb.h> // NOLINT
|
|
||||||
# include <sys/socket.h> // NOLINT
|
|
||||||
# include <sys/types.h> // NOLINT
|
|
||||||
--
|
|
||||||
2.5.1
|
|
||||||
|
|
||||||
--- a/lib/Support/Unix/DynamicLibrary.inc
|
|
||||||
+++ b/lib/Support/Unix/DynamicLibrary.inc
|
|
||||||
@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
|
|
||||||
|
|
||||||
// This macro returns the address of a well-known, explicit symbol
|
|
||||||
#define EXPLICIT_SYMBOL(SYM) \
|
|
||||||
- if (!strcmp(SymbolName, #SYM)) return &SYM
|
|
||||||
+ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
|
|
||||||
|
|
||||||
// Under glibc we have a weird situation. The stderr/out/in symbols are both
|
|
||||||
// macros and global variables because of standards requirements. So, we
|
|
|
@ -1,26 +0,0 @@
|
||||||
This patches LLVM to use ELFv2 on ppc64 uncoditionally unless overridden. We
|
|
||||||
need this because unlike most distros we use ELFv2 for both glibc and musl
|
|
||||||
on big endian ppc64.
|
|
||||||
|
|
||||||
--- a/lib/Target/PowerPC/PPCTargetMachine.cpp
|
|
||||||
+++ b/lib/Target/PowerPC/PPCTargetMachine.cpp
|
|
||||||
@@ -213,9 +213,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
|
|
||||||
|
|
||||||
switch (TT.getArch()) {
|
|
||||||
case Triple::ppc64le:
|
|
||||||
- return PPCTargetMachine::PPC_ABI_ELFv2;
|
|
||||||
case Triple::ppc64:
|
|
||||||
- return PPCTargetMachine::PPC_ABI_ELFv1;
|
|
||||||
+ return PPCTargetMachine::PPC_ABI_ELFv2;
|
|
||||||
default:
|
|
||||||
return PPCTargetMachine::PPC_ABI_UNKNOWN;
|
|
||||||
}
|
|
||||||
--- a/test/CodeGen/PowerPC/ppc64-elf-abi.ll
|
|
||||||
+++ b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
|
|
||||||
@@ -1,4 +1,5 @@
|
|
||||||
-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
|
|
||||||
+; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
|
||||||
+; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
|
||||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
|
|
||||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
|
||||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- llvm/lib/Target/PowerPC/PPCSubtarget.cpp
|
|
||||||
+++ llvm/lib/Target/PowerPC/PPCSubtarget.cpp
|
|
||||||
@@ -150,7 +150,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
|
|
||||||
|
|
||||||
if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
|
|
||||||
TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
|
|
||||||
- TargetTriple.isMusl())
|
|
||||||
+ isTargetLinux())
|
|
||||||
SecurePlt = true;
|
|
||||||
|
|
||||||
if (HasSPE && IsPPC64)
|
|
|
@ -1,18 +0,0 @@
|
||||||
This allows us to override the optimization level as not all platforms can
|
|
||||||
deal with -O3.
|
|
||||||
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -893,6 +893,12 @@ if( MINGW AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )
|
|
||||||
llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
+set(VOID_CXX_OPT_FLAGS "" CACHE STRING "Optimization level to use")
|
|
||||||
+
|
|
||||||
+if(NOT VOID_CXX_OPT_FLAGS STREQUAL "")
|
|
||||||
+ llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "${VOID_CXX_OPT_FLAGS}")
|
|
||||||
+endif()
|
|
||||||
+
|
|
||||||
# Put this before tblgen. Else we have a circular dependence.
|
|
||||||
add_subdirectory(lib/Demangle)
|
|
||||||
add_subdirectory(lib/Support)
|
|
|
@ -1,38 +0,0 @@
|
||||||
From f3dbdd49c06bfafc1d6138094cf42889c14d38b6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Samuel Holland <samuel@sholland.org>
|
|
||||||
Date: Sun, 3 Nov 2019 10:57:27 -0600
|
|
||||||
Subject: [PATCH] [LLVM][PowerPC] Assume BigPIC if no PIC level is specified
|
|
||||||
|
|
||||||
---
|
|
||||||
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp | 2 +-
|
|
||||||
llvm/lib/Target/PowerPC/PPCMCInstLower.cpp | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
|
|
||||||
index 269b84b4e8d..03246a5242c 100644
|
|
||||||
--- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
|
|
||||||
+++ llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
|
|
||||||
@@ -488,7 +488,7 @@ void PPCAsmPrinter::EmitTlsCall(const MachineInstr *MI,
|
|
||||||
|
|
||||||
// Add 32768 offset to the symbol so we follow up the latest GOT/PLT ABI.
|
|
||||||
if (Kind == MCSymbolRefExpr::VK_PLT && Subtarget->isSecurePlt() &&
|
|
||||||
- M->getPICLevel() == PICLevel::BigPIC)
|
|
||||||
+ M->getPICLevel() != PICLevel::SmallPIC)
|
|
||||||
TlsRef = MCBinaryExpr::createAdd(
|
|
||||||
TlsRef, MCConstantExpr::create(32768, OutContext), OutContext);
|
|
||||||
const MachineOperand &MO = MI->getOperand(2);
|
|
||||||
diff --git a/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp b/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
|
|
||||||
index 027e6bd1ba0..ae461f4eea9 100644
|
|
||||||
--- llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
|
|
||||||
+++ llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
|
|
||||||
@@ -116,7 +116,7 @@ static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
|
|
||||||
const MCExpr *Expr = MCSymbolRefExpr::create(Symbol, RefKind, Ctx);
|
|
||||||
// If -msecure-plt -fPIC, add 32768 to symbol.
|
|
||||||
if (Subtarget->isSecurePlt() && TM.isPositionIndependent() &&
|
|
||||||
- M->getPICLevel() == PICLevel::BigPIC &&
|
|
||||||
+ M->getPICLevel() != PICLevel::SmallPIC &&
|
|
||||||
MO.getTargetFlags() == PPCII::MO_PLT)
|
|
||||||
Expr =
|
|
||||||
MCBinaryExpr::createAdd(Expr, MCConstantExpr::create(32768, Ctx), Ctx);
|
|
||||||
--
|
|
||||||
2.23.0
|
|
|
@ -1,25 +0,0 @@
|
||||||
Fix failures in AllocationTests/MappedMemoryTest.* on aarch64:
|
|
||||||
|
|
||||||
Failing Tests (8):
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.AllocAndRelease/3
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.DuplicateNear/3
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.EnabledWrite/3
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.MultipleAllocAndRelease/3
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.SuccessiveNear/3
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.UnalignedNear/3
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroNear/3
|
|
||||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroSizeNear/3
|
|
||||||
|
|
||||||
Upstream-Issue: https://bugs.llvm.org/show_bug.cgi?id=14278#c10
|
|
||||||
|
|
||||||
--- a/lib/Support/Unix/Memory.inc
|
|
||||||
+++ b/lib/Support/Unix/Memory.inc
|
|
||||||
@@ -59,7 +59,7 @@
|
|
||||||
return PROT_READ | PROT_WRITE | PROT_EXEC;
|
|
||||||
case llvm::sys::Memory::MF_EXEC:
|
|
||||||
#if (defined(__FreeBSD__) || defined(__POWERPC__) || defined (__ppc__) || \
|
|
||||||
- defined(_POWER) || defined(_ARCH_PPC))
|
|
||||||
+ defined(_POWER) || defined(_ARCH_PPC) || (defined(__linux__) && defined(__aarch64__)))
|
|
||||||
// On PowerPC, having an executable page that has no read permission
|
|
||||||
// can have unintended consequences. The function InvalidateInstruction-
|
|
||||||
// Cache uses instructions dcbf and icbi, both of which are treated by
|
|
|
@ -1,86 +0,0 @@
|
||||||
From cf54ca458afff1f7827bfbbc939429a00496c4f7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tom Stellard <tstellar@redhat.com>
|
|
||||||
Date: Tue, 18 Aug 2020 10:54:49 -0700
|
|
||||||
Subject: [PATCH] [PowerPC] PPCBoolRetToInt: Skip translation if there is
|
|
||||||
ConstantExpr
|
|
||||||
|
|
||||||
PPCBoolRetToInt collects PHI, Argument, Call and Constant defs related to an `i1` value which later is translated to an `i32`/`i64` value. The `translate` method expects an `i1` value. However, if the `Constant` is a `ConstantExpr`, the type of the `ConstantExpr` might not be `i1`.
|
|
||||||
|
|
||||||
Fixes https://bugs.llvm.org/show_bug.cgi?id=46923 which causes ICE
|
|
||||||
```
|
|
||||||
llvm-project/llvm/lib/IR/Constants.cpp:1924: static llvm::Constant *llvm::ConstantExpr::getZExt(llvm::Constant *, llvm::Type *, bool): Assertion `C->getType()->getScalarSizeInBits() < Ty->getScalarSizeInBits()&& "SrcTy must be smaller than DestTy for ZExt!"' failed.
|
|
||||||
```
|
|
||||||
|
|
||||||
Differential Revision: https://reviews.llvm.org/D85007
|
|
||||||
---
|
|
||||||
llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp | 8 ++++--
|
|
||||||
llvm/test/CodeGen/PowerPC/pr46923.ll | 31 +++++++++++++++++++++
|
|
||||||
2 files changed, 37 insertions(+), 2 deletions(-)
|
|
||||||
create mode 100644 llvm/test/CodeGen/PowerPC/pr46923.ll
|
|
||||||
|
|
||||||
diff --git a/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp b/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp
|
|
||||||
index 2259a29f838..cfe3b3ce2e9 100644
|
|
||||||
--- llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp
|
|
||||||
+++ llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp
|
|
||||||
@@ -90,6 +90,9 @@ class PPCBoolRetToInt : public FunctionPass {
|
|
||||||
|
|
||||||
// Translate a i1 value to an equivalent i32/i64 value:
|
|
||||||
Value *translate(Value *V) {
|
|
||||||
+ assert(V->getType() == Type::getInt1Ty(V->getContext()) &&
|
|
||||||
+ "Expect an i1 value");
|
|
||||||
+
|
|
||||||
Type *IntTy = ST->isPPC64() ? Type::getInt64Ty(V->getContext())
|
|
||||||
: Type::getInt32Ty(V->getContext());
|
|
||||||
|
|
||||||
@@ -227,8 +230,9 @@ class PPCBoolRetToInt : public FunctionPass {
|
|
||||||
// CallInst. Potentially, bitwise operations (AND, OR, XOR, NOT) and sign
|
|
||||||
// extension could also be handled in the future.
|
|
||||||
for (Value *V : Defs)
|
|
||||||
- if (!isa<PHINode>(V) && !isa<Constant>(V) &&
|
|
||||||
- !isa<Argument>(V) && !isa<CallInst>(V))
|
|
||||||
+ if ((!isa<PHINode>(V) && !isa<Constant>(V) && !isa<Argument>(V) &&
|
|
||||||
+ !isa<CallInst>(V)) ||
|
|
||||||
+ isa<ConstantExpr>(V))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
for (Value *V : Defs)
|
|
||||||
diff --git a/llvm/test/CodeGen/PowerPC/pr46923.ll b/llvm/test/CodeGen/PowerPC/pr46923.ll
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000..d6f65508848
|
|
||||||
--- /dev/null
|
|
||||||
+++ llvm/test/CodeGen/PowerPC/pr46923.ll
|
|
||||||
@@ -0,0 +1,31 @@
|
|
||||||
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
||||||
+; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \
|
|
||||||
+; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s
|
|
||||||
+
|
|
||||||
+@bar = external constant i64, align 8
|
|
||||||
+
|
|
||||||
+define i1 @foo() {
|
|
||||||
+; CHECK-LABEL: foo:
|
|
||||||
+; CHECK: # %bb.0: # %entry
|
|
||||||
+; CHECK-NEXT: crxor 4*cr5+lt, 4*cr5+lt, 4*cr5+lt
|
|
||||||
+; CHECK-NEXT: li r3, 0
|
|
||||||
+; CHECK-NEXT: li r4, 1
|
|
||||||
+; CHECK-NEXT: isel r3, r4, r3, 4*cr5+lt
|
|
||||||
+; CHECK-NEXT: blr
|
|
||||||
+entry:
|
|
||||||
+ br label %next
|
|
||||||
+
|
|
||||||
+next:
|
|
||||||
+ br i1 undef, label %true, label %false
|
|
||||||
+
|
|
||||||
+true:
|
|
||||||
+ br label %end
|
|
||||||
+
|
|
||||||
+false:
|
|
||||||
+ br label %end
|
|
||||||
+
|
|
||||||
+end:
|
|
||||||
+ %a = phi i1 [ icmp ugt (i64 0, i64 ptrtoint (i64* @bar to i64)), %true ],
|
|
||||||
+ [ icmp ugt (i64 0, i64 2), %false ]
|
|
||||||
+ ret i1 %a
|
|
||||||
+}
|
|
||||||
--
|
|
||||||
2.18.1
|
|
||||||
|
|
|
@ -1,109 +1,13 @@
|
||||||
# Template file for 'llvm10'
|
# Template file for 'llvm10'
|
||||||
pkgname=llvm10
|
pkgname=llvm10
|
||||||
version=10.0.0
|
version=10.0.0
|
||||||
revision=7
|
revision=8
|
||||||
wrksrc="llvm-${version}.src"
|
build_style=meta
|
||||||
build_style=cmake
|
short_desc="Low Level Virtual Machine (removed package)"
|
||||||
configure_args="
|
|
||||||
-DCMAKE_BUILD_TYPE=Release
|
|
||||||
-DLLVM_INSTALL_UTILS=ON
|
|
||||||
-DLLVM_BUILD_LLVM_DYLIB=ON
|
|
||||||
-DLLVM_LINK_LLVM_DYLIB=ON
|
|
||||||
-DLLVM_ENABLE_RTTI=ON
|
|
||||||
-DLLVM_ENABLE_FFI=ON
|
|
||||||
-DLLVM_BINUTILS_INCDIR=/usr/include"
|
|
||||||
hostmakedepends="groff perl python3 zlib-devel libffi-devel swig"
|
|
||||||
makedepends="python3-devel zlib-devel libffi-devel libedit-devel
|
|
||||||
libxml2-devel binutils-devel libatomic-devel"
|
|
||||||
depends="libllvm10"
|
|
||||||
short_desc="Low Level Virtual Machine"
|
|
||||||
maintainer="q66 <daniel@octaforge.org>"
|
maintainer="q66 <daniel@octaforge.org>"
|
||||||
license="NCSA"
|
license="metapackage"
|
||||||
homepage="https://www.llvm.org"
|
homepage="https://www.llvm.org"
|
||||||
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz"
|
|
||||||
checksum="df83a44b3a9a71029049ec101fb0077ecbbdf5fe41e395215025779099a98fdf"
|
|
||||||
lib32disabled=yes
|
|
||||||
python_version=3
|
|
||||||
|
|
||||||
conflicts="llvm11>=0"
|
|
||||||
|
|
||||||
subpackages="libllvm10"
|
|
||||||
|
|
||||||
post_patch() {
|
|
||||||
# patches
|
|
||||||
cd ${XBPS_BUILDDIR}/llvm-${version}.src
|
|
||||||
for i in ${FILESDIR}/patches/llvm/llvm-*.patch; do
|
|
||||||
msg_normal "Applying $i to llvm\n"
|
|
||||||
patch -sNp1 -i ${i}
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pre_configure() {
|
|
||||||
# Vastly reduce size of debugging symbols:
|
|
||||||
CFLAGS=${CFLAGS/ -g/ -g1}
|
|
||||||
CXXFLAGS=${CXXFLAGS/ -g/ -g1}
|
|
||||||
|
|
||||||
# since gcc9, the build likes to blow up for ppc32 apparently because
|
|
||||||
# of clang being too large for a 24-bit relative call to the PLT, so
|
|
||||||
# optimize for size instead
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
|
||||||
mips*-musl|ppc|ppc-musl) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
|
||||||
msg_normal "Building host tblgen\n"
|
|
||||||
mkdir -p build/HOST
|
|
||||||
cd build/HOST
|
|
||||||
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
|
|
||||||
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
|
|
||||||
cmake ../.. -DCMAKE_BUILD_TYPE=Release
|
|
||||||
make ${makejobs} -C utils/TableGen
|
|
||||||
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/build/HOST/bin/llvm-tblgen"
|
|
||||||
cd ../..
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
|
||||||
i686*) _arch="X86";;
|
|
||||||
x86_64*) _arch="X86";;
|
|
||||||
armv5*) _arch="Armv5te";;
|
|
||||||
armv6*) _arch="Armv6";;
|
|
||||||
armv7*) _arch="Armv7";;
|
|
||||||
aarch64*) _arch="AArch64";;
|
|
||||||
mips*) _arch="Mips";;
|
|
||||||
ppc*) _arch="PowerPC";;
|
|
||||||
esac
|
|
||||||
configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
|
|
||||||
configure_args+=" -DLLVM_HOST_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}"
|
|
||||||
configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install() {
|
|
||||||
vlicense LICENSE.TXT
|
|
||||||
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
|
|
||||||
|
|
||||||
# Fix permissions of static libs
|
|
||||||
chmod -x ${DESTDIR}/usr/lib/*.a
|
|
||||||
|
|
||||||
# Required for multilib.
|
|
||||||
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
|
|
||||||
for _header in llvm-config; do
|
|
||||||
mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
|
|
||||||
vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
|
|
||||||
usr/include/llvm/Config ${_header}.h
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove llvm-config-host in cross builds.
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
|
||||||
rm -f ${DESTDIR}/usr/bin/llvm-config-host
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
libllvm10_package() {
|
libllvm10_package() {
|
||||||
short_desc+=" - runtime library"
|
short_desc+=" - runtime library"
|
||||||
pkg_install() {
|
|
||||||
vmove "usr/lib/libLLVM-*.so*"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
site=https://releases.llvm.org/
|
|
||||||
pattern="'\K[\d\.]*(?=')"
|
|
Loading…
Reference in a new issue