[clang] [Clang] Don't use crtbegin/crtend when building for musl. (PR #85089)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 13 07:40:23 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Alastair Houghton (al45tair)
<details>
<summary>Changes</summary>
musl doesn't supply crtbegin/crtend objects, so we don't want to try to link them there.
rdar://123436174
---
Full diff: https://github.com/llvm/llvm-project/pull/85089.diff
1 Files Affected:
- (modified) clang/lib/Driver/ToolChains/Gnu.cpp (+4-2)
``````````diff
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index a9c9d2475809d7..7b7d9194a773ec 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -371,13 +371,15 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
const llvm::Triple::ArchType Arch = ToolChain.getArch();
const bool isOHOSFamily = ToolChain.getTriple().isOHOSFamily();
const bool isAndroid = ToolChain.getTriple().isAndroid();
+ const bool isMusl = ToolChain.getTriple().isMusl();
const bool IsIAMCU = ToolChain.getTriple().isOSIAMCU();
const bool IsVE = ToolChain.getTriple().isVE();
const bool IsStaticPIE = getStaticPIE(Args, ToolChain);
const bool IsStatic = getStatic(Args);
const bool HasCRTBeginEndFiles =
- ToolChain.getTriple().hasEnvironment() ||
- (ToolChain.getTriple().getVendor() != llvm::Triple::MipsTechnologies);
+ !isMusl && (ToolChain.getTriple().hasEnvironment() ||
+ (ToolChain.getTriple().getVendor()
+ != llvm::Triple::MipsTechnologies));
ArgStringList CmdArgs;
``````````
</details>
https://github.com/llvm/llvm-project/pull/85089
More information about the cfe-commits
mailing list