================
@@ -240,11 +242,32 @@ void tools::PS5cpu::Linker::ConstructJob(Compilation &C, 
const JobAction &JA,
   CmdArgs.push_back(
       Args.MakeArgString("--sysroot=" + TC.getSDKLibraryRootDir()));
 
-  // Default to PIE for non-static executables.
-  const bool PIE =
-      !Args.hasArg(options::OPT_r, options::OPT_shared, options::OPT_static);
-  if (Args.hasFlag(options::OPT_pie, options::OPT_no_pie, PIE))
-    CmdArgs.push_back("-pie");
+  if (!Relocatable) {
+    // Default to PIE for non-static executables.
+    const bool PIE = !Args.hasArg(options::OPT_shared, options::OPT_static);
+    if (Args.hasFlag(options::OPT_pie, options::OPT_no_pie, PIE))
+      CmdArgs.push_back("-pie");
----------------
playstation-edd wrote:

The inclusion was deliberate. I took the opportunity to perform the check for 
`OPT_r` in one place. But I didn't spot the edge-case change in behaviour that 
you mention, forgetting that `hasArg()` had a side-effect - sorry!

Would we prefer that undo this bit and defer to a separate PR? Or update the 
final commit message and perhaps add a test case for the behaviour change?

https://github.com/llvm/llvm-project/pull/113162
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to