summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/llvm7/ppc32-calling-convention.patch69
-rw-r--r--user/llvm8/APKBUILD (renamed from user/llvm7/APKBUILD)11
-rw-r--r--user/llvm8/disable-FileSystemTest.CreateDir-perms-assert.patch (renamed from user/llvm7/disable-FileSystemTest.CreateDir-perms-assert.patch)0
-rw-r--r--user/llvm8/disable-dlclose-test.patch (renamed from user/llvm7/disable-dlclose-test.patch)0
-rw-r--r--user/llvm8/even-more-secure-plt.patch (renamed from user/llvm7/even-more-secure-plt.patch)0
-rw-r--r--user/llvm8/llvm-fix-build-with-musl-libc.patch (renamed from user/llvm7/llvm-fix-build-with-musl-libc.patch)0
-rw-r--r--user/llvm8/more-secure-plt.patch (renamed from user/llvm7/more-secure-plt.patch)4
-rw-r--r--user/llvm8/musl-ppc64-elfv2.patch (renamed from user/llvm7/musl-ppc64-elfv2.patch)0
-rw-r--r--user/llvm8/python3-test.patch (renamed from user/llvm7/python3-test.patch)0
9 files changed, 8 insertions, 76 deletions
diff --git a/user/llvm7/ppc32-calling-convention.patch b/user/llvm7/ppc32-calling-convention.patch
deleted file mode 100644
index 2e6d66427..000000000
--- a/user/llvm7/ppc32-calling-convention.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Index: trunk/lib/Target/PowerPC/PPCISelLowering.cpp
-===================================================================
---- trunk/lib/Target/PowerPC/PPCISelLowering.cpp
-+++ trunk/lib/Target/PowerPC/PPCISelLowering.cpp
-@@ -3511,9 +3511,14 @@
- // Argument stored in memory.
- assert(VA.isMemLoc());
-
-+ // Get the extended size of the argument type in stack
- unsigned ArgSize = VA.getLocVT().getStoreSize();
-- int FI = MFI.CreateFixedObject(ArgSize, VA.getLocMemOffset(),
-- isImmutable);
-+ // Get the actual size of the argument type
-+ unsigned ObjSize = VA.getValVT().getStoreSize();
-+ unsigned ArgOffset = VA.getLocMemOffset();
-+ // Stack objects in PPC32 are right justified.
-+ ArgOffset += ArgSize - ObjSize;
-+ int FI = MFI.CreateFixedObject(ArgSize, ArgOffset, isImmutable);
-
- // Create load nodes to retrieve arguments from the stack.
- SDValue FIN = DAG.getFrameIndex(FI, PtrVT);
-@@ -5468,10 +5473,15 @@
- Arg = PtrOff;
- }
-
-- if (VA.isRegLoc()) {
-- if (Arg.getValueType() == MVT::i1)
-- Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i32, Arg);
-+ // When useCRBits() is true, there can be i1 arguments.
-+ // It is because getRegisterType(MVT::i1) => MVT::i1,
-+ // and for other integer types getRegisterType() => MVT::i32.
-+ // Extend i1 and ensure callee will get i32.
-+ if (Arg.getValueType() == MVT::i1)
-+ Arg = DAG.getNode(Flags.isSExt() ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND,
-+ dl, MVT::i32, Arg);
-
-+ if (VA.isRegLoc()) {
- seenFloatArg |= VA.getLocVT().isFloatingPoint();
- // Put argument in a physical register.
- RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-Index: trunk/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll
-===================================================================
---- trunk/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll
-+++ trunk/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll
-@@ -0,0 +1,24 @@
-+; RUN: llc -verify-machineinstrs < %s -mcpu=ppc32 -mattr=+crbits | FileCheck %s
-+target triple = "powerpc-unknown-linux-gnu"
-+
-+define void @check_callee(
-+ i32, i32, i32, i32,
-+ i32, i32, i32, i32,
-+ i1 zeroext %s1
-+) {
-+ call void @check_caller(
-+ i32 9, i32 9, i32 9, i32 9,
-+ i32 9, i32 9, i32 9, i32 9,
-+ i1 zeroext %s1)
-+ ret void
-+}
-+
-+; CHECK-LABEL: @check_callee
-+; CHECK: lbz {{[0-9]+}}, 27(1)
-+; CHECK: stw {{[0-9]+}}, 8(1)
-+
-+declare void @check_caller(
-+ i32, i32, i32, i32,
-+ i32, i32, i32, i32,
-+ i1 zeroext
-+)
diff --git a/user/llvm7/APKBUILD b/user/llvm8/APKBUILD
index d4b78cef0..b2a2ff991 100644
--- a/user/llvm7/APKBUILD
+++ b/user/llvm8/APKBUILD
@@ -3,7 +3,7 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
_pkgname=llvm
-pkgver=7.0.1
+pkgver=8.0.0
_majorver=${pkgver%%.*}
pkgname=$_pkgname$_majorver
pkgrel=0
@@ -24,7 +24,6 @@ source="https://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz
musl-ppc64-elfv2.patch
more-secure-plt.patch
even-more-secure-plt.patch
- ppc32-calling-convention.patch
python3-test.patch
"
builddir="$srcdir/$_pkgname-$pkgver.src"
@@ -114,6 +113,9 @@ build() {
check() {
cd "$builddir"/build
+ # appears to be an issue on musl and glibc, but only fails on musl:
+ # https://github.com/NixOS/nixpkgs/blob/bb7e9e46/pkgs/development/compilers/llvm/8/llvm.nix#L74
+ rm "$builddir"/test/CodeGen/AArch64/wineh4.mir
# FIXME: Few tests fail on s390x, ignore it for now. See build log
# https://gist.github.com/jirutka/6edc951ad5b8002cf1780546cf661edc
case "$CARCH" in
@@ -241,12 +243,11 @@ _mv() {
mv $@
}
-sha512sums="ac43a3cb71a53deb55e3693653847cf20bf6f5d9056f224e6956c96d63bc59ebee9404f088eec9cabe65337b4607a905ef931354b373cf64e0004c6905a6b5df llvm-7.0.1.src.tar.xz
+sha512sums="1602343b451b964f5d8c2d6b0654d89384c80d45883498c5f0e2f4196168dd4a1ed2a4dadb752076020243df42ffe46cb31d82ffc145d8e5874163cbb9686a1f llvm-8.0.0.src.tar.xz
f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71 llvm-fix-build-with-musl-libc.patch
49c47f125014b60d0ea7870f981a2c1708ad705793f89287ed846ee881a837a4dc0170bf467e03f2ef56177473128945287749ac80dc2d13cfabcf8b929ba58a disable-FileSystemTest.CreateDir-perms-assert.patch
caeec8e4dbd92f5f74940780b69075f3879a267a8623822cbdc193fd14706eb089071e3a5a20d60cc2eca59e4c5b2a61d29827a2f3362ee7c5f74f11d9ace200 disable-dlclose-test.patch
e5ddbc4b6c4928e79846dc3c022eb7928aaa8fed40515c78f5f03b8ab8264f34f1eb8aa8bfc0f436450932f4917e54ad261603032092ea271d9590f11a37cf1e musl-ppc64-elfv2.patch
-dcd34b81c2f2843cd05b2e3b88e268045a2ec6ed8677630fc8904f38b2131cbc0ba37dde461e28b1c301d5e95b634b2e225797f8a5585c0cabc69e3b7e78de85 more-secure-plt.patch
+957516510439be661ad04e061e9616da8a271a5621603238cde5b4782bd2465367eaaa5ade628d163c8d9e70b8b0495687669f4648bd031ac6e5a1582d2e75a4 more-secure-plt.patch
deb71762721ebc73bfdf23143b582f40c70eddcef3e337ed14499e8e336bee2906292d38d64fe98fa633430c1bcb66cf6a2e067258c8fbe6e931f99f6d10a6f7 even-more-secure-plt.patch
-c3f596a1578a07ce0ee40c4e2576fe05ca6ca0c1b4f94b1f74c55cb09603afe7c846db9294fe28d83ca48633086bad422218e6d06e0d92173143fb298e06fb38 ppc32-calling-convention.patch
53cc0d13dd871e9b775bb4e7567de4f9a97d91b8246cd7ce74607fd88d6e3e2ab9455f5b4195bc7f9dbdedbc77d659d43e98ec0b7cd78cd395aaea6919510287 python3-test.patch"
diff --git a/user/llvm7/disable-FileSystemTest.CreateDir-perms-assert.patch b/user/llvm8/disable-FileSystemTest.CreateDir-perms-assert.patch
index e73ce9b6f..e73ce9b6f 100644
--- a/user/llvm7/disable-FileSystemTest.CreateDir-perms-assert.patch
+++ b/user/llvm8/disable-FileSystemTest.CreateDir-perms-assert.patch
diff --git a/user/llvm7/disable-dlclose-test.patch b/user/llvm8/disable-dlclose-test.patch
index b70cd4d4d..b70cd4d4d 100644
--- a/user/llvm7/disable-dlclose-test.patch
+++ b/user/llvm8/disable-dlclose-test.patch
diff --git a/user/llvm7/even-more-secure-plt.patch b/user/llvm8/even-more-secure-plt.patch
index 112e111b8..112e111b8 100644
--- a/user/llvm7/even-more-secure-plt.patch
+++ b/user/llvm8/even-more-secure-plt.patch
diff --git a/user/llvm7/llvm-fix-build-with-musl-libc.patch b/user/llvm8/llvm-fix-build-with-musl-libc.patch
index 6ee91ea44..6ee91ea44 100644
--- a/user/llvm7/llvm-fix-build-with-musl-libc.patch
+++ b/user/llvm8/llvm-fix-build-with-musl-libc.patch
diff --git a/user/llvm7/more-secure-plt.patch b/user/llvm8/more-secure-plt.patch
index 1a32eea4f..6728e2765 100644
--- a/user/llvm7/more-secure-plt.patch
+++ b/user/llvm8/more-secure-plt.patch
@@ -16,13 +16,13 @@ index c583fba8cab..6a9eedf89c5 100644
--- a/lib/Target/PowerPC/PPCTargetMachine.cpp
+++ b/lib/Target/PowerPC/PPCTargetMachine.cpp
@@ -222,6 +222,10 @@ static Reloc::Model getEffectiveRelocModel(const Triple &TT,
- if (TT.getArch() == Triple::ppc64 || TT.getArch() == Triple::ppc64le)
+ if (TT.getArch() == Triple::ppc64)
return Reloc::PIC_;
+ // musl needs SecurePlt, which depends on PIC.
+ if (TT.getEnvironment() == Triple::Musl)
+ return Reloc::PIC_;
+
- // 32-bit is static by default.
+ // Rest are static by default.
return Reloc::Static;
}
diff --git a/user/llvm7/musl-ppc64-elfv2.patch b/user/llvm8/musl-ppc64-elfv2.patch
index 016be5dad..016be5dad 100644
--- a/user/llvm7/musl-ppc64-elfv2.patch
+++ b/user/llvm8/musl-ppc64-elfv2.patch
diff --git a/user/llvm7/python3-test.patch b/user/llvm8/python3-test.patch
index 746313317..746313317 100644
--- a/user/llvm7/python3-test.patch
+++ b/user/llvm8/python3-test.patch