tambre created this revision. tambre added a reviewer: phosek. Herald added subscribers: cfe-commits, mgorny. Herald added a project: clang. tambre requested review of this revision.
When LLVM_ENABLE_PER_TARGET_RUNTIME_DIR is set to ON the clang_rt.builtins will not have an architecture prefix and will be placed instead in an architecture directory. This causes issues with the bare-metal toolchain, which assumes the suffixed variant. Add a define dependent on LLVM_ENABLE_PER_TARGET_RUNTIME_DIR, which switches the bare-metal toolchain to use the unsuffixed version if enabled. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D86877 Files: clang/lib/Driver/CMakeLists.txt clang/lib/Driver/ToolChains/BareMetal.cpp Index: clang/lib/Driver/ToolChains/BareMetal.cpp =================================================================== --- clang/lib/Driver/ToolChains/BareMetal.cpp +++ clang/lib/Driver/ToolChains/BareMetal.cpp @@ -156,8 +156,12 @@ void BareMetal::AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs) const { - CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins-" + - getTriple().getArchName())); +#ifdef PER_TARGET_RUNTIME_DIR + CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins")); +#else + CmdArgs.push_back( + Args.MakeArgString("-lclang_rt.builtins" + getTriple().getArchName())); +#endif } void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA, Index: clang/lib/Driver/CMakeLists.txt =================================================================== --- clang/lib/Driver/CMakeLists.txt +++ clang/lib/Driver/CMakeLists.txt @@ -83,3 +83,7 @@ clangBasic ${system_libs} ) + +if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR) + set_source_files_properties(ToolChains/BareMetal.cpp PROPERTIES COMPILE_DEFINITIONS "PER_TARGET_RUNTIME_DIR") +endif()
Index: clang/lib/Driver/ToolChains/BareMetal.cpp =================================================================== --- clang/lib/Driver/ToolChains/BareMetal.cpp +++ clang/lib/Driver/ToolChains/BareMetal.cpp @@ -156,8 +156,12 @@ void BareMetal::AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs) const { - CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins-" + - getTriple().getArchName())); +#ifdef PER_TARGET_RUNTIME_DIR + CmdArgs.push_back(Args.MakeArgString("-lclang_rt.builtins")); +#else + CmdArgs.push_back( + Args.MakeArgString("-lclang_rt.builtins" + getTriple().getArchName())); +#endif } void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA, Index: clang/lib/Driver/CMakeLists.txt =================================================================== --- clang/lib/Driver/CMakeLists.txt +++ clang/lib/Driver/CMakeLists.txt @@ -83,3 +83,7 @@ clangBasic ${system_libs} ) + +if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR) + set_source_files_properties(ToolChains/BareMetal.cpp PROPERTIES COMPILE_DEFINITIONS "PER_TARGET_RUNTIME_DIR") +endif()
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits