Initial stub of a Makefile and patches for LLVM
Nothing much, but getting some patches from chimera linux that should work.
This commit is contained in:
parent
636c6f0163
commit
6110995cfb
33 changed files with 1813 additions and 0 deletions
|
|
@ -0,0 +1,66 @@
|
|||
From 194f8e7519bec165fefcaf2a4be82cfd4c271a7d Mon Sep 17 00:00:00 2001
|
||||
From: q66 <q66@chimera-linux.org>
|
||||
Date: Wed, 16 Apr 2025 00:30:51 +0200
|
||||
Subject: [PATCH 13/29] llvm: fix isOSGlibc thinking musl is glibc
|
||||
|
||||
---
|
||||
llvm/include/llvm/TargetParser/Triple.h | 2 +-
|
||||
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 2 +-
|
||||
llvm/lib/Target/X86/X86ISelLoweringCall.cpp | 2 +-
|
||||
llvm/lib/Target/X86/X86Subtarget.h | 1 +
|
||||
4 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
|
||||
index 7d67966d1..721a7a3e1 100644
|
||||
--- a/llvm/include/llvm/TargetParser/Triple.h
|
||||
+++ b/llvm/include/llvm/TargetParser/Triple.h
|
||||
@@ -737,7 +737,7 @@ public:
|
||||
bool isOSGlibc() const {
|
||||
return (getOS() == Triple::Linux || getOS() == Triple::KFreeBSD ||
|
||||
getOS() == Triple::Hurd) &&
|
||||
- !isAndroid();
|
||||
+ !isAndroid() && !isMusl();
|
||||
}
|
||||
|
||||
/// Tests whether the OS is AIX.
|
||||
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
|
||||
index 84bcdae52..b6a8ce0ee 100644
|
||||
--- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
|
||||
+++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
|
||||
@@ -1876,7 +1876,7 @@ bool X86DAGToDAGISel::matchLoadInAddress(LoadSDNode *N, X86ISelAddressMode &AM,
|
||||
// For more information see http://people.redhat.com/drepper/tls.pdf
|
||||
if (isNullConstant(Address) && AM.Segment.getNode() == nullptr &&
|
||||
!IndirectTlsSegRefs &&
|
||||
- (Subtarget->isTargetGlibc() || Subtarget->isTargetAndroid() ||
|
||||
+ (Subtarget->isTargetGlibc() || Subtarget->isTargetMusl() || Subtarget->isTargetAndroid() ||
|
||||
Subtarget->isTargetFuchsia())) {
|
||||
if (Subtarget->isTarget64BitILP32() && !AllowSegmentRegForX32)
|
||||
return true;
|
||||
diff --git a/llvm/lib/Target/X86/X86ISelLoweringCall.cpp b/llvm/lib/Target/X86/X86ISelLoweringCall.cpp
|
||||
index 6835c7e33..50eb2384b 100644
|
||||
--- a/llvm/lib/Target/X86/X86ISelLoweringCall.cpp
|
||||
+++ b/llvm/lib/Target/X86/X86ISelLoweringCall.cpp
|
||||
@@ -536,7 +536,7 @@ unsigned X86TargetLowering::getAddressSpace() const {
|
||||
}
|
||||
|
||||
static bool hasStackGuardSlotTLS(const Triple &TargetTriple) {
|
||||
- return TargetTriple.isOSGlibc() || TargetTriple.isOSFuchsia() ||
|
||||
+ return TargetTriple.isOSGlibc() || TargetTriple.isOSFuchsia() || TargetTriple.isMusl() ||
|
||||
(TargetTriple.isAndroid() && !TargetTriple.isAndroidVersionLT(17));
|
||||
}
|
||||
|
||||
diff --git a/llvm/lib/Target/X86/X86Subtarget.h b/llvm/lib/Target/X86/X86Subtarget.h
|
||||
index 722076ca8..c2fc60eff 100644
|
||||
--- a/llvm/lib/Target/X86/X86Subtarget.h
|
||||
+++ b/llvm/lib/Target/X86/X86Subtarget.h
|
||||
@@ -295,6 +295,7 @@ public:
|
||||
bool isTargetLinux() const { return TargetTriple.isOSLinux(); }
|
||||
bool isTargetKFreeBSD() const { return TargetTriple.isOSKFreeBSD(); }
|
||||
bool isTargetGlibc() const { return TargetTriple.isOSGlibc(); }
|
||||
+ bool isTargetMusl() const { return TargetTriple.isMusl(); }
|
||||
bool isTargetAndroid() const { return TargetTriple.isAndroid(); }
|
||||
bool isTargetNaCl() const { return TargetTriple.isOSNaCl(); }
|
||||
bool isTargetNaCl32() const { return isTargetNaCl() && !is64Bit(); }
|
||||
--
|
||||
2.49.0
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue