mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-08-02 21:50:41 +00:00
Add multilib riscv64 patch from Ubuntu
This commit is contained in:
parent
bb359b01c1
commit
c6c5dab79f
7
debian/changelog
vendored
7
debian/changelog
vendored
@ -6,6 +6,13 @@ llvm-toolchain-10 (1:10.0.0-3) unstable; urgency=medium
|
||||
* Cherry-pick upstream patch D74453 to fix atomic compare-and-swap on
|
||||
riscv64.
|
||||
|
||||
[ William Grant ]
|
||||
* debian/patches/riscv64-multilib-empty.patch: Adjust riscv64 GCC detector
|
||||
to also check for existence of crtbegin.o in the default multilib dir,
|
||||
like most other ports. Fixes FTBFS on riscv64, since on Ubuntu
|
||||
/usr/lib/gcc/riscv64-linux-gnu/10 exists but is empty (gcc-10-base is
|
||||
installed, but libgcc-10-dev is not).
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 02 Apr 2020 21:48:13 +0200
|
||||
|
||||
llvm-toolchain-10 (1:10.0.0-2) unstable; urgency=medium
|
||||
|
57
debian/patches/riscv64-multilib-empty.patch
vendored
Normal file
57
debian/patches/riscv64-multilib-empty.patch
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
Index: llvm-toolchain-10-10.0.0/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-10-10.0.0.orig/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
+++ llvm-toolchain-10-10.0.0/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
@@ -1570,13 +1570,16 @@ static void findRISCVBareMetalMultilibs(
|
||||
Result.Multilibs = RISCVMultilibs;
|
||||
}
|
||||
|
||||
-static void findRISCVMultilibs(const Driver &D,
|
||||
+static bool findRISCVMultilibs(const Driver &D,
|
||||
const llvm::Triple &TargetTriple, StringRef Path,
|
||||
const ArgList &Args, DetectedMultilibs &Result) {
|
||||
- if (TargetTriple.getOS() == llvm::Triple::UnknownOS)
|
||||
- return findRISCVBareMetalMultilibs(D, TargetTriple, Path, Args, Result);
|
||||
+ if (TargetTriple.getOS() == llvm::Triple::UnknownOS) {
|
||||
+ findRISCVBareMetalMultilibs(D, TargetTriple, Path, Args, Result);
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
FilterNonExistent NonExistent(Path, "/crtbegin.o", D.getVFS());
|
||||
+ Multilib Default;
|
||||
Multilib Ilp32 = makeMultilib("lib32/ilp32").flag("+m32").flag("+mabi=ilp32");
|
||||
Multilib Ilp32f =
|
||||
makeMultilib("lib32/ilp32f").flag("+m32").flag("+mabi=ilp32f");
|
||||
@@ -1587,7 +1590,7 @@ static void findRISCVMultilibs(const Dri
|
||||
Multilib Lp64d = makeMultilib("lib64/lp64d").flag("+m64").flag("+mabi=lp64d");
|
||||
MultilibSet RISCVMultilibs =
|
||||
MultilibSet()
|
||||
- .Either({Ilp32, Ilp32f, Ilp32d, Lp64, Lp64f, Lp64d})
|
||||
+ .Either({Default, Ilp32, Ilp32f, Ilp32d, Lp64, Lp64f, Lp64d})
|
||||
.FilterOut(NonExistent);
|
||||
|
||||
Multilib::flags_list Flags;
|
||||
@@ -1603,8 +1606,11 @@ static void findRISCVMultilibs(const Dri
|
||||
addMultilibFlag(ABIName == "lp64f", "mabi=lp64f", Flags);
|
||||
addMultilibFlag(ABIName == "lp64d", "mabi=lp64d", Flags);
|
||||
|
||||
- if (RISCVMultilibs.select(Flags, Result.SelectedMultilib))
|
||||
- Result.Multilibs = RISCVMultilibs;
|
||||
+ if (!RISCVMultilibs.select(Flags, Result.SelectedMultilib))
|
||||
+ return false;
|
||||
+
|
||||
+ Result.Multilibs = RISCVMultilibs;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
static bool findBiarchMultilibs(const Driver &D,
|
||||
@@ -2382,7 +2388,8 @@ bool Generic_GCC::GCCInstallationDetecto
|
||||
if (!findMIPSMultilibs(D, TargetTriple, Path, Args, Detected))
|
||||
return false;
|
||||
} else if (TargetTriple.isRISCV()) {
|
||||
- findRISCVMultilibs(D, TargetTriple, Path, Args, Detected);
|
||||
+ if (!findRISCVMultilibs(D, TargetTriple, Path, Args, Detected))
|
||||
+ return false;
|
||||
} else if (isMSP430(TargetArch)) {
|
||||
findMSP430Multilibs(D, TargetTriple, Path, Args, Detected);
|
||||
} else if (TargetArch == llvm::Triple::avr) {
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -145,3 +145,4 @@ d21664cce1db8debe2528f36b1fbd2b8af9c9401.patch
|
||||
0001-systemz-allow-configuring-default-SYSTEMZ_DEFAULT_AR.patch
|
||||
|
||||
D76596.diff
|
||||
riscv64-multilib-empty.patch
|
||||
|
Loading…
Reference in New Issue
Block a user