This revision was automatically updated to reflect the committed changes. Closed by commit rG51c5add8547a: Extending Baremetal toolchain's support for the rtlib option. (authored by jroelofs).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87164/new/ https://reviews.llvm.org/D87164 Files: clang/lib/Driver/ToolChains/BareMetal.cpp clang/test/Driver/baremetal.cpp Index: clang/test/Driver/baremetal.cpp =================================================================== --- clang/test/Driver/baremetal.cpp +++ clang/test/Driver/baremetal.cpp @@ -83,3 +83,7 @@ // RUN: %clangxx -target arm-none-eabi -mthread-model posix -v 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-POSIX // CHECK-THREAD-MODEL-POSIX: Thread model: posix + +// RUN: %clang -### -target arm-none-eabi -rtlib=libgcc -v %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-RTLIB-GCC +// CHECK-RTLIB-GCC: -lgcc Index: clang/lib/Driver/ToolChains/BareMetal.cpp =================================================================== --- clang/lib/Driver/ToolChains/BareMetal.cpp +++ clang/lib/Driver/ToolChains/BareMetal.cpp @@ -156,8 +156,17 @@ void BareMetal::AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs) const { - CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins-" + - getTriple().getArchName())); + ToolChain::RuntimeLibType RLT = GetRuntimeLibType(Args); + switch (RLT) { + case ToolChain::RLT_CompilerRT: + CmdArgs.push_back( + Args.MakeArgString("-lclang_rt.builtins-" + getTriple().getArchName())); + return; + case ToolChain::RLT_Libgcc: + CmdArgs.push_back("-lgcc"); + return; + } + llvm_unreachable("Unhandled RuntimeLibType."); } void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA,
Index: clang/test/Driver/baremetal.cpp =================================================================== --- clang/test/Driver/baremetal.cpp +++ clang/test/Driver/baremetal.cpp @@ -83,3 +83,7 @@ // RUN: %clangxx -target arm-none-eabi -mthread-model posix -v 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL-POSIX // CHECK-THREAD-MODEL-POSIX: Thread model: posix + +// RUN: %clang -### -target arm-none-eabi -rtlib=libgcc -v %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-RTLIB-GCC +// CHECK-RTLIB-GCC: -lgcc Index: clang/lib/Driver/ToolChains/BareMetal.cpp =================================================================== --- clang/lib/Driver/ToolChains/BareMetal.cpp +++ clang/lib/Driver/ToolChains/BareMetal.cpp @@ -156,8 +156,17 @@ void BareMetal::AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs) const { - CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins-" + - getTriple().getArchName())); + ToolChain::RuntimeLibType RLT = GetRuntimeLibType(Args); + switch (RLT) { + case ToolChain::RLT_CompilerRT: + CmdArgs.push_back( + Args.MakeArgString("-lclang_rt.builtins-" + getTriple().getArchName())); + return; + case ToolChain::RLT_Libgcc: + CmdArgs.push_back("-lgcc"); + return; + } + llvm_unreachable("Unhandled RuntimeLibType."); } void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits