Skip to content

Commit 4ac58b6

Browse files
committed
[clang][Fuchsia] Ensure static sanitizer libs are only linked in after the -nostdlib check
Differential Revision: https://reviews.llvm.org/D119201
1 parent ead1690 commit 4ac58b6

File tree

2 files changed

+7
-12
lines changed

2 files changed

+7
-12
lines changed

clang/lib/Driver/ToolChains/CommonArgs.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -771,11 +771,6 @@ static const char *getAsNeededOption(const ToolChain &TC, bool as_needed) {
771771

772772
void tools::linkSanitizerRuntimeDeps(const ToolChain &TC,
773773
ArgStringList &CmdArgs) {
774-
// Fuchsia never needs these. Any sanitizer runtimes with system
775-
// dependencies use the `.deplibs` feature instead.
776-
if (TC.getTriple().isOSFuchsia())
777-
return;
778-
779774
// Force linking against the system libraries sanitizers depends on
780775
// (see PR15823 why this is necessary).
781776
CmdArgs.push_back(getAsNeededOption(TC, false));

clang/lib/Driver/ToolChains/Fuchsia.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,7 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA,
127127
D.getLTOMode() == LTOK_Thin);
128128
}
129129

130-
bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
131-
bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
132130
AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
133-
ToolChain.addProfileRTLibs(Args, CmdArgs);
134131

135132
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs,
136133
options::OPT_r)) {
@@ -153,11 +150,14 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA,
153150
}
154151
}
155152

156-
if (NeedsSanitizerDeps)
157-
linkSanitizerRuntimeDeps(ToolChain, CmdArgs);
153+
// Note that Fuchsia never needs to link in sanitizer runtime deps. Any
154+
// sanitizer runtimes with system dependencies use the `.deplibs` feature
155+
// instead.
156+
addSanitizerRuntimes(ToolChain, Args, CmdArgs);
158157

159-
if (NeedsXRayDeps)
160-
linkXRayRuntimeDeps(ToolChain, CmdArgs);
158+
addXRayRuntime(ToolChain, Args, CmdArgs);
159+
160+
ToolChain.addProfileRTLibs(Args, CmdArgs);
161161

162162
AddRunTimeLibs(ToolChain, D, CmdArgs, Args);
163163

0 commit comments

Comments
 (0)