summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Gnu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Driver/ToolChains/Gnu.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Gnu.cpp56
1 files changed, 0 insertions, 56 deletions
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index eb84a99a16b..2dd3450dd1b 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -1503,65 +1503,9 @@ static bool findMSP430Multilibs(const Driver &D,
return false;
}
-static void findRISCVBareMetalMultilibs(const Driver &D,
- const llvm::Triple &TargetTriple,
- StringRef Path, const ArgList &Args,
- DetectedMultilibs &Result) {
- FilterNonExistent NonExistent(Path, "/crtbegin.o", D.getVFS());
- struct RiscvMultilib {
- StringRef march;
- StringRef mabi;
- };
- // currently only support the set of multilibs like riscv-gnu-toolchain does.
- // TODO: support MULTILIB_REUSE
- SmallVector<RiscvMultilib, 8> RISCVMultilibSet = {
- {"rv32i", "ilp32"}, {"rv32im", "ilp32"}, {"rv32iac", "ilp32"},
- {"rv32imac", "ilp32"}, {"rv32imafc", "ilp32f"}, {"rv64imac", "lp64"},
- {"rv64imafdc", "lp64d"}};
-
- std::vector<Multilib> Ms;
- for (auto Element : RISCVMultilibSet) {
- // multilib path rule is ${march}/${mabi}
- Ms.emplace_back(
- makeMultilib((Twine(Element.march) + "/" + Twine(Element.mabi)).str())
- .flag(Twine("+march=", Element.march).str())
- .flag(Twine("+mabi=", Element.mabi).str()));
- }
- MultilibSet RISCVMultilibs =
- MultilibSet()
- .Either(ArrayRef<Multilib>(Ms))
- .FilterOut(NonExistent)
- .setFilePathsCallback([](const Multilib &M) {
- return std::vector<std::string>(
- {M.gccSuffix(),
- "/../../../../riscv64-unknown-elf/lib" + M.gccSuffix(),
- "/../../../../riscv32-unknown-elf/lib" + M.gccSuffix()});
- });
-
-
- Multilib::flags_list Flags;
- llvm::StringSet<> Added_ABIs;
- StringRef ABIName = tools::riscv::getRISCVABI(Args, TargetTriple);
- StringRef MArch = tools::riscv::getRISCVArch(Args, TargetTriple);
- for (auto Element : RISCVMultilibSet) {
- addMultilibFlag(MArch == Element.march,
- Twine("march=", Element.march).str().c_str(), Flags);
- if (!Added_ABIs.count(Element.mabi)) {
- Added_ABIs.insert(Element.mabi);
- addMultilibFlag(ABIName == Element.mabi,
- Twine("mabi=", Element.mabi).str().c_str(), Flags);
- }
- }
-
- if (RISCVMultilibs.select(Flags, Result.SelectedMultilib))
- Result.Multilibs = RISCVMultilibs;
-}
-
static void 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);
FilterNonExistent NonExistent(Path, "/crtbegin.o", D.getVFS());
Multilib Ilp32 = makeMultilib("lib32/ilp32").flag("+m32").flag("+mabi=ilp32");
OpenPOWER on IntegriCloud