llvm: update to 3.9.0.

This commit is contained in:
Christian Neukirchen 2016-09-02 23:41:56 +02:00
parent 51348f54ef
commit b84944c243
6 changed files with 13 additions and 169 deletions

View File

@ -961,6 +961,7 @@ libLLVM-3.7.so libllvm3.7-3.7.0_1
libLLVM-3.7.1.so libllvm3.7-3.7.1_1
libLLVM-3.8.so libllvm3.8-3.8.0_1
libLLVM-3.8.1.so libllvm3.8-3.8.1_1
libLLVM-3.9.so libllvm3.9-3.9.0_1
libisofs.so.6 libisofs-0.6.24_1
libbfd-2.22.so binutils-2.22_1<2.23_1
libopcodes-2.22.so binutils-2.22_1<2.23_1

View File

@ -1,54 +0,0 @@
--- cfe-3.8.0.src/lib/Driver/Tools.cpp.orig
+++ cfe-3.8.0.src/lib/Driver/Tools.cpp
@@ -8632,7 +8632,14 @@
return "/system/bin/linker64";
else
return "/system/bin/linker";
- } else if (Arch == llvm::Triple::x86 || Arch == llvm::Triple::sparc ||
+ } else if (Arch == llvm::Triple::x86) {
+ switch (ToolChain.getTriple().getEnvironment()) {
+ case llvm::Triple::Musl:
+ return "/lib/ld-musl-i386.so.1";
+ default:
+ return "/lib/ld-linux.so.2";
+ }
+ } else if (Arch == llvm::Triple::sparc ||
Arch == llvm::Triple::sparcel)
return "/lib/ld-linux.so.2";
else if (Arch == llvm::Triple::aarch64)
@@ -8651,7 +8658,17 @@
arm::getARMFloatABI(ToolChain, Args) == arm::FloatABI::Hard)
return "/lib/ld-linux-armhf.so.3";
else
- return "/lib/ld-linux.so.3";
+ switch (ToolChain.getTriple().getEnvironment()) {
+ case llvm::Triple::Musl:
+ case llvm::Triple::MuslEABI:
+ return "/lib/ld-musl-arm.so.1";
+ case llvm::Triple::MuslEABIHF:
+ return "/lib/ld-musl-armhf.so.1";
+ case llvm::Triple::GNUEABIHF:
+ return "/lib/ld-linux-armhf.so.1";
+ default:
+ return "/lib/ld-linux.so.3";
+ }
} else if (Arch == llvm::Triple::mips || Arch == llvm::Triple::mipsel ||
Arch == llvm::Triple::mips64 || Arch == llvm::Triple::mips64el) {
std::string LibDir =
@@ -8685,8 +8702,14 @@
else if (Arch == llvm::Triple::x86_64 &&
ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUX32)
return "/libx32/ld-linux-x32.so.2";
- else
- return "/lib64/ld-linux-x86-64.so.2";
+ else {
+ switch (ToolChain.getTriple().getEnvironment()) {
+ case llvm::Triple::Musl:
+ return "/lib/ld-musl-x86_64.so.1";
+ default:
+ return "/lib64/ld-linux-x86-64.so.2";
+ }
+ }
}
static void AddRunTimeLibs(const ToolChain &TC, const Driver &D,

View File

@ -15,18 +15,3 @@
#ifndef NT_FPREGSET
#define NT_FPREGSET NT_PRFPREG
#endif // NT_FPREGSET
@@ -29,3 +28,4 @@
#include <sys/procfs.h>
#endif // __ANDROID__
+
--- lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp.orig
+++ lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -32,6 +32,7 @@
#include <sys/socket.h>
// NT_PRSTATUS and NT_FPREGSET definition
#include <elf.h>
+#include <asm/ptrace.h>
#define REG_CONTEXT_SIZE (GetGPRSize() + GetFPRSize())

View File

@ -1,88 +0,0 @@
From 58be6f7fb164dbf42fdd28ce6474dbe4bc5ca401 Mon Sep 17 00:00:00 2001
From: Andrea Brancaleoni <miwaxe@gmail.com>
Date: Tue, 8 Sep 2015 21:53:42 +0200
Subject: [PATCH 2/3] musl triple
---
include/llvm/ADT/Triple.h | 4 ++++
lib/Support/Triple.cpp | 6 ++++++
lib/Target/ARM/ARMSubtarget.h | 3 +++
lib/Target/ARM/ARMTargetMachine.cpp | 2 ++
4 files changed, 15 insertions(+)
diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h
index 947812d..d2a6bbe 100644
--- a/include/llvm/ADT/Triple.h
+++ b/include/llvm/ADT/Triple.h
@@ -167,6 +167,10 @@ public:
EABIHF,
Android,
+ Musl,
+ MuslEABI,
+ MuslEABIHF,
+
MSVC,
Itanium,
Cygnus,
diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp
index c6646fb..8d47ad9 100644
--- a/lib/Support/Triple.cpp
+++ b/lib/Support/Triple.cpp
@@ -192,6 +192,9 @@ const char *Triple::getEnvironmentTypeName(EnvironmentType Kind) {
case CODE16: return "code16";
case EABI: return "eabi";
case EABIHF: return "eabihf";
+ case Musl: return "musl";
+ case MuslEABIHF: return "musleabihf";
+ case MuslEABI: return "musleabi";
case Android: return "android";
case MSVC: return "msvc";
case Itanium: return "itanium";
@@ -427,6 +430,9 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
.StartsWith("code16", Triple::CODE16)
.StartsWith("gnu", Triple::GNU)
.StartsWith("android", Triple::Android)
+ .StartsWith("musleabihf", Triple::MuslEABIHF)
+ .StartsWith("musleabi", Triple::MuslEABI)
+ .StartsWith("musl", Triple::Musl)
.StartsWith("msvc", Triple::MSVC)
.StartsWith("itanium", Triple::Itanium)
.StartsWith("cygnus", Triple::Cygnus)
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
index 93495d6..56e6b7f 100644
--- a/lib/Target/ARM/ARMTargetMachine.cpp
+++ b/lib/Target/ARM/ARMTargetMachine.cpp
@@ -97,6 +97,8 @@ computeTargetABI(const Triple &TT, StringRef CPU,
case llvm::Triple::GNUEABIHF:
case llvm::Triple::EABIHF:
case llvm::Triple::EABI:
+ case llvm::Triple::MuslEABI:
+ case llvm::Triple::MuslEABIHF:
TargetABI = ARMBaseTargetMachine::ARM_ABI_AAPCS;
break;
case llvm::Triple::GNU:
--
2.5.1
--- llvm-3.8.0.src/lib/Target/ARM/ARMSubtarget.h.orig 2016-03-09 13:34:16.919107629 +0100
+++ llvm-3.8.0.src/lib/Target/ARM/ARMSubtarget.h 2016-03-09 13:38:12.019342405 +0100
@@ -405,8 +405,10 @@
bool isTargetEHABICompatible() const {
return (TargetTriple.getEnvironment() == Triple::EABI ||
TargetTriple.getEnvironment() == Triple::GNUEABI ||
+ TargetTriple.getEnvironment() == Triple::MuslEABI ||
TargetTriple.getEnvironment() == Triple::EABIHF ||
TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
+ TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
isTargetAndroid()) &&
!isTargetDarwin() && !isTargetWindows();
}
@@ -415,6 +417,7 @@
// FIXME: this is invalid for WindowsCE
return TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
TargetTriple.getEnvironment() == Triple::EABIHF ||
+ TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
isTargetWindows() || isAAPCS16_ABI();
}
bool isTargetAndroid() const { return TargetTriple.isAndroid(); }

View File

@ -1,7 +1,7 @@
# Template file for 'llvm'
pkgname=llvm
version=3.8.1
revision=3
version=3.9.0
revision=1
wrksrc="llvm-${version}.src"
lib32disabled=yes
build_style=cmake
@ -25,20 +25,19 @@ distfiles="
http://www.llvm.org/releases/${version}/cfe-${version}.src.tar.xz
http://www.llvm.org/releases/${version}/clang-tools-extra-${version}.src.tar.xz
http://www.llvm.org/releases/${version}/compiler-rt-${version}.src.tar.xz"
checksum="
6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9
349148116a47e39dcb5d5042f10d8a6357d2c865034563283ca512f81cdce8a3
2bd9be8bb18d82f7f59e31ea33b4e58387dbdef0bc11d5c9fcd5ce9a4b16dc00
4cd3836dfb4b88b597e075341cae86d61c63ce3963e45c7fe6a8bf59bb382cdf
664a5c60220de9c290bf2a5b03d902ab731a4f95fe73a00856175ead494ec396
0df011dae14d8700499dfc961602ee0a9572fef926202ade5dcdfe7858411e5c"
checksum="66c73179da42cee1386371641241f79ded250e117a79f571bbd69e56daa48948
61280e07411e3f2b4cca0067412b39c16b0a9edd19d304d3fc90249899d12384
986e8150ec5f457469a20666628bf634a5ca992a53e157f3b69dbc35056b32d9
7596a7c7d9376d0c89e60028fe1ceb4d3e535e8ea8b89e0eb094e0dcb3183d28
5b7aec46ec8e999ec683c87ad744082e1133781ee4b01905b4bdae5d20785f14
e0e5224fcd5740b61e416c549dd3dcda92f10c524216c1edb5e979e42078a59a"
# XXX Investigate ocaml bindings.
hostmakedepends="groff perl python zlib-devel libffi-devel swig"
makedepends="python-devel zlib-devel libffi-devel libedit-devel libxml2-devel binutils-devel"
depends="libllvm3.8"
depends="libllvm3.9"
subpackages="clang-tools-extra clang clang-analyzer libllvm3.8"
subpackages="clang-tools-extra clang clang-analyzer libllvm3.9"
if [ -z "$CROSS_BUILD" ]; then
# XXX fails to cross compile due to python
subpackages+=" lldb lldb-devel"
@ -207,6 +206,7 @@ clang_package() {
vmove "usr/bin/*clang*"
vmove usr/bin/c-index-test
vmove usr/lib/clang
vmove usr/lib/cmake/clang
vmove "usr/lib/libclang*"
vmove "usr/share/clang"
}
@ -252,7 +252,7 @@ lldb-devel_package() {
vmove "usr/lib/liblldb*.so"
}
}
libllvm3.8_package() {
libllvm3.9_package() {
short_desc+=" - runtime library"
pkg_install() {
vmove "usr/lib/libLLVM-*.so*"