================ @@ -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