mirror of
https://github.com/dslm4515/BMLFS.git
synced 2025-08-20 14:31:47 +00:00
Upgraded LLVM to 12.0.0
This commit is contained in:
@ -0,0 +1,44 @@
|
||||
From 352974169f0d2b5da3d5321f588f5e3b5941330e Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
||||
Date: Tue, 8 Sep 2015 22:14:57 +0200
|
||||
Subject: [PATCH 2/7] fix unwind chain inclusion
|
||||
|
||||
---
|
||||
lib/Headers/unwind.h | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/lib/Headers/unwind.h b/lib/Headers/unwind.h
|
||||
index 303d792..44e10cc 100644
|
||||
--- a/lib/Headers/unwind.h
|
||||
+++ b/lib/Headers/unwind.h
|
||||
@@ -9,9 +9,6 @@
|
||||
|
||||
/* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/
|
||||
|
||||
-#ifndef __CLANG_UNWIND_H
|
||||
-#define __CLANG_UNWIND_H
|
||||
-
|
||||
#if defined(__APPLE__) && __has_include_next(<unwind.h>)
|
||||
/* Darwin (from 11.x on) provide an unwind.h. If that's available,
|
||||
* use it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE,
|
||||
@@ -39,6 +36,9 @@
|
||||
# endif
|
||||
#else
|
||||
|
||||
+#ifndef __CLANG_UNWIND_H
|
||||
+#define __CLANG_UNWIND_H
|
||||
+
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -322,6 +322,7 @@ _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
|
||||
}
|
||||
#endif
|
||||
|
||||
+#endif /* __CLANG_UNWIND_H */
|
||||
+
|
||||
#endif
|
||||
|
||||
-#endif /* __CLANG_UNWIND_H */
|
||||
--
|
||||
2.5.1
|
110
patches/llvm12-clang-void/clang-002-add-musl-triples.patch
Normal file
110
patches/llvm12-clang-void/clang-002-add-musl-triples.patch
Normal file
@ -0,0 +1,110 @@
|
||||
--- a/lib/Driver/ToolChains/Gnu.cpp
|
||||
+++ b/lib/Driver/ToolChains/Gnu.cpp
|
||||
@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||
static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
|
||||
"armv7hl-redhat-linux-gnueabi",
|
||||
"armv6hl-suse-linux-gnueabi",
|
||||
- "armv7hl-suse-linux-gnueabi"};
|
||||
+ "armv7hl-suse-linux-gnueabi",
|
||||
+ "armv7l-linux-gnueabihf"};
|
||||
static const char *const ARMebLibDirs[] = {"/lib"};
|
||||
static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
|
||||
"armeb-linux-androideabi"};
|
||||
@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||
"powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
|
||||
static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
|
||||
static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
|
||||
- "powerpcle-unknown-linux-gnu",
|
||||
- "powerpcle-linux-musl"};
|
||||
+ "powerpcle-unknown-linux-gnu"};
|
||||
|
||||
static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
|
||||
static const char *const PPC64Triples[] = {
|
||||
@@ -2235,6 +2235,87 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (TargetTriple.isMusl()) {
|
||||
+ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
|
||||
+ static const char *const ARMHFMuslTriples[] = {
|
||||
+ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
|
||||
+ };
|
||||
+ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
|
||||
+ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
|
||||
+ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
|
||||
+ static const char *const MIPSMuslTriples[] = {
|
||||
+ "mips-linux-musl", "mipsel-linux-musl",
|
||||
+ "mipsel-linux-muslhf", "mips-linux-muslhf"
|
||||
+ };
|
||||
+ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
|
||||
+ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
|
||||
+ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
|
||||
+ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
|
||||
+
|
||||
+ switch (TargetTriple.getArch()) {
|
||||
+ case llvm::Triple::aarch64:
|
||||
+ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
|
||||
+ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::arm:
|
||||
+ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
|
||||
+ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
|
||||
+ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
|
||||
+ } else {
|
||||
+ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
|
||||
+ }
|
||||
+ break;
|
||||
+ case llvm::Triple::x86_64:
|
||||
+ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
|
||||
+ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::x86:
|
||||
+ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
|
||||
+ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::mips:
|
||||
+ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
|
||||
+ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppc:
|
||||
+ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
|
||||
+ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppcle:
|
||||
+ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
|
||||
+ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppc64:
|
||||
+ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
|
||||
+ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppc64le:
|
||||
+ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
|
||||
+ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+ TripleAliases.push_back(TargetTriple.str());
|
||||
+ if (TargetTriple.str() != BiarchTriple.str())
|
||||
+ BiarchTripleAliases.push_back(BiarchTriple.str());
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
// Android targets should not use GNU/Linux tools or libraries.
|
||||
if (TargetTriple.isAndroid()) {
|
||||
static const char *const AArch64AndroidTriples[] = {
|
@ -0,0 +1,13 @@
|
||||
--- a/lib/Driver/ToolChains/Linux.cpp
|
||||
+++ b/lib/Driver/ToolChains/Linux.cpp
|
||||
@@ -504,10 +504,6 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
|
||||
Loader = "ld.so.1";
|
||||
break;
|
||||
case llvm::Triple::ppc64:
|
||||
- LibDir = "lib64";
|
||||
- Loader =
|
||||
- (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
|
||||
- break;
|
||||
case llvm::Triple::ppc64le:
|
||||
LibDir = "lib64";
|
||||
Loader =
|
48
patches/llvm12-clang-void/clang-004-ppc64-musl-elfv2.patch
Normal file
48
patches/llvm12-clang-void/clang-004-ppc64-musl-elfv2.patch
Normal file
@ -0,0 +1,48 @@
|
||||
--- a/lib/Basic/Targets/PPC.h
|
||||
+++ b/lib/Basic/Targets/PPC.h
|
||||
@@ -415,11 +415,10 @@ public:
|
||||
LongDoubleFormat = &llvm::APFloat::IEEEdouble();
|
||||
} else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
|
||||
DataLayout = "e-m:e-i64:64-n32:64";
|
||||
- ABI = "elfv2";
|
||||
} else {
|
||||
DataLayout = "E-m:e-i64:64-n32:64";
|
||||
- ABI = "elfv1";
|
||||
}
|
||||
+ ABI = "elfv2";
|
||||
|
||||
if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
|
||||
LongDoubleWidth = LongDoubleAlign = 64;
|
||||
--- a/lib/CodeGen/TargetInfo.cpp
|
||||
+++ b/lib/CodeGen/TargetInfo.cpp
|
||||
@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
|
||||
return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
|
||||
|
||||
if (Triple.isOSBinFormatELF()) {
|
||||
- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
|
||||
- if (getTarget().getABI() == "elfv2")
|
||||
- Kind = PPC64_SVR4_ABIInfo::ELFv2;
|
||||
+ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
|
||||
+ if (getTarget().getABI() == "elfv1")
|
||||
+ Kind = PPC64_SVR4_ABIInfo::ELFv1;
|
||||
bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
|
||||
|
||||
return SetCGInfo(
|
||||
--- a/lib/Driver/ToolChains/Clang.cpp
|
||||
+++ b/lib/Driver/ToolChains/Clang.cpp
|
||||
@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
|
||||
const llvm::Triple &T = getToolChain().getTriple();
|
||||
if (T.isOSBinFormatELF()) {
|
||||
switch (getToolChain().getArch()) {
|
||||
- case llvm::Triple::ppc64: {
|
||||
- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
|
||||
- T.isOSOpenBSD() || T.isMusl())
|
||||
- ABIName = "elfv2";
|
||||
- else
|
||||
- ABIName = "elfv1";
|
||||
- break;
|
||||
- }
|
||||
+ case llvm::Triple::ppc64:
|
||||
case llvm::Triple::ppc64le:
|
||||
ABIName = "elfv2";
|
||||
break;
|
Reference in New Issue
Block a user