summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/clang/APKBUILD104
-rw-r--r--system/clang/clang-0001-Add-Alpine-Linux-distro.patch37
-rw-r--r--system/clang/clang-0002-Use-z-relro-on-Alpine-Linux.patch16
-rw-r--r--system/clang/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch16
-rw-r--r--system/clang/clang-0004-Add-musl-targets.patch116
-rw-r--r--system/clang/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch55
-rw-r--r--system/clang/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch19
-rw-r--r--system/clang/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch54
-rw-r--r--system/llvm4/fix-CheckAtomic.cmake.patch22
-rw-r--r--system/llvm4/llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch33
-rw-r--r--system/llvm4/musl-ppc64-elfv2.patch14
-rw-r--r--system/llvm4/silent-amdgpu-test-failing.patch40
-rw-r--r--user/clang/0001-Add-support-for-Ad-lie-Linux.patch78
-rw-r--r--user/clang/0008-Fix-ClangConfig-cmake-LLVM-path.patch25
-rw-r--r--user/clang/APKBUILD88
-rw-r--r--user/clang/use-llvm-lit.patch11
-rw-r--r--user/llvm6/APKBUILD (renamed from system/llvm4/APKBUILD)32
-rw-r--r--user/llvm6/cmake-fix-libLLVM-name.patch (renamed from system/llvm4/cmake-fix-libLLVM-name.patch)0
-rw-r--r--user/llvm6/disable-FileSystemTest.CreateDir-perms-assert.patch (renamed from system/llvm4/disable-FileSystemTest.CreateDir-perms-assert.patch)0
-rw-r--r--user/llvm6/disable-dlclose-test.patch18
-rw-r--r--user/llvm6/llvm-fix-build-with-musl-libc.patch (renamed from system/llvm4/llvm-fix-build-with-musl-libc.patch)0
-rw-r--r--user/llvm6/musl-ppc64-elfv2.patch13
22 files changed, 243 insertions, 548 deletions
diff --git a/system/clang/APKBUILD b/system/clang/APKBUILD
deleted file mode 100644
index f21b0f63b..000000000
--- a/system/clang/APKBUILD
+++ /dev/null
@@ -1,104 +0,0 @@
-# Contributor Travis Tilley <ttilley@gmail.com>
-# Maintainer: A. Wilcox <awilfox@adelielinux.org>
-pkgname=clang
-# Note: Update together with llvm.
-pkgver=4.0.0
-pkgrel=0
-_llvmver=${pkgver%%.*}
-pkgdesc="A C language family front-end for LLVM"
-arch="all"
-options="!dbg"
-url="http://llvm.org/"
-license="NCSA"
-makedepends="
- cmake
- isl-dev
- libedit-dev
- libxml2-dev
- libxml2-utils
- llvm-dev>=$_llvmver
- llvm-static>=$_llvmver
- llvm-test-utils>=$_llvmver
- "
-depends_dev="$pkgname=$pkgver-r$pkgrel"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs
- $pkgname-analyzer::noarch"
-source="https://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz
- clang-0001-Add-Alpine-Linux-distro.patch
- clang-0002-Use-z-relro-on-Alpine-Linux.patch
- clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch
- clang-0004-Add-musl-targets.patch
- clang-0005-Enable-PIE-by-default-for-alpine-linux.patch
- clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch
- clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch
- "
-builddir="$srcdir/cfe-$pkgver.src"
-
-build() {
- mkdir -p "$builddir"/build
- cd "$builddir"/build
-
- cmake .. -Wno-dev \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_VERBOSE_MAKEFILE=OFF \
- \
- -DCLANG_VENDOR=${DISTRO_SHORT_NAME:-Alpine} \
- -DCLANG_BUILD_EXAMPLES=OFF \
- -DCLANG_INCLUDE_DOCS=ON \
- -DCLANG_INCLUDE_TESTS=ON \
- -DCLANG_PLUGIN_SUPPORT=ON \
- -DLIBCLANG_BUILD_STATIC=ON \
- -DLLVM_ENABLE_EH=ON \
- -DLLVM_ENABLE_RTTI=ON
-
- make clang-tblgen
- make
-}
-
-check() {
- cd "$builddir"/build
-
- make check-clang
-}
-
-package() {
- cd "$builddir"/build
-
- make DESTDIR="$pkgdir" install
- install -m 644 lib/libclang.a "$pkgdir"/usr/lib
- mkdir -p "$pkgdir"/etc
- cat >"$pkgdir"/etc/alpine-release <<-EOF
-Adélie Linux 1.0 (like Alpine 3.8)
-EOF
-}
-
-static() {
- pkgdesc="Static libraries for clang"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
-}
-
-analyzer() {
- pkgdesc="Clang source code analysis framework"
- depends="$pkgname=$pkgver-r$pkgrel perl python3"
-
- cd "$pkgdir"
-
- mkdir -p "$subpkgdir"/usr/bin \
- "$subpkgdir"/usr/libexec \
- "$subpkgdir"/usr/share/
- mv usr/bin/scan-* "$subpkgdir"/usr/bin/
- mv usr/libexec/*-analyzer "$subpkgdir"/usr/libexec/
- mv usr/share/scan-* "$subpkgdir"/usr/share/
-}
-
-sha512sums="a0d9972ec337a5c105fcbe7abc4076ba1e580f28908a3318f43bbfe59143f446ed5b78dad210f624145d7e5a3d56c15bfead78826c068422b60120fa1cfa482a cfe-4.0.0.src.tar.xz
-4014984a187e4d0331d8315727d1b831e573843cd8d113df43424524cb348bc73ce3d12783351d9a14f9fd14111d75ce71d8f2a85d82b6437a61b11d85796cfb clang-0001-Add-Alpine-Linux-distro.patch
-53741890ec3805dd0d5a930ed526cb5bac5f75c459c6910c9461017719186383cf54638af4eea7a38eb7f9f423b18086bd5584b11f7e4babf6cd0edf8b4f4f48 clang-0002-Use-z-relro-on-Alpine-Linux.patch
-f06e351785d5755827459f17d3533415772ba84b4fbd4e49f418bafd20394e98d42b33a94aa34cff2a7b54c79cf06a6f5d382af5a55cba63a81116f0568d4b25 clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch
-2998ab2dfbc3d5629dd7e65e7e39dc0ab96f61e24733cb8d2d4faee50a89f0f159ad44d10182ed4c96f060180f4e22510881f4e9eb00ced01278bde99adf3389 clang-0004-Add-musl-targets.patch
-6215080a796fa1fc6f7634781ef77fc245037880dbf075a656823aae5f9f4911294dc6d61172db399b063adbe445c38b73cec12fc66dbe16bd9d84dc58035846 clang-0005-Enable-PIE-by-default-for-alpine-linux.patch
-d151a6ecca470abb1f4dbc06910155db0688322475655e28cdcb9c0b21930c8bcaf166e9df9fc9dca1be654cf497587961e461d91ee2871fdf454bbd33c5fffe clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch
-f8c46bb64202c9233595362eb54288c30fbd28309308cbcafe1802dc50ffd676c7a70e6cbdbfd73464f872b40a90acd2eb736dcc9622fd434dbd44a5b0005027 clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch"
diff --git a/system/clang/clang-0001-Add-Alpine-Linux-distro.patch b/system/clang/clang-0001-Add-Alpine-Linux-distro.patch
deleted file mode 100644
index f69baf5b8..000000000
--- a/system/clang/clang-0001-Add-Alpine-Linux-distro.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Natanael Copa <ncopa@alpinelinux.org>
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 16 Apr 2017 16:49:00 +0100
-Subject: [PATCH] Add Alpine Linux distro
-
---- a/include/clang/Driver/Distro.h
-+++ b/include/clang/Driver/Distro.h
-@@ -26,6 +26,7 @@
- // NB: Releases of a particular Linux distro should be kept together
- // in this enum, because some tests are done by integer comparison against
- // the first and last known member in the family, e.g. IsRedHat().
-+ AlpineLinux,
- ArchLinux,
- DebianLenny,
- DebianSqueeze,
-@@ -97,6 +98,10 @@
- /// @name Convenience Predicates
- /// @{
-
-+ bool IsAlpineLinux() const {
-+ return DistroVal == AlpineLinux;
-+ }
-+
- bool IsRedhat() const {
- return DistroVal == Fedora || (DistroVal >= RHEL5 && DistroVal <= RHEL7);
- }
---- a/lib/Driver/Distro.cpp
-+++ b/lib/Driver/Distro.cpp
-@@ -128,6 +128,9 @@
- if (VFS.exists("/etc/arch-release"))
- return Distro::ArchLinux;
-
-+ if (VFS.exists("/etc/alpine-release"))
-+ return Distro::AlpineLinux;
-+
- return Distro::UnknownDistro;
- }
diff --git a/system/clang/clang-0002-Use-z-relro-on-Alpine-Linux.patch b/system/clang/clang-0002-Use-z-relro-on-Alpine-Linux.patch
deleted file mode 100644
index 45fce6e13..000000000
--- a/system/clang/clang-0002-Use-z-relro-on-Alpine-Linux.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-From: Natanael Copa <ncopa@alpinelinux.org>
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 16 Apr 2017 16:49:00 +0100
-Subject: [PATCH] Use "-z relro" on Alpine Linux
-
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -4112,7 +4112,7 @@
-
- Distro Distro(D.getVFS());
-
-- if (Distro.IsOpenSUSE() || Distro.IsUbuntu()) {
-+ if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux()) {
- ExtraOpts.push_back("-z");
- ExtraOpts.push_back("relro");
- }
diff --git a/system/clang/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch b/system/clang/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch
deleted file mode 100644
index 0b6632328..000000000
--- a/system/clang/clang-0003-Use-hash-style-gnu-for-Alpine-Linux.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-From: Natanael Copa <ncopa@alpinelinux.org>
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 16 Apr 2017 16:49:00 +0100
-Subject: [PATCH] Use --hash-style=gnu for Alpine Linux
-
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -4132,7 +4132,7 @@
- // ABI requires a mapping between the GOT and the symbol table.
- // Android loader does not support .gnu.hash.
- if (!IsMips && !IsAndroid) {
-- if (Distro.IsRedhat() || Distro.IsOpenSUSE() ||
-+ if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() ||
- (Distro.IsUbuntu() && Distro >= Distro::UbuntuMaverick))
- ExtraOpts.push_back("--hash-style=gnu");
-
diff --git a/system/clang/clang-0004-Add-musl-targets.patch b/system/clang/clang-0004-Add-musl-targets.patch
deleted file mode 100644
index d77294980..000000000
--- a/system/clang/clang-0004-Add-musl-targets.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From: Natanael Copa <ncopa@alpinelinux.org>
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 16 Apr 2017 16:49:00 +0100
-Subject: [PATCH] Add musl targets
-
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -1644,7 +1644,8 @@
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
- LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
-- if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) {
-+ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF ||
-+ TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
- TripleAliases.append(begin(ARMHFTriples), end(ARMHFTriples));
- } else {
- TripleAliases.append(begin(ARMTriples), end(ARMTriples));
-@@ -1653,7 +1654,8 @@
- case llvm::Triple::armeb:
- case llvm::Triple::thumbeb:
- LibDirs.append(begin(ARMebLibDirs), end(ARMebLibDirs));
-- if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) {
-+ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF ||
-+ TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
- TripleAliases.append(begin(ARMebHFTriples), end(ARMebHFTriples));
- } else {
- TripleAliases.append(begin(ARMebTriples), end(ARMebTriples));
-@@ -3956,7 +3958,8 @@
- // regardless of what the actual target triple is.
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
-- if (TargetEnvironment == llvm::Triple::GNUEABIHF) {
-+ if (TargetEnvironment == llvm::Triple::GNUEABIHF ||
-+ TargetEnvironment == llvm::Triple::MuslEABIHF) {
- if (D.getVFS().exists(SysRoot + "/lib/arm-linux-gnueabihf"))
- return "arm-linux-gnueabihf";
- } else {
-@@ -3966,7 +3969,8 @@
- break;
- case llvm::Triple::armeb:
- case llvm::Triple::thumbeb:
-- if (TargetEnvironment == llvm::Triple::GNUEABIHF) {
-+ if (TargetEnvironment == llvm::Triple::GNUEABIHF ||
-+ TargetEnvironment == llvm::Triple::MuslEABIHF) {
- if (D.getVFS().exists(SysRoot + "/lib/armeb-linux-gnueabihf"))
- return "armeb-linux-gnueabihf";
- } else {
-@@ -4334,6 +4338,12 @@
- ArchName = "armeb";
- IsArm = true;
- break;
-+ case llvm::Triple::ppc:
-+ ArchName = "powerpc";
-+ break;
-+ case llvm::Triple::x86:
-+ ArchName = "i386";
-+ break;
- default:
- ArchName = Triple.getArchName().str();
- }
-@@ -4544,7 +4554,8 @@
- break;
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
-- if (getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
-+ if (getTriple().getEnvironment() == llvm::Triple::GNUEABIHF ||
-+ getTriple().getEnvironment() == llvm::Triple::MuslEABIHF)
- MultiarchIncludeDirs = ARMHFMultiarchIncludeDirs;
- else
- MultiarchIncludeDirs = ARMMultiarchIncludeDirs;
-
---- a/lib/Driver/Tools.cpp
-+++ b/lib/Driver/Tools.cpp
-@@ -953,6 +953,7 @@
- case llvm::Triple::FreeBSD:
- switch (Triple.getEnvironment()) {
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- ABI = FloatABI::Hard;
- break;
- default:
-@@ -9198,6 +9200,8 @@
- switch (getToolChain().getTriple().getEnvironment()) {
- case llvm::Triple::GNUEABIHF:
- case llvm::Triple::GNUEABI:
-+ case llvm::Triple::MuslEABIHF:
-+ case llvm::Triple::MuslEABI:
- case llvm::Triple::EABI:
- CmdArgs.push_back("-meabi=5");
- break;
-@@ -9541,10 +9545,12 @@
- switch (getToolChain().getTriple().getEnvironment()) {
- case llvm::Triple::EABI:
- case llvm::Triple::GNUEABI:
-+ case llvm::Triple::MuslEABI:
- CmdArgs.push_back("armelf_nbsd_eabi");
- break;
- case llvm::Triple::EABIHF:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- CmdArgs.push_back("armelf_nbsd_eabihf");
- break;
- default:
-@@ -9559,10 +9565,12 @@
- switch (getToolChain().getTriple().getEnvironment()) {
- case llvm::Triple::EABI:
- case llvm::Triple::GNUEABI:
-+ case llvm::Triple::MuslEABI:
- CmdArgs.push_back("armelfb_nbsd_eabi");
- break;
- case llvm::Triple::EABIHF:
- case llvm::Triple::GNUEABIHF:
-+ case llvm::Triple::MuslEABIHF:
- CmdArgs.push_back("armelfb_nbsd_eabihf");
- break;
- default:
diff --git a/system/clang/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch b/system/clang/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch
deleted file mode 100644
index 7cd79addc..000000000
--- a/system/clang/clang-0005-Enable-PIE-by-default-for-alpine-linux.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From: Natanael Copa <ncopa@alpinelinux.org>
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 16 Apr 2017 16:49:00 +0100
-Subject: [PATCH] Enable PIE by default for Alpine Linux
-
-Alpine Linux uses PIE by default.
-
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -4721,7 +4721,10 @@
- }
- }
-
--bool Linux::isPIEDefault() const { return getSanitizerArgs().requiresPIE(); }
-+bool Linux::isPIEDefault() const {
-+ return getSanitizerArgs().requiresPIE() ||
-+ Linux::getTriple().getVendorName().compare("alpine") == 0;
-+}
-
- SanitizerMask Linux::getSupportedSanitizers() const {
- const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
---- a/lib/Driver/Tools.cpp
-+++ b/lib/Driver/Tools.cpp
-@@ -9258,7 +9258,9 @@
- if (!D.SysRoot.empty())
- CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot));
-
-- if (IsPIE)
-+ if (Args.hasArg(options::OPT_nopie))
-+ CmdArgs.push_back("-nopie");
-+ else if (IsPIE)
- CmdArgs.push_back("-pie");
-
- CmdArgs.push_back("--eh-frame-hdr");
---- a/test/Driver/pic.c
-+++ b/test/Driver/pic.c
-@@ -244,6 +244,18 @@
- // RUN: %clang %s -target i386-pc-openbsd -nopie -### 2>&1 \
- // RUN: | FileCheck %s --check-prefix=CHECK-NOPIE-LD
- //
-+// On Alpine Linux, we want similar PIE-by-default behavior
-+// RUN: %clang -c %s -target x86_64-alpine-linux-musl -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang -c %s -target i686-alpine-linux-musl -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang -c %s -target armv6-alpine-linux-musleabihf -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang -c %s -target armv7-alpine-linux-musleabihf -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-PIE2
-+// RUN: %clang %s -target x86_64-alpine-linux-musl -nopie -### 2>&1 \
-+// RUN: | FileCheck %s --check-prefix=CHECK-NOPIE-LD
-+//
- // On Android PIC is enabled by default
- // RUN: %clang -c %s -target i686-linux-android -### 2>&1 \
- // RUN: | FileCheck %s --check-prefix=CHECK-PIC2
diff --git a/system/clang/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch b/system/clang/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch
deleted file mode 100644
index 90de948f6..000000000
--- a/system/clang/clang-0006-Link-with-z-now-by-default-for-Alpine-Linux.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From: Natanael Copa <ncopa@alpinelinux.org>
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 16 Apr 2017 16:49:00 +0100
-Subject: [PATCH] Link with -z now by default for Alpine Linux
-
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -4116,6 +4116,11 @@
-
- Distro Distro(D.getVFS());
-
-+ if (Distro.IsAlpineLinux()) {
-+ ExtraOpts.push_back("-z");
-+ ExtraOpts.push_back("now");
-+ }
-+
- if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux()) {
- ExtraOpts.push_back("-z");
- ExtraOpts.push_back("relro");
diff --git a/system/clang/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch b/system/clang/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch
deleted file mode 100644
index 3487799b1..000000000
--- a/system/clang/clang-0007-Enable-stack-protector-by-default-for-alpine-linux.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From: Natanael Copa <ncopa@alpinelinux.org>
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 16 Apr 2017 16:49:00 +0100
-Subject: [PATCH] Enable stack protector by default for Alpine Linux
-
---- a/lib/Driver/ToolChains.cpp
-+++ b/lib/Driver/ToolChains.cpp
-@@ -4866,6 +4866,13 @@
- CmdArgs.push_back("-lunwind");
- }
-
-+unsigned Linux::GetDefaultStackProtectorLevel(bool KernelOrKext) const {
-+ StringRef VendorName = Linux::getTriple().getVendorName();
-+ if (VendorName.compare("alpine") == 0)
-+ return 2;
-+ return 1;
-+}
-+
- /// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly.
-
- DragonFly::DragonFly(const Driver &D, const llvm::Triple &Triple,
---- a/lib/Driver/ToolChains.h
-+++ b/lib/Driver/ToolChains.h
-@@ -880,6 +880,7 @@
- void AddIAMCUIncludeArgs(const llvm::opt::ArgList &DriverArgs,
- llvm::opt::ArgStringList &CC1Args) const override;
- bool isPIEDefault() const override;
-+ unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override;
- SanitizerMask getSupportedSanitizers() const override;
- void addProfileRTLibs(const llvm::opt::ArgList &Args,
- llvm::opt::ArgStringList &CmdArgs) const override;
---- a/test/Driver/stack-protector.c
-+++ b/test/Driver/stack-protector.c
-@@ -24,6 +24,20 @@
- // SSP-ALL: "-stack-protector" "3"
- // SSP-ALL-NOT: "-stack-protector-buffer-size"
-
-+// RUN: %clang -target x86_64-alpine-linux-musl -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE
-+// ALPINE: "-stack-protector" "2"
-+
-+// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_SPS
-+// ALPINE_SPS: "-stack-protector" "2"
-+
-+// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_ALL
-+// ALPINE_ALL: "-stack-protector" "3"
-+// ALPINE_ALL-NOT: "-stack-protector-buffer-size"
-+
-+// RUN: %clang -target x86_64-alpine-linux-musl -fno-stack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_NOSSP
-+// ALPINE_NOSSP-NOT: "-stack-protector"
-+// ALPINE_NOSSP-NOT: "-stack-protector-buffer-size"
-+
- // RUN: %clang -target x86_64-scei-ps4 -### %s 2>&1 | FileCheck %s -check-prefix=SSP-PS4
- // RUN: %clang -target x86_64-scei-ps4 -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=SSP-PS4
- // SSP-PS4: "-stack-protector" "2"
diff --git a/system/llvm4/fix-CheckAtomic.cmake.patch b/system/llvm4/fix-CheckAtomic.cmake.patch
deleted file mode 100644
index a5309de6c..000000000
--- a/system/llvm4/fix-CheckAtomic.cmake.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-This cmake file uses command CHECK_LIBRARY_EXISTS that is defined in
-module CheckLibraryExists, but it does not include that module.
-
-This caused build error in lldb, but only on x86 (not x86_64)...
-
- -- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Failed
- CMake Error at /usr/lib/llvm4/lib/cmake/llvm/CheckAtomic.cmake:66 (check_library_exists):
- Unknown CMake command "check_library_exists".
- Call Stack (most recent call first):
- cmake/modules/LLDBStandalone.cmake:90 (include)
- CMakeLists.txt:3 (include)
-
---- a/cmake/modules/CheckAtomic.cmake
-+++ b/cmake/modules/CheckAtomic.cmake
-@@ -1,6 +1,7 @@
- # atomic builtins are required for threading support.
-
- INCLUDE(CheckCXXSourceCompiles)
-+INCLUDE(CheckLibraryExists)
-
- # Sometimes linking against libatomic is required for atomic ops, if
- # the platform doesn't support lock-free atomics.
diff --git a/system/llvm4/llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch b/system/llvm4/llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch
deleted file mode 100644
index d5d7f07b5..000000000
--- a/system/llvm4/llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d12ecb83d01dcb580dd94f4d57828f33d3eb4c35 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 18 Feb 2016 15:33:21 +0100
-Subject: [PATCH 3/3] Fix DynamicLibrary to build with musl libc
-
-stdin/out/err is part of the libc and not the kernel so we check for the
-specific libc that does the unexpected instead of linux.
-
-This is needed for making it build with musl libc.
----
- lib/Support/DynamicLibrary.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/Support/DynamicLibrary.cpp b/lib/Support/DynamicLibrary.cpp
-index 9a7aeb5..0c1c8f8 100644
---- a/lib/Support/DynamicLibrary.cpp
-+++ b/lib/Support/DynamicLibrary.cpp
-@@ -140,10 +140,10 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char *symbolName) {
- #define EXPLICIT_SYMBOL(SYM) \
- if (!strcmp(symbolName, #SYM)) return &SYM
-
--// On linux we have a weird situation. The stderr/out/in symbols are both
-+// On GNU libc we have a weird situation. The stderr/out/in symbols are both
- // macros and global variables because of standards requirements. So, we
- // boldly use the EXPLICIT_SYMBOL macro without checking for a #define first.
--#if defined(__linux__) and !defined(__ANDROID__)
-+#if defined(__GLIBC__)
- {
- EXPLICIT_SYMBOL(stderr);
- EXPLICIT_SYMBOL(stdout);
---
-2.7.3
-
diff --git a/system/llvm4/musl-ppc64-elfv2.patch b/system/llvm4/musl-ppc64-elfv2.patch
deleted file mode 100644
index 5e3021911..000000000
--- a/system/llvm4/musl-ppc64-elfv2.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- llvm-4.0.0.src/lib/Target/PowerPC/PPCTargetMachine.cpp.old 2016-12-14 18:01:53.000000000 -0600
-+++ llvm-4.0.0.src/lib/Target/PowerPC/PPCTargetMachine.cpp 2018-07-02 20:34:48.470000000 -0500
-@@ -169,7 +169,11 @@
- case Triple::ppc64le:
- return PPCTargetMachine::PPC_ABI_ELFv2;
- case Triple::ppc64:
-+#if defined(__linux__) && !defined(__GLIBC__)
-+ return PPCTargetMachine::PPC_ABI_ELFv2;
-+#else
- return PPCTargetMachine::PPC_ABI_ELFv1;
-+#endif
- default:
- // Fallthrough.
- ;
diff --git a/system/llvm4/silent-amdgpu-test-failing.patch b/system/llvm4/silent-amdgpu-test-failing.patch
deleted file mode 100644
index e20cee595..000000000
--- a/system/llvm4/silent-amdgpu-test-failing.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-See https://bugs.llvm.org//show_bug.cgi?id=31610
-
---- a/test/CodeGen/AMDGPU/invalid-opencl-version-metadata1.ll
-+++ b/test/CodeGen/AMDGPU/invalid-opencl-version-metadata1.ll
-@@ -2,5 +2,6 @@
- ; check llc does not crash for invalid opencl version metadata
-
- ; CHECK: { amd.MDVersion: [ 2, 0 ] }
-+; XFAIL: *
-
- !opencl.ocl.version = !{}
---- a/test/CodeGen/AMDGPU/invalid-opencl-version-metadata2.ll
-+++ b/test/CodeGen/AMDGPU/invalid-opencl-version-metadata2.ll
-@@ -2,6 +2,7 @@
- ; check llc does not crash for invalid opencl version metadata
-
- ; CHECK: { amd.MDVersion: [ 2, 0 ] }
-+; XFAIL: *
-
- !opencl.ocl.version = !{!0}
- !0 = !{}
---- a/test/CodeGen/AMDGPU/invalid-opencl-version-metadata3.ll
-+++ b/test/CodeGen/AMDGPU/invalid-opencl-version-metadata3.ll
-@@ -2,6 +2,7 @@
- ; check llc does not crash for invalid opencl version metadata
-
- ; CHECK: { amd.MDVersion: [ 2, 0 ] }
-+; XFAIL: *
-
- !opencl.ocl.version = !{!0}
- !0 = !{i32 1}
---- a/test/CodeGen/AMDGPU/runtime-metadata.ll
-+++ b/test/CodeGen/AMDGPU/runtime-metadata.ll
-@@ -1,5 +1,6 @@
- ; RUN: llc -mtriple=amdgcn--amdhsa -filetype=obj -o - < %s | llvm-readobj -amdgpu-runtime-metadata | FileCheck %s
- ; RUN: llc -mtriple=amdgcn--amdhsa -filetype=obj -amdgpu-dump-rtmd -amdgpu-check-rtmd-parser %s -o - 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=PARSER %s
-+; XFAIL: *
-
- %struct.A = type { i8, float }
- %opencl.image1d_t = type opaque
diff --git a/user/clang/0001-Add-support-for-Ad-lie-Linux.patch b/user/clang/0001-Add-support-for-Ad-lie-Linux.patch
new file mode 100644
index 000000000..f12adf513
--- /dev/null
+++ b/user/clang/0001-Add-support-for-Ad-lie-Linux.patch
@@ -0,0 +1,78 @@
+From 085ba75b10376fa55bb94cb6fa6c54526957732f Mon Sep 17 00:00:00 2001
+From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
+Date: Thu, 13 Sep 2018 11:42:28 -0500
+Subject: [PATCH] =?UTF-8?q?Add=20support=20for=20Ad=C3=A9lie=20Linux?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+---
+ include/clang/Driver/Distro.h | 5 +++++
+ lib/Driver/Distro.cpp | 3 +++
+ lib/Driver/ToolChains/Linux.cpp | 6 ++++--
+ 3 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/include/clang/Driver/Distro.h b/include/clang/Driver/Distro.h
+index 7b34a09256..7a3774a4f1 100644
+--- a/include/clang/Driver/Distro.h
++++ b/include/clang/Driver/Distro.h
+@@ -26,6 +26,7 @@ public:
+ // NB: Releases of a particular Linux distro should be kept together
+ // in this enum, because some tests are done by integer comparison against
+ // the first and last known member in the family, e.g. IsRedHat().
++ AdelieLinux,
+ AlpineLinux,
+ ArchLinux,
+ DebianLenny,
+@@ -118,6 +119,10 @@ public:
+ return DistroVal >= UbuntuHardy && DistroVal <= UbuntuCosmic;
+ }
+
++ bool IsAdelieLinux() const {
++ return DistroVal == AdelieLinux;
++ }
++
+ bool IsAlpineLinux() const {
+ return DistroVal == AlpineLinux;
+ }
+diff --git a/lib/Driver/Distro.cpp b/lib/Driver/Distro.cpp
+index 2c4d44faf8..7ef35ab379 100644
+--- a/lib/Driver/Distro.cpp
++++ b/lib/Driver/Distro.cpp
+@@ -130,6 +130,9 @@ static Distro::DistroType DetectDistro(vfs::FileSystem &VFS) {
+ if (VFS.exists("/etc/exherbo-release"))
+ return Distro::Exherbo;
+
++ if (VFS.exists("/etc/adelie-release"))
++ return Distro::AdelieLinux;
++
+ if (VFS.exists("/etc/alpine-release"))
+ return Distro::AlpineLinux;
+
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 2a87cb077c..85bcd8ed47 100644
+--- a/lib/Driver/ToolChains/Linux.cpp
++++ b/lib/Driver/ToolChains/Linux.cpp
+@@ -234,7 +234,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ ExtraOpts.push_back("now");
+ }
+
+- if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux()) {
++ if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() ||
++ Distro.IsAdelieLinux()) {
+ ExtraOpts.push_back("-z");
+ ExtraOpts.push_back("relro");
+ }
+@@ -268,7 +269,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ // Hexagon linker/loader does not support .gnu.hash
+ if (!IsMips && !IsAndroid && !IsHexagon) {
+ if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() ||
+- (Distro.IsUbuntu() && Distro >= Distro::UbuntuMaverick))
++ Distro.IsAdelieLinux() ||
++ (Distro.IsUbuntu() && Distro >= Distro::UbuntuMaverick))
+ ExtraOpts.push_back("--hash-style=gnu");
+
+ if (Distro.IsDebian() || Distro.IsOpenSUSE() || Distro == Distro::UbuntuLucid ||
+--
+2.18.0
+
diff --git a/user/clang/0008-Fix-ClangConfig-cmake-LLVM-path.patch b/user/clang/0008-Fix-ClangConfig-cmake-LLVM-path.patch
new file mode 100644
index 000000000..f1c1c2449
--- /dev/null
+++ b/user/clang/0008-Fix-ClangConfig-cmake-LLVM-path.patch
@@ -0,0 +1,25 @@
+From: Adeel <adeelbm@outlook.com>
+Date: Sun, 6 May 2018 10:22:00 +0200
+Subject: [PATCH] Fix ClangConfig.cmake to look for LLVM-Config.cmake in correct location
+
+This results in the following change in the generated ClangConfig.cmake:
+
+ find_package(LLVM REQUIRED CONFIG
+ - HINTS "${CLANG_INSTALL_PREFIX}/lib/cmake/llvm")
+ + HINTS "/usr/lib/llvm5/lib/cmake/llvm")
+
+This is needed e.g. for building lldb.
+
+See https://github.com/alpinelinux/aports/pull/2342 for more information.
+
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -39,7 +39,7 @@ foreach(p ${_count})
+ get_filename_component(CLANG_INSTALL_PREFIX \"\${CLANG_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+ set(CLANG_CONFIG_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}/${CLANG_INSTALL_PACKAGE_DIR}")
+-set(CLANG_CONFIG_LLVM_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
++set(CLANG_CONFIG_LLVM_CMAKE_DIR "${llvm_cmake_builddir}")
+ set(CLANG_CONFIG_EXPORTS_FILE "\${CLANG_CMAKE_DIR}/ClangTargets.cmake")
+ set(CLANG_CONFIG_INCLUDE_DIRS
+ "\${CLANG_INSTALL_PREFIX}/include"
diff --git a/user/clang/APKBUILD b/user/clang/APKBUILD
new file mode 100644
index 000000000..7508bcc82
--- /dev/null
+++ b/user/clang/APKBUILD
@@ -0,0 +1,88 @@
+# Contributor Travis Tilley <ttilley@gmail.com>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=clang
+# Note: Update together with llvm.
+pkgver=6.0.1
+pkgrel=0
+_llvmver=${pkgver%%.*}
+pkgdesc="A C language family front-end for LLVM"
+arch="all"
+options="!dbg"
+url="https://llvm.org/"
+license="NCSA"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="cmake isl-dev libedit-dev libxml2-dev libxml2-utils
+ llvm-dev>=$_llvmver llvm-static>=$_llvmver llvm-test-utils>=$_llvmver"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs
+ $pkgname-analyzer::noarch"
+source="https://llvm.org/releases/$pkgver/cfe-$pkgver.src.tar.xz
+ 0001-Add-support-for-Ad-lie-Linux.patch
+ 0008-Fix-ClangConfig-cmake-LLVM-path.patch
+ use-llvm-lit.patch
+ "
+builddir="$srcdir/cfe-$pkgver.src"
+
+build() {
+ mkdir -p "$builddir"/build
+ cd "$builddir"/build
+
+ cmake .. -Wno-dev \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_VERBOSE_MAKEFILE=OFF \
+ -DCLANG_VENDOR=${DISTRO_SHORT_NAME:-Adélie} \
+ -DCLANG_BUILD_EXAMPLES=OFF \
+ -DCLANG_INCLUDE_DOCS=ON \
+ -DCLANG_INCLUDE_TESTS=ON \
+ -DCLANG_PLUGIN_SUPPORT=ON \
+ -DLIBCLANG_BUILD_STATIC=ON \
+ -DLLVM_ENABLE_EH=ON \
+ -DLLVM_ENABLE_RTTI=ON
+
+ make clang-tblgen
+ # too memory hungry
+ if [ -z "$JOBS" -o $JOBS -gt 32 ]; then
+ make -j32
+ else
+ make
+ fi
+}
+
+check() {
+ cd "$builddir"/build
+ ln -s /usr/bin/lit bin/llvm-lit
+ make check-clang
+}
+
+package() {
+ cd "$builddir"/build
+
+ make DESTDIR="$pkgdir" install
+ install -m 644 lib/libclang.a "$pkgdir"/usr/lib
+}
+
+static() {
+ pkgdesc="Static libraries for clang"
+
+ mkdir -p "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
+}
+
+analyzer() {
+ pkgdesc="Clang source code analysis framework"
+ depends="$pkgname=$pkgver-r$pkgrel perl python3"
+
+ cd "$pkgdir"
+
+ mkdir -p "$subpkgdir"/usr/bin \
+ "$subpkgdir"/usr/libexec \
+ "$subpkgdir"/usr/share/
+ mv usr/bin/scan-* "$subpkgdir"/usr/bin/
+ mv usr/libexec/*-analyzer "$subpkgdir"/usr/libexec/
+ mv usr/share/scan-* "$subpkgdir"/usr/share/
+}
+
+sha512sums="f64ba9290059f6e36fee41c8f32bf483609d31c291fcd2f77d41fecfdf3c8233a5e23b93a1c73fed03683823bd6e72757ed993dd32527de3d5f2b7a64bb031b9 cfe-6.0.1.src.tar.xz
+44aa152d50822a9e1a223b9e07e150ffa830c55deb4c4ca29e6218a0103eb263a00b41fd1ca84390e65fa08005901a0a0f88cf529bff8764220e99d06adef5fc 0001-Add-support-for-Ad-lie-Linux.patch
+9485fe4fd6182df543735ed8f4ce618693d0faeafa86d3f9574a6c7abf50978e2d56e0a94be3ed94d515cc937c388d66ceff1bbc9bb120d371b6d3e95340da00 0008-Fix-ClangConfig-cmake-LLVM-path.patch
+8a596e7369b5791e7e9c3278320aa5bac30d91f27d9a0df335ea862c359623869353d12145c3b64730f721600522f3acc5abe706428091482e0209e4ff308175 use-llvm-lit.patch"
diff --git a/user/clang/use-llvm-lit.patch b/user/clang/use-llvm-lit.patch
new file mode 100644
index 000000000..0cbb84835
--- /dev/null
+++ b/user/clang/use-llvm-lit.patch
@@ -0,0 +1,11 @@
+--- cfe-6.0.1.src/test/CMakeLists.txt.old 2017-12-12 19:47:40.000000000 +0000
++++ cfe-6.0.1.src/test/CMakeLists.txt 2018-09-13 17:01:03.690000000 +0000
+@@ -115,7 +115,7 @@
+
+ add_lit_testsuite(check-clang "Running the Clang regression tests"
+ ${CMAKE_CURRENT_BINARY_DIR}
+- #LIT ${LLVM_LIT}
++ LIT ${LLVM_LIT}
+ PARAMS ${CLANG_TEST_PARAMS}
+ DEPENDS ${CLANG_TEST_DEPS}
+ ARGS ${CLANG_TEST_EXTRA_ARGS}
diff --git a/system/llvm4/APKBUILD b/user/llvm6/APKBUILD
index 647ef6043..5ec756ef9 100644
--- a/system/llvm4/APKBUILD
+++ b/user/llvm6/APKBUILD
@@ -3,25 +3,23 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
_pkgname=llvm
-pkgver=4.0.0
+pkgver=6.0.1
_majorver=${pkgver%%.*}
pkgname=$_pkgname$_majorver
-pkgrel=6
+pkgrel=0
pkgdesc="Low Level Virtual Machine compiler system, version $_majorver"
arch="all"
-options="!dbg"
-url="http://llvm.org/"
+options="!checkroot !dbg"
+url="https://llvm.org/"
license="NCSA"
depends_dev="$pkgname=$pkgver-r$pkgrel"
-makedepends="binutils-dev chrpath cmake file libffi-dev paxmark python3 zlib-dev"
+makedepends="binutils-dev chrpath cmake file libffi-dev python3 zlib-dev"
subpackages="$pkgname-static $pkgname-libs $pkgname-dev $pkgname-test-utils:_test_utils"
source="http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz
llvm-fix-build-with-musl-libc.patch
- llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch
cmake-fix-libLLVM-name.patch
disable-FileSystemTest.CreateDir-perms-assert.patch
- silent-amdgpu-test-failing.patch
- fix-CheckAtomic.cmake.patch
+ disable-dlclose-test.patch
musl-ppc64-elfv2.patch
"
builddir="$srcdir/$_pkgname-$pkgver.src"
@@ -88,7 +86,6 @@ build() {
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_BUILD_TESTS=ON \
-DLLVM_DEFAULT_TARGET_TRIPLE="$CBUILD" \
- -DLLVM_DYLIB_EXPORT_ALL=ON \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_CXX1Y=ON \
-DLLVM_ENABLE_FFI=ON \
@@ -107,14 +104,6 @@ build() {
make llvm-tblgen
make
- paxmark m \
- bin/llvm-rtdyld \
- bin/lli \
- bin/lli-child-target \
- unittests/ExecutionEngine/MCJIT/MCJITTests \
- unittests/ExecutionEngine/Orc/OrcJITTests \
- unittests/Support/SupportTests
-
python3 ../utils/lit/setup.py build
}
@@ -227,6 +216,7 @@ _test_utils() {
cd "$builddir"/build
install -D -m 755 bin/FileCheck "$subpkgdir"/$_prefix/bin/FileCheck
+ install -D -m 755 bin/count "$subpkgdir"/$_prefix/bin/count
install -D -m 755 bin/not "$subpkgdir"/$_prefix/bin/not
python3 ../utils/lit/setup.py install --prefix=/usr --root="$subpkgdir"
@@ -246,11 +236,9 @@ _mv() {
mv $@
}
-sha512sums="cf681f0626ef6d568d951cdc3e143471a1d7715a0ba11e52aa273cf5d8d421e1357ef2645cc85879eaefcd577e99e74d07b01566825b3d0461171ef2cbfc7704 llvm-4.0.0.src.tar.xz
+sha512sums="cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9 llvm-6.0.1.src.tar.xz
f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71 llvm-fix-build-with-musl-libc.patch
-19bfb9282455d39d07dbb2b1293b03a45c57d522fbb9c5e58dac034200669628b97e7a90cd4ff5d52d9bb79acfccbef653d8a1140a7f0589ecd6f9b7c4ba0eb6 llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch
6d1a716e5aa24e6b9a3acf4cc11e2504b1b01abf574074e9e5617b991de87d5e4e687eb18e85e73d5e632568afe2fc357771c4c96f9e136502071991496fb78c cmake-fix-libLLVM-name.patch
49c47f125014b60d0ea7870f981a2c1708ad705793f89287ed846ee881a837a4dc0170bf467e03f2ef56177473128945287749ac80dc2d13cfabcf8b929ba58a disable-FileSystemTest.CreateDir-perms-assert.patch
-97f788110abbb9e6add2e3a3d3b606dc2817ab726b74ead71241fc5433ba42d5d58e23be91a3b2444eb687c4f56a7c879bf5453e96f9785ce3541301329dda9c silent-amdgpu-test-failing.patch
-3bcfeccc1f14567f99029a131b1289290226d48855857f2eb6a251e041981a8b8b2d7965099df16ebf0a406e48130679f97235ef3f3524577413bb51cf40e613 fix-CheckAtomic.cmake.patch
-0286362c4a144f7697cc3b9bfaaba9f0d2749f625d750ca2999532a81f7e2d1ea7ca340c17354ac994dbc410e9e482993c1864751b08c9093e60524f66d7e73e musl-ppc64-elfv2.patch"
+caeec8e4dbd92f5f74940780b69075f3879a267a8623822cbdc193fd14706eb089071e3a5a20d60cc2eca59e4c5b2a61d29827a2f3362ee7c5f74f11d9ace200 disable-dlclose-test.patch
+bde743960003a2a39868af9f665d86fadb0a7b1e7eb51c16ebbd74ce4c5220bbc400b1d5211c02fc2643863f49ee961e9a18dffa0eb813a0e1723613396512ab musl-ppc64-elfv2.patch"
diff --git a/system/llvm4/cmake-fix-libLLVM-name.patch b/user/llvm6/cmake-fix-libLLVM-name.patch
index cb29fe2ef..cb29fe2ef 100644
--- a/system/llvm4/cmake-fix-libLLVM-name.patch
+++ b/user/llvm6/cmake-fix-libLLVM-name.patch
diff --git a/system/llvm4/disable-FileSystemTest.CreateDir-perms-assert.patch b/user/llvm6/disable-FileSystemTest.CreateDir-perms-assert.patch
index e73ce9b6f..e73ce9b6f 100644
--- a/system/llvm4/disable-FileSystemTest.CreateDir-perms-assert.patch
+++ b/user/llvm6/disable-FileSystemTest.CreateDir-perms-assert.patch
diff --git a/user/llvm6/disable-dlclose-test.patch b/user/llvm6/disable-dlclose-test.patch
new file mode 100644
index 000000000..b70cd4d4d
--- /dev/null
+++ b/user/llvm6/disable-dlclose-test.patch
@@ -0,0 +1,18 @@
+--- llvm-6.0.1.src/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp.old 2017-07-12 21:22:45.000000000 +0000
++++ llvm-6.0.1.src/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp 2018-09-13 04:43:37.240000000 +0000
+@@ -107,6 +107,7 @@
+ EXPECT_TRUE(DynamicLibrary::SearchOrder == DynamicLibrary::SO_Linker);
+ }
+
++#if 0
+ TEST(DynamicLibrary, Shutdown) {
+ std::string A("PipSqueak"), B, C("SecondLib");
+ std::vector<std::string> Order;
+@@ -162,6 +163,7 @@
+ EXPECT_EQ(Order.front(), "SecondLib");
+ EXPECT_EQ(Order.back(), "PipSqueak");
+ }
++#endif
+
+ #else
+
diff --git a/system/llvm4/llvm-fix-build-with-musl-libc.patch b/user/llvm6/llvm-fix-build-with-musl-libc.patch
index 6ee91ea44..6ee91ea44 100644
--- a/system/llvm4/llvm-fix-build-with-musl-libc.patch
+++ b/user/llvm6/llvm-fix-build-with-musl-libc.patch
diff --git a/user/llvm6/musl-ppc64-elfv2.patch b/user/llvm6/musl-ppc64-elfv2.patch
new file mode 100644
index 000000000..6fa65526b
--- /dev/null
+++ b/user/llvm6/musl-ppc64-elfv2.patch
@@ -0,0 +1,13 @@
+--- llvm-6.0.1.src/lib/Target/PowerPC/PPCTargetMachine.cpp.orig 2018-09-13 03:51:11.900000000 +0000
++++ llvm-6.0.1.src/lib/Target/PowerPC/PPCTargetMachine.cpp 2018-09-13 03:56:10.740000000 +0000
+@@ -191,6 +191,10 @@
+ if (TT.isMacOSX())
+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
+
++ // musl uses ELFv2 ABI on both endians.
++ if (TT.getEnvironment() == Triple::Musl)
++ return PPCTargetMachine::PPC_ABI_ELFv2;
++
+ switch (TT.getArch()) {
+ case Triple::ppc64le:
+ return PPCTargetMachine::PPC_ABI_ELFv2;