Skip to content

Commit 68e7d10

Browse files
committed
[Darwin] Fix link flags for Cilksan and Cilkscale on Darwin.
1 parent b79d386 commit 68e7d10

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

clang/lib/Driver/ToolChains/Darwin.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1144,6 +1144,17 @@ void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args,
11441144
AddLinkRuntimeLib(Args, CmdArgs, Sanitizer, RLO, Shared);
11451145
}
11461146

1147+
void DarwinClang::AddCilktoolRTLibs(const ArgList &Args,
1148+
ArgStringList &CmdArgs) const {
1149+
if (Arg *A = Args.getLastArg(options::OPT_fcilktool_EQ)) {
1150+
StringRef Val = A->getValue();
1151+
auto RLO = RuntimeLinkOptions(RLO_AlwaysLink);
1152+
AddLinkRuntimeLib(Args, CmdArgs, Val, RLO);
1153+
// Link in the C++ standard library
1154+
AddCXXStdlibLibArgs(Args, CmdArgs);
1155+
}
1156+
}
1157+
11471158
ToolChain::RuntimeLibType DarwinClang::GetRuntimeLibType(
11481159
const ArgList &Args) const {
11491160
if (Arg* A = Args.getLastArg(options::OPT_rtlib_EQ)) {
@@ -1193,7 +1204,7 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
11931204
if (Sanitize.needsTsanRt())
11941205
AddLinkSanitizerLibArgs(Args, CmdArgs, "tsan");
11951206
if (Sanitize.needsCilksanRt())
1196-
AddLinkSanitizerLibArgs(Args, CmdArgs, "cilk");
1207+
AddLinkSanitizerLibArgs(Args, CmdArgs, "cilksan");
11971208
if (Sanitize.needsFuzzer() && !Args.hasArg(options::OPT_dynamiclib)) {
11981209
AddLinkSanitizerLibArgs(Args, CmdArgs, "fuzzer", /*shared=*/false);
11991210

@@ -1205,6 +1216,8 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
12051216
AddLinkSanitizerLibArgs(Args, CmdArgs, "stats");
12061217
}
12071218

1219+
AddCilktoolRTLibs(Args, CmdArgs);
1220+
12081221
const XRayArgs &XRay = getXRayArgs();
12091222
if (XRay.needsXRayRt()) {
12101223
AddLinkRuntimeLib(Args, CmdArgs, "xray");

clang/lib/Driver/ToolChains/Darwin.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,9 @@ class LLVM_LIBRARY_VISIBILITY DarwinClang : public Darwin {
533533
StringRef Sanitizer,
534534
bool shared = true) const;
535535

536+
void AddCilktoolRTLibs(const llvm::opt::ArgList &Args,
537+
llvm::opt::ArgStringList &CmdArgs) const;
538+
536539
bool AddGnuCPlusPlusIncludePaths(const llvm::opt::ArgList &DriverArgs,
537540
llvm::opt::ArgStringList &CC1Args,
538541
llvm::SmallString<128> Base,

0 commit comments

Comments
 (0)