llvm: update to 3.8.0.
Use cmake to build. This is the favored method of building by upstream. Consequences: - Build lld again - Build LLVMgold - Enable sanitizers on non-musl platforms - Remove llvm-doc (not built by cmake, quite useless) - Use versioned binary names - Could use ninja with make_cmd=ninja and configure -Gninja, but we stick to make for now. Also cleaned up and fixed remaining patches.
This commit is contained in:
parent
3fdcf959af
commit
dffb85bee2
|
@ -948,6 +948,7 @@ libLLVM-3.5.so libllvm-3.5.0_1
|
||||||
libLLVM-3.6.so libllvm3.6-3.6.0_1
|
libLLVM-3.6.so libllvm3.6-3.6.0_1
|
||||||
libLLVM-3.7.so libllvm3.7-3.7.0_1
|
libLLVM-3.7.so libllvm3.7-3.7.0_1
|
||||||
libLLVM-3.7.1.so libllvm3.7-3.7.1_1
|
libLLVM-3.7.1.so libllvm3.7-3.7.1_1
|
||||||
|
libLLVM-3.8.so libllvm3.8-3.8.0_1
|
||||||
libisofs.so.6 libisofs-0.6.24_1
|
libisofs.so.6 libisofs-0.6.24_1
|
||||||
libbfd-2.22.so binutils-2.22_1<2.23_1
|
libbfd-2.22.so binutils-2.22_1<2.23_1
|
||||||
libopcodes-2.22.so binutils-2.22_1<2.23_1
|
libopcodes-2.22.so binutils-2.22_1<2.23_1
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
llvm
|
|
@ -0,0 +1 @@
|
||||||
|
llvm
|
|
@ -1,17 +1,6 @@
|
||||||
From edd1fc14b3c3e05b14c3ab1917515a11bc477aca Mon Sep 17 00:00:00 2001
|
--- cfe-3.8.0.src/lib/Driver/Tools.cpp.orig
|
||||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
+++ cfe-3.8.0.src/lib/Driver/Tools.cpp
|
||||||
Date: Tue, 8 Sep 2015 22:33:28 +0200
|
@@ -8632,7 +8632,14 @@
|
||||||
Subject: [PATCH 4/7] fix dynamic linker paths
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/Driver/Tools.cpp | 43 ++++++++++++++++++++++++++++++++++++++-----
|
|
||||||
1 file changed, 38 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
|
|
||||||
index 19ebbb9..4384829 100644
|
|
||||||
--- a/lib/Driver/Tools.cpp
|
|
||||||
+++ b/lib/Driver/Tools.cpp
|
|
||||||
@@ -7958,7 +7958,14 @@ static std::string getLinuxDynamicLinker(const ArgList &Args,
|
|
||||||
return "/system/bin/linker64";
|
return "/system/bin/linker64";
|
||||||
else
|
else
|
||||||
return "/system/bin/linker";
|
return "/system/bin/linker";
|
||||||
|
@ -27,26 +16,8 @@ index 19ebbb9..4384829 100644
|
||||||
Arch == llvm::Triple::sparcel)
|
Arch == llvm::Triple::sparcel)
|
||||||
return "/lib/ld-linux.so.2";
|
return "/lib/ld-linux.so.2";
|
||||||
else if (Arch == llvm::Triple::aarch64)
|
else if (Arch == llvm::Triple::aarch64)
|
||||||
@@ -7970,14 +7977,34 @@ static std::string getLinuxDynamicLinker(const ArgList &Args,
|
@@ -8651,7 +8658,17 @@
|
||||||
tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard")
|
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::armeb || Arch == llvm::Triple::thumbeb) {
|
|
||||||
// TODO: check which dynamic linker name.
|
|
||||||
if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF ||
|
|
||||||
tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard")
|
|
||||||
return "/lib/ld-linux-armhf.so.3";
|
return "/lib/ld-linux-armhf.so.3";
|
||||||
else
|
else
|
||||||
- return "/lib/ld-linux.so.3";
|
- return "/lib/ld-linux.so.3";
|
||||||
|
@ -63,8 +34,8 @@ index 19ebbb9..4384829 100644
|
||||||
+ }
|
+ }
|
||||||
} else if (Arch == llvm::Triple::mips || Arch == llvm::Triple::mipsel ||
|
} else if (Arch == llvm::Triple::mips || Arch == llvm::Triple::mipsel ||
|
||||||
Arch == llvm::Triple::mips64 || Arch == llvm::Triple::mips64el) {
|
Arch == llvm::Triple::mips64 || Arch == llvm::Triple::mips64el) {
|
||||||
StringRef CPUName;
|
std::string LibDir =
|
||||||
@@ -8014,8 +8041,14 @@ static std::string getLinuxDynamicLinker(const ArgList &Args,
|
@@ -8685,8 +8702,14 @@
|
||||||
else if (Arch == llvm::Triple::x86_64 &&
|
else if (Arch == llvm::Triple::x86_64 &&
|
||||||
ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUX32)
|
ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUX32)
|
||||||
return "/libx32/ld-linux-x32.so.2";
|
return "/libx32/ld-linux-x32.so.2";
|
||||||
|
@ -81,6 +52,3 @@ index 19ebbb9..4384829 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AddRunTimeLibs(const ToolChain &TC, const Driver &D,
|
static void AddRunTimeLibs(const ToolChain &TC, const Driver &D,
|
||||||
--
|
|
||||||
2.5.1
|
|
||||||
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
From 7024157ee8c63e3d892e3bcac8bbe73b4dd92bbd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
|
||||||
Date: Tue, 8 Sep 2015 22:35:39 +0200
|
|
||||||
Subject: [PATCH 5/7] no use cxa atexit
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/Driver/Tools.cpp | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
|
|
||||||
index 4384829..b6bf7fc 100644
|
|
||||||
--- a/lib/Driver/Tools.cpp
|
|
||||||
+++ b/lib/Driver/Tools.cpp
|
|
||||||
@@ -4435,7 +4435,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|
||||||
options::OPT_fno_use_cxa_atexit,
|
|
||||||
!IsWindowsCygnus && !IsWindowsGNU &&
|
|
||||||
getToolChain().getArch() != llvm::Triple::hexagon &&
|
|
||||||
- getToolChain().getArch() != llvm::Triple::xcore) ||
|
|
||||||
+ getToolChain().getArch() != llvm::Triple::xcore &&
|
|
||||||
+ getToolChain().getTriple().getEnvironment() != llvm::Triple::Musl) ||
|
|
||||||
KernelOrKext)
|
|
||||||
CmdArgs.push_back("-fno-use-cxa-atexit");
|
|
||||||
|
|
||||||
--
|
|
||||||
2.5.1
|
|
||||||
|
|
|
@ -1,26 +1,10 @@
|
||||||
From 886d662712b1cfb5cf7b84bfd96fb5f8b58069d5 Mon Sep 17 00:00:00 2001
|
--- cfe-3.8.0.src/lib/Driver/ToolChains.cpp.orig
|
||||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
+++ cfe-3.8.0.src/lib/Driver/ToolChains.cpp
|
||||||
Date: Tue, 8 Sep 2015 22:38:44 +0200
|
@@ -2428,6 +2428,7 @@
|
||||||
Subject: [PATCH 6/7] musl use init array
|
ArgStringList &CC1Args) const {
|
||||||
|
const Generic_GCC::GCCVersion &V = GCCInstallation.getVersion();
|
||||||
---
|
bool UseInitArrayDefault =
|
||||||
lib/Driver/ToolChains.cpp | 3 ++-
|
+ getTriple().getEnvironment() == llvm::Triple::Musl ||
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
getTriple().getArch() == llvm::Triple::aarch64 ||
|
||||||
|
|
||||||
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
|
|
||||||
index 3cd6dd1..ef77df8 100644
|
|
||||||
--- a/lib/Driver/ToolChains.cpp
|
|
||||||
+++ b/lib/Driver/ToolChains.cpp
|
|
||||||
@@ -2071,7 +2071,8 @@ void Generic_ELF::addClangTargetOptions(const ArgList &DriverArgs,
|
|
||||||
getTriple().getArch() == llvm::Triple::aarch64_be ||
|
getTriple().getArch() == llvm::Triple::aarch64_be ||
|
||||||
(getTriple().getOS() == llvm::Triple::Linux &&
|
(getTriple().getOS() == llvm::Triple::Linux &&
|
||||||
(!V.isOlderThan(4, 7, 0) ||
|
|
||||||
- getTriple().getEnvironment() == llvm::Triple::Android)) ||
|
|
||||||
+ getTriple().getEnvironment() == llvm::Triple::Android ||
|
|
||||||
+ getTriple().getEnvironment() == llvm::Triple::Musl)) ||
|
|
||||||
getTriple().getOS() == llvm::Triple::NaCl;
|
|
||||||
|
|
||||||
if (DriverArgs.hasFlag(options::OPT_fuse_init_array,
|
|
||||||
--
|
|
||||||
2.5.1
|
|
||||||
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
From 75d91fe8d9219007069af02301565173bd5d0612 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
|
||||||
Date: Tue, 8 Sep 2015 22:39:20 +0200
|
|
||||||
Subject: [PATCH 7/7] remove lgcc when using compiler rt
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/Driver/Tools.cpp | 2 --
|
|
||||||
1 file changed, 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
|
|
||||||
index b6bf7fc..665961a 100644
|
|
||||||
--- a/lib/Driver/Tools.cpp
|
|
||||||
+++ b/lib/Driver/Tools.cpp
|
|
||||||
@@ -2389,8 +2389,6 @@ static void addClangRT(const ToolChain &TC, const ArgList &Args,
|
|
||||||
CmdArgs.push_back(Args.MakeArgString(getCompilerRT(TC, "builtins")));
|
|
||||||
|
|
||||||
if (!TC.getTriple().isOSWindows()) {
|
|
||||||
- // FIXME: why do we link against gcc when we are using compiler-rt?
|
|
||||||
- CmdArgs.push_back("-lgcc_s");
|
|
||||||
if (TC.getDriver().CCCIsCXX())
|
|
||||||
CmdArgs.push_back("-lgcc_eh");
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.5.1
|
|
||||||
|
|
|
@ -1,14 +1,3 @@
|
||||||
From 7f278344034eab699a90fab3d313048d1de44012 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
|
||||||
Date: Tue, 8 Sep 2015 22:45:11 +0200
|
|
||||||
Subject: [PATCH 2/2] musl no dlvsym
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/interception/interception_linux.cc | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/interception/interception_linux.cc b/lib/interception/interception_linux.cc
|
|
||||||
index 6e908ac..7fcf2a6 100644
|
|
||||||
--- a/lib/interception/interception_linux.cc
|
--- a/lib/interception/interception_linux.cc
|
||||||
+++ b/lib/interception/interception_linux.cc
|
+++ b/lib/interception/interception_linux.cc
|
||||||
@@ -24,7 +24,7 @@ bool GetRealFunctionAddress(const char *func_name, uptr *func_addr,
|
@@ -24,7 +24,7 @@ bool GetRealFunctionAddress(const char *func_name, uptr *func_addr,
|
||||||
|
@ -16,10 +5,7 @@ index 6e908ac..7fcf2a6 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
-#if !defined(__ANDROID__) // android does not have dlvsym
|
-#if !defined(__ANDROID__) // android does not have dlvsym
|
||||||
+#if 0 // !defined(__ANDROID__) // android does not have dlvsym
|
+#if defined(__GLIBC__) // !defined(__ANDROID__) // android does not have dlvsym
|
||||||
void *GetFuncAddrVer(const char *func_name, const char *ver) {
|
void *GetFuncAddrVer(const char *func_name, const char *ver) {
|
||||||
return dlvsym(RTLD_NEXT, func_name, ver);
|
return dlvsym(RTLD_NEXT, func_name, ver);
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.5.1
|
|
||||||
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
From 146c027efdd839b7173a922a43c4ab7003bdc160 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
|
||||||
Date: Tue, 8 Sep 2015 22:44:22 +0200
|
|
||||||
Subject: [PATCH 1/2] disable sanitizers
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/Makefile.mk | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/Makefile.mk b/lib/Makefile.mk
|
|
||||||
index 7eb6489..c0efac3 100644
|
|
||||||
--- a/lib/Makefile.mk
|
|
||||||
+++ b/lib/Makefile.mk
|
|
||||||
@@ -10,10 +10,10 @@
|
|
||||||
SubDirs :=
|
|
||||||
|
|
||||||
# Add submodules.
|
|
||||||
-SubDirs += asan
|
|
||||||
+# SubDirs += asan
|
|
||||||
SubDirs += builtins
|
|
||||||
SubDirs += interception
|
|
||||||
-SubDirs += lsan
|
|
||||||
+# SubDirs += lsan
|
|
||||||
SubDirs += profile
|
|
||||||
-SubDirs += sanitizer_common
|
|
||||||
-SubDirs += ubsan
|
|
||||||
+# SubDirs += sanitizer_common
|
|
||||||
+# SubDirs += ubsan
|
|
||||||
--
|
|
||||||
2.5.1
|
|
||||||
|
|
|
@ -11,18 +11,6 @@ Subject: [PATCH] fix musl
|
||||||
source/Plugins/Process/Linux/Procfs.h | 2 +-
|
source/Plugins/Process/Linux/Procfs.h | 2 +-
|
||||||
5 files changed, 6 insertions(+), 2 deletions(-)
|
5 files changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/source/Core/ConnectionSharedMemory.cpp b/source/Core/ConnectionSharedMemory.cpp
|
|
||||||
index 77daeb1..36e9bc7 100644
|
|
||||||
--- a/source/Core/ConnectionSharedMemory.cpp
|
|
||||||
+++ b/source/Core/ConnectionSharedMemory.cpp
|
|
||||||
@@ -16,6 +16,7 @@
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include "lldb/Host/windows/windows.h"
|
|
||||||
#else
|
|
||||||
+#include <fcntl.h> /* O_RDRW */
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
diff --git a/source/Host/common/FileSpec.cpp b/source/Host/common/FileSpec.cpp
|
diff --git a/source/Host/common/FileSpec.cpp b/source/Host/common/FileSpec.cpp
|
||||||
index ceb094b..a48620d 100644
|
index ceb094b..a48620d 100644
|
||||||
--- a/source/Host/common/FileSpec.cpp
|
--- a/source/Host/common/FileSpec.cpp
|
||||||
|
@ -35,33 +23,6 @@ index ceb094b..a48620d 100644
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#endif
|
#endif
|
||||||
diff --git a/source/Host/linux/Host.cpp b/source/Host/linux/Host.cpp
|
|
||||||
index 6217b1d..edcfa4a 100644
|
|
||||||
--- a/source/Host/linux/Host.cpp
|
|
||||||
+++ b/source/Host/linux/Host.cpp
|
|
||||||
@@ -14,7 +14,7 @@
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
-#ifndef __ANDROID__
|
|
||||||
+#ifdef __GLIBC__
|
|
||||||
#include <execinfo.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
diff --git a/source/Host/linux/HostThreadLinux.cpp b/source/Host/linux/HostThreadLinux.cpp
|
|
||||||
index 8151215..a849e51 100644
|
|
||||||
--- a/source/Host/linux/HostThreadLinux.cpp
|
|
||||||
+++ b/source/Host/linux/HostThreadLinux.cpp
|
|
||||||
@@ -30,7 +30,9 @@ HostThreadLinux::HostThreadLinux(lldb::thread_t thread)
|
|
||||||
void
|
|
||||||
HostThreadLinux::SetName(lldb::thread_t thread, llvm::StringRef name)
|
|
||||||
{
|
|
||||||
+#if defined(__ANDROID__) || defined(__GLIBC__)
|
|
||||||
::pthread_setname_np(thread, name.data());
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
diff --git a/source/Plugins/Process/Linux/Procfs.h b/source/Plugins/Process/Linux/Procfs.h
|
diff --git a/source/Plugins/Process/Linux/Procfs.h b/source/Plugins/Process/Linux/Procfs.h
|
||||||
index 1b383fb..4ebe390 100644
|
index 1b383fb..4ebe390 100644
|
||||||
--- a/source/Plugins/Process/Linux/Procfs.h
|
--- a/source/Plugins/Process/Linux/Procfs.h
|
||||||
|
|
|
@ -49,29 +49,6 @@ index c6646fb..8d47ad9 100644
|
||||||
.StartsWith("msvc", Triple::MSVC)
|
.StartsWith("msvc", Triple::MSVC)
|
||||||
.StartsWith("itanium", Triple::Itanium)
|
.StartsWith("itanium", Triple::Itanium)
|
||||||
.StartsWith("cygnus", Triple::Cygnus)
|
.StartsWith("cygnus", Triple::Cygnus)
|
||||||
diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h
|
|
||||||
index dd101df..c5bdcca 100644
|
|
||||||
--- a/lib/Target/ARM/ARMSubtarget.h
|
|
||||||
+++ b/lib/Target/ARM/ARMSubtarget.h
|
|
||||||
@@ -381,8 +381,10 @@ public:
|
|
||||||
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 ||
|
|
||||||
TargetTriple.getEnvironment() == Triple::Android) &&
|
|
||||||
!isTargetDarwin() && !isTargetWindows();
|
|
||||||
}
|
|
||||||
@@ -391,6 +393,7 @@ public:
|
|
||||||
// FIXME: this is invalid for WindowsCE
|
|
||||||
return TargetTriple.getEnvironment() == Triple::GNUEABIHF ||
|
|
||||||
TargetTriple.getEnvironment() == Triple::EABIHF ||
|
|
||||||
+ TargetTriple.getEnvironment() == Triple::MuslEABIHF ||
|
|
||||||
isTargetWindows();
|
|
||||||
}
|
|
||||||
bool isTargetAndroid() const {
|
|
||||||
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
|
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
|
||||||
index 93495d6..56e6b7f 100644
|
index 93495d6..56e6b7f 100644
|
||||||
--- a/lib/Target/ARM/ARMTargetMachine.cpp
|
--- a/lib/Target/ARM/ARMTargetMachine.cpp
|
||||||
|
@ -88,3 +65,24 @@ index 93495d6..56e6b7f 100644
|
||||||
--
|
--
|
||||||
2.5.1
|
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(); }
|
||||||
|
|
|
@ -66,37 +66,6 @@ index 9a7aeb5..e21750d 100644
|
||||||
|
|
||||||
// On linux we have a weird situation. The stderr/out/in symbols are both
|
// On linux we have a weird situation. The stderr/out/in symbols are both
|
||||||
// macros and global variables because of standards requirements. So, we
|
// macros and global variables because of standards requirements. So, we
|
||||||
diff --git a/lib/Support/Unix/Signals.inc b/lib/Support/Unix/Signals.inc
|
|
||||||
index bfe2a3a..e8372d9 100644
|
|
||||||
--- a/lib/Support/Unix/Signals.inc
|
|
||||||
+++ b/lib/Support/Unix/Signals.inc
|
|
||||||
@@ -117,7 +117,7 @@ static void RegisterHandlers() {
|
|
||||||
// during handling an actual signal because you can't safely call new in a
|
|
||||||
// signal handler.
|
|
||||||
*SignalsMutex;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
// If the handlers are already registered, we're done.
|
|
||||||
if (NumRegisteredSignals != 0) return;
|
|
||||||
|
|
||||||
@@ -164,7 +164,7 @@ static void RemoveFilesToRemove() {
|
|
||||||
// super-user permissions.
|
|
||||||
if (!S_ISREG(buf.st_mode))
|
|
||||||
continue;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
// Otherwise, remove the file. We ignore any errors here as there is nothing
|
|
||||||
// else we can do.
|
|
||||||
unlink(path);
|
|
||||||
@@ -430,7 +430,7 @@ static bool printSymbolizedStackTrace(void **StackTrace, int Depth,
|
|
||||||
// On glibc systems we have the 'backtrace' function, which works nicely, but
|
|
||||||
// doesn't demangle symbols.
|
|
||||||
void llvm::sys::PrintStackTrace(raw_ostream &OS) {
|
|
||||||
-#if defined(HAVE_BACKTRACE) && defined(ENABLE_BACKTRACES)
|
|
||||||
+#if defined(__GLIBC__) && defined(HAVE_BACKTRACE) && defined(ENABLE_BACKTRACES)
|
|
||||||
static void* StackTrace[256];
|
|
||||||
// Use backtrace() to output a backtrace on Linux systems with glibc.
|
|
||||||
int depth = backtrace(StackTrace,
|
|
||||||
diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
|
diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
|
||||||
index 5780764..1d548c1 100644
|
index 5780764..1d548c1 100644
|
||||||
--- a/utils/unittest/googletest/src/gtest.cc
|
--- a/utils/unittest/googletest/src/gtest.cc
|
||||||
|
|
|
@ -1,13 +1,19 @@
|
||||||
# Template file for 'llvm'
|
# Template file for 'llvm'
|
||||||
pkgname=llvm
|
pkgname=llvm
|
||||||
version=3.7.1
|
version=3.8.0
|
||||||
revision=2
|
revision=1
|
||||||
wrksrc="llvm-${version}.src"
|
wrksrc="llvm-${version}.src"
|
||||||
lib32disabled=yes
|
lib32disabled=yes
|
||||||
configure_args="--disable-expensive-checks --disable-debug-runtime
|
build_style=cmake
|
||||||
--enable-bindings=none --enable-optimized --enable-shared --enable-libffi
|
configure_args="
|
||||||
--enable-llvmc-dynamic --disable-assertions --enable-keep-symbols
|
-DCMAKE_BUILD_TYPE=Release
|
||||||
--enable-experimental-targets=AMDGPU"
|
-DLLVM_BUILD_LLVM_DYLIB=ON
|
||||||
|
-DLLVM_LINK_LLVM_DYLIB=ON
|
||||||
|
-DLLVM_DYLIB_EXPORT_ALL=ON
|
||||||
|
-DLLVM_ENABLE_RTTI=ON
|
||||||
|
-DLLVM_ENABLE_FFI=ON
|
||||||
|
-DLLVM_BINUTILS_INCDIR=/usr/include
|
||||||
|
-DCMAKE_INSTALL_DO_STRIP=0"
|
||||||
short_desc="Low Level Virtual Machine"
|
short_desc="Low Level Virtual Machine"
|
||||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||||
homepage="http://www.llvm.org"
|
homepage="http://www.llvm.org"
|
||||||
|
@ -15,25 +21,28 @@ license="BSD"
|
||||||
distfiles="
|
distfiles="
|
||||||
http://www.llvm.org/releases/${version}/llvm-${version}.src.tar.xz
|
http://www.llvm.org/releases/${version}/llvm-${version}.src.tar.xz
|
||||||
http://www.llvm.org/releases/${version}/lldb-${version}.src.tar.xz
|
http://www.llvm.org/releases/${version}/lldb-${version}.src.tar.xz
|
||||||
|
http://www.llvm.org/releases/${version}/lld-${version}.src.tar.xz
|
||||||
http://www.llvm.org/releases/${version}/cfe-${version}.src.tar.xz
|
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}/clang-tools-extra-${version}.src.tar.xz
|
||||||
http://www.llvm.org/releases/${version}/compiler-rt-${version}.src.tar.xz"
|
http://www.llvm.org/releases/${version}/compiler-rt-${version}.src.tar.xz"
|
||||||
checksum="
|
checksum="555b028e9ee0f6445ff8f949ea10e9cd8be0d084840e21fbbe1d31d51fc06e46
|
||||||
be7794ed0cec42d6c682ca8e3517535b54555a3defabec83554dbc74db545ad5
|
e3f68f44147df0433e7989bf6ed1c58ff28d7c68b9c47553cb9915f744785a35
|
||||||
9a0bc315ef55f44c98cdf92d064df0847f453ed156dd0ef6a87e04f5fd6a0e01
|
94704dda228c9f75f4403051085001440b458501ec97192eee06e8e67f7f9f0c
|
||||||
56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674
|
04149236de03cf05232d68eb7cb9c50f03062e339b68f4f8a03b650a11536cf9
|
||||||
4a91edaccad1ce984c7c49a4a87db186b7f7b21267b2b03bcf4bd7820715bc6b
|
afbda810106a6e64444bc164b921be928af46829117c95b996f2678ce4cb1ec4
|
||||||
9d4769e4a927d3824bcb7a9c82b01e307c68588e6de4e7f04ab82d82c5af8181"
|
c8d3387e55f229543dac1941769120f24dc50183150bf19d1b070d53d29d56b0"
|
||||||
|
|
||||||
# XXX Investigate ocaml bindings.
|
# XXX Investigate ocaml bindings.
|
||||||
hostmakedepends="groff perl python zlib-devel libffi-devel swig"
|
hostmakedepends="groff perl python zlib-devel libffi-devel swig cmake"
|
||||||
makedepends="python-devel zlib-devel libffi-devel libedit-devel"
|
makedepends="python-devel zlib-devel libffi-devel libedit-devel libxml2-devel binutils-devel"
|
||||||
|
depends="libllvm3.8"
|
||||||
|
|
||||||
subpackages="clang clang-analyzer libllvm3.7 llvm-doc"
|
subpackages="clang clang-analyzer libllvm3.8"
|
||||||
if [ -z "$CROSS_BUILD" ]; then
|
if [ -z "$CROSS_BUILD" ]; then
|
||||||
# XXX fails to cross compile due to python
|
# XXX fails to cross compile due to python
|
||||||
subpackages+=" lldb lldb-devel"
|
subpackages+=" lldb lldb-devel"
|
||||||
fi
|
fi
|
||||||
|
subpackages+=" lld lld-devel"
|
||||||
|
|
||||||
post_extract() {
|
post_extract() {
|
||||||
# patches
|
# patches
|
||||||
|
@ -48,9 +57,6 @@ post_extract() {
|
||||||
msg_normal "Applying $i to compiler-rt\n"
|
msg_normal "Applying $i to compiler-rt\n"
|
||||||
patch -sNp1 -i ${i}
|
patch -sNp1 -i ${i}
|
||||||
done
|
done
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
|
||||||
*-musl) patch -sNp1 -i "${FILESDIR}/patches/compiler-rt/compiler-rt_musl_001-disable-sanitizers.patch" ;;
|
|
||||||
esac
|
|
||||||
# FIX BUG 22661
|
# FIX BUG 22661
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
i686*) sed -ri "/ifeq.*CompilerTargetArch/s#i386#i686#g" make/platform/clang_linux.mk ;;
|
i686*) sed -ri "/ifeq.*CompilerTargetArch/s#i386#i686#g" make/platform/clang_linux.mk ;;
|
||||||
|
@ -79,6 +85,10 @@ post_extract() {
|
||||||
if [ -d ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ]; then
|
if [ -d ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ]; then
|
||||||
mv ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ${wrksrc}/tools/clang/extra
|
mv ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ${wrksrc}/tools/clang/extra
|
||||||
fi
|
fi
|
||||||
|
# Move lld files into the llvm source.
|
||||||
|
if [ -d ${XBPS_BUILDDIR}/lld-${version}.src ]; then
|
||||||
|
mv ${XBPS_BUILDDIR}/lld-${version}.src ${wrksrc}/tools/lld
|
||||||
|
fi
|
||||||
# Move lldb files into the llvm source.
|
# Move lldb files into the llvm source.
|
||||||
if [ -z "$CROSS_BUILD" -a -d ${XBPS_BUILDDIR}/lldb-${version}.src ]; then
|
if [ -z "$CROSS_BUILD" -a -d ${XBPS_BUILDDIR}/lldb-${version}.src ]; then
|
||||||
mv ${XBPS_BUILDDIR}/lldb-${version}.src ${wrksrc}/tools/lldb
|
mv ${XBPS_BUILDDIR}/lldb-${version}.src ${wrksrc}/tools/lldb
|
||||||
|
@ -87,32 +97,46 @@ post_extract() {
|
||||||
if [ -d ${XBPS_BUILDDIR}/compiler-rt-${version}.src ]; then
|
if [ -d ${XBPS_BUILDDIR}/compiler-rt-${version}.src ]; then
|
||||||
mv ${XBPS_BUILDDIR}/compiler-rt-${version}.src ${wrksrc}/projects/compiler-rt
|
mv ${XBPS_BUILDDIR}/compiler-rt-${version}.src ${wrksrc}/projects/compiler-rt
|
||||||
fi
|
fi
|
||||||
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
|
*-musl)
|
||||||
|
# Disable sanitizers
|
||||||
|
sed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' ${wrksrc}/projects/compiler-rt/cmake/config-ix.cmake
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_configure() {
|
pre_configure() {
|
||||||
unset CC CXX CPP AR AS RANLIB CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
|
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
|
||||||
|
make ${makejobs} -C tools/clang/utils/TableGen
|
||||||
|
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/build/HOST/bin/llvm-tblgen"
|
||||||
|
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/build/HOST/bin/clang-tblgen"
|
||||||
|
cd ../..
|
||||||
|
fi
|
||||||
|
|
||||||
# Fix installation directories, ./configure doesn't seem to set them right
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \
|
i686*) _arch="X86";;
|
||||||
-e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
|
x86_64*) _arch="X86";;
|
||||||
Makefile.config.in
|
arm*) _arch="ARM";;
|
||||||
|
aarch64*) _arch="AArch64";;
|
||||||
mkdir build
|
mips*) _arch="Mips";;
|
||||||
cd build
|
esac
|
||||||
../configure ${configure_args}
|
configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
|
||||||
}
|
configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}"
|
||||||
|
|
||||||
do_build() {
|
|
||||||
unset CC CXX CPP AR AS RANLIB CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
|
|
||||||
cd build
|
|
||||||
make REQUIRES_RTTI=1 ${makejobs}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
vlicense LICENSE.TXT
|
vlicense LICENSE.TXT
|
||||||
|
|
||||||
cd build
|
cd build
|
||||||
make DESTDIR=${DESTDIR} install
|
cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
|
||||||
|
|
||||||
# Fix permissions of static libs
|
# Fix permissions of static libs
|
||||||
chmod -x ${DESTDIR}/usr/lib/*.a
|
chmod -x ${DESTDIR}/usr/lib/*.a
|
||||||
|
@ -122,7 +146,7 @@ do_install() {
|
||||||
|
|
||||||
# Required for multilib.
|
# Required for multilib.
|
||||||
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
|
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
|
||||||
for _header in config llvm-config; do
|
for _header in llvm-config; do
|
||||||
mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
|
mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
|
||||||
vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
|
vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
|
||||||
usr/include/llvm/Config ${_header}.h
|
usr/include/llvm/Config ${_header}.h
|
||||||
|
@ -139,21 +163,15 @@ do_install() {
|
||||||
|
|
||||||
clang-analyzer_package() {
|
clang-analyzer_package() {
|
||||||
noarch=yes
|
noarch=yes
|
||||||
pycompile_dirs="usr/lib/clang-analyzer"
|
pycompile_dirs="usr/share/scan-view"
|
||||||
depends="clang-${version}_${revision} python"
|
depends="clang-${version}_${revision} python"
|
||||||
short_desc+=" - A source code analysis framework"
|
short_desc+=" - A source code analysis framework"
|
||||||
homepage="http://clang-analyzer.llvm.org/"
|
homepage="http://clang-analyzer.llvm.org/"
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmkdir usr/bin
|
vmove usr/share/man/man1/scan-build.1
|
||||||
vmkdir usr/lib/clang-analyzer
|
vmove "/usr/bin/scan-*"
|
||||||
|
vmove "/usr/share/scan-*"
|
||||||
for f in build view; do
|
vmove "/usr/libexec/*analyzer"
|
||||||
cp -r ${wrksrc}/tools/clang/tools/scan-${f} ${PKGDESTDIR}/usr/lib/clang-analyzer
|
|
||||||
cd ${PKGDESTDIR}/usr/bin
|
|
||||||
ln -s ../lib/${pkgname}/scan-${f}/scan-${f} scan-${f}
|
|
||||||
done
|
|
||||||
|
|
||||||
ln -sf /usr/bin/clang ${PKGDESTDIR}/usr/lib/${pkgname}/scan-build
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
clang_package() {
|
clang_package() {
|
||||||
|
@ -171,6 +189,25 @@ clang_package() {
|
||||||
vmove usr/bin/c-index-test
|
vmove usr/bin/c-index-test
|
||||||
vmove usr/lib/clang
|
vmove usr/lib/clang
|
||||||
vmove "usr/lib/libclang*"
|
vmove "usr/lib/libclang*"
|
||||||
|
vmove "usr/share/clang"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lld_package() {
|
||||||
|
lib32disabled=yes
|
||||||
|
short_desc+=" - linker"
|
||||||
|
homepage="http://lld.llvm.org"
|
||||||
|
pkg_install() {
|
||||||
|
vmove usr/bin/lld*
|
||||||
|
vmove usr/bin/ld.lld*
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lld-devel_package() {
|
||||||
|
lib32disabled=yes
|
||||||
|
short_desc+=" - linker - development files"
|
||||||
|
homepage="http://lld.llvm.org"
|
||||||
|
pkg_install() {
|
||||||
|
vmove usr/include/lld
|
||||||
|
vmove "usr/lib/liblld*a"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lldb_package() {
|
lldb_package() {
|
||||||
|
@ -179,7 +216,7 @@ lldb_package() {
|
||||||
homepage="http://lldb.llvm.org/"
|
homepage="http://lldb.llvm.org/"
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove "usr/bin/*lldb*"
|
vmove "usr/bin/*lldb*"
|
||||||
vmove "usr/lib/liblldb*so"
|
vmove "usr/lib/liblldb*so.*"
|
||||||
vman tools/lldb/docs/lldb.1
|
vman tools/lldb/docs/lldb.1
|
||||||
vmove "/usr/lib/python*"
|
vmove "/usr/lib/python*"
|
||||||
}
|
}
|
||||||
|
@ -190,19 +227,12 @@ lldb-devel_package() {
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove usr/include/lldb
|
vmove usr/include/lldb
|
||||||
vmove "usr/lib/liblldb*.a"
|
vmove "usr/lib/liblldb*.a"
|
||||||
|
vmove "usr/lib/liblldb*.so"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
llvm-doc_package() {
|
libllvm3.8_package() {
|
||||||
noarch=yes
|
|
||||||
short_desc+=" - documentation files"
|
|
||||||
pkg_install() {
|
|
||||||
vmove usr/share/doc
|
|
||||||
}
|
|
||||||
}
|
|
||||||
libllvm3.7_package() {
|
|
||||||
short_desc+=" - runtime library"
|
short_desc+=" - runtime library"
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove usr/lib/libLLVM-${version%.*}.so
|
vmove "usr/lib/libLLVM-*.so*"
|
||||||
vmove usr/lib/libLLVM-${version}.so
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue