From: LLVM Packaging Team Date: Sat, 15 Aug 2020 19:53:41 +0000 (+0100) Subject: riscv64-multilib-empty X-Git-Tag: archive/raspbian/1%9.0.1-14+rpi1^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d91f1b8f52c621d7da0ea37ad150c5513e52ccfc;p=llvm-toolchain-9.git riscv64-multilib-empty =================================================================== Gbp-Pq: Name riscv64-multilib-empty.patch --- diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp index 33cdd3585..ae167361d 100644 --- a/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/clang/lib/Driver/ToolChains/Gnu.cpp @@ -1502,11 +1502,12 @@ static bool findMSP430Multilibs(const Driver &D, return false; } -static void findRISCVMultilibs(const Driver &D, +static bool findRISCVMultilibs(const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) { 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"); @@ -1517,7 +1518,7 @@ static void findRISCVMultilibs(const Driver &D, 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; @@ -1533,8 +1534,11 @@ static void findRISCVMultilibs(const Driver &D, 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, @@ -2309,7 +2313,8 @@ bool Generic_GCC::GCCInstallationDetector::ScanGCCForMultilibs( 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) {