diff options
-rw-r--r-- | user/llvm7/ppc32-calling-convention.patch | 69 | ||||
-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 |