Skip to content

Commit 5560f7e

Browse files
[PS5][Driver] Query OPT_r/OPT_shared/OPT_static just once (NFC) (#113452)
1 parent a19f05b commit 5560f7e

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

clang/lib/Driver/ToolChains/PS4CPU.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ void tools::PS5cpu::Linker::ConstructJob(Compilation &C, const JobAction &JA,
230230
ArgStringList CmdArgs;
231231

232232
const bool Relocatable = Args.hasArg(options::OPT_r);
233+
const bool Shared = Args.hasArg(options::OPT_shared);
234+
const bool Static = Args.hasArg(options::OPT_static);
233235

234236
// Silence warning for "clang -g foo.o -o foo"
235237
Args.ClaimAllArgs(options::OPT_g_Group);
@@ -243,8 +245,7 @@ void tools::PS5cpu::Linker::ConstructJob(Compilation &C, const JobAction &JA,
243245
Args.MakeArgString("--sysroot=" + TC.getSDKLibraryRootDir()));
244246

245247
// Default to PIE for non-static executables.
246-
const bool PIE =
247-
!Args.hasArg(options::OPT_r, options::OPT_shared, options::OPT_static);
248+
const bool PIE = !Relocatable && !Shared && !Static;
248249
if (Args.hasFlag(options::OPT_pie, options::OPT_no_pie, PIE))
249250
CmdArgs.push_back("-pie");
250251

@@ -270,11 +271,11 @@ void tools::PS5cpu::Linker::ConstructJob(Compilation &C, const JobAction &JA,
270271
CmdArgs.push_back("dead-reloc-in-nonalloc=.debug_loc=0xfffffffffffffffe");
271272
}
272273

273-
if (Args.hasArg(options::OPT_static))
274+
if (Static)
274275
CmdArgs.push_back("-static");
275276
if (Args.hasArg(options::OPT_rdynamic))
276277
CmdArgs.push_back("-export-dynamic");
277-
if (Args.hasArg(options::OPT_shared))
278+
if (Shared)
278279
CmdArgs.push_back("--shared");
279280

280281
assert((Output.isFilename() || Output.isNothing()) && "Invalid output.");

0 commit comments

Comments
 (0)