llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang @llvm/pr-subscribers-clang-driver Author: Edd Dawson (playstation-edd) <details> <summary>Changes</summary> If a linker script is explicitly supplied, there's no benefit to supplying a default script. SIE tracker: TOOLCHAIN-17524 --- Full diff: https://github.com/llvm/llvm-project/pull/116074.diff 2 Files Affected: - (modified) clang/lib/Driver/ToolChains/PS4CPU.cpp (+6-4) - (modified) clang/test/Driver/ps5-linker.c (+6-1) ``````````diff diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp index df43da93d77555..03445375796533 100644 --- a/clang/lib/Driver/ToolChains/PS4CPU.cpp +++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp @@ -303,10 +303,12 @@ void tools::PS5cpu::Linker::ConstructJob(Compilation &C, const JobAction &JA, // with the SDK. The scripts are inside <sdkroot>/target/lib, which is // added as a search path elsewhere. // "PRX" has long stood for "PlayStation Relocatable eXecutable". - CmdArgs.push_back("--default-script"); - CmdArgs.push_back(Static ? "static.script" - : Shared ? "prx.script" - : "main.script"); + if (!Args.hasArgNoClaim(options::OPT_T)) { + CmdArgs.push_back("--default-script"); + CmdArgs.push_back(Static ? "static.script" + : Shared ? "prx.script" + : "main.script"); + } } if (Static) diff --git a/clang/test/Driver/ps5-linker.c b/clang/test/Driver/ps5-linker.c index 95267942edc172..216b11a8c52d71 100644 --- a/clang/test/Driver/ps5-linker.c +++ b/clang/test/Driver/ps5-linker.c @@ -67,12 +67,14 @@ // CHECK-NO-EXE-NOT: "--unresolved-symbols // CHECK-NO-EXE-NOT: "-z" -// Test that an appropriate linker script is supplied by the driver. +// Test that an appropriate linker script is supplied by the driver, but can +// be overridden with -T. // RUN: %clang --target=x86_64-sie-ps5 %s -### 2>&1 | FileCheck --check-prefixes=CHECK-SCRIPT -DSCRIPT=main %s // RUN: %clang --target=x86_64-sie-ps5 %s -shared -### 2>&1 | FileCheck --check-prefixes=CHECK-SCRIPT -DSCRIPT=prx %s // RUN: %clang --target=x86_64-sie-ps5 %s -static -### 2>&1 | FileCheck --check-prefixes=CHECK-SCRIPT -DSCRIPT=static %s // RUN: %clang --target=x86_64-sie-ps5 %s -r -### 2>&1 | FileCheck --check-prefixes=CHECK-NO-SCRIPT %s +// RUN: %clang --target=x86_64-sie-ps5 %s -T custom.script -### 2>&1 | FileCheck --check-prefixes=CHECK-CUSTOM-SCRIPT --implicit-check-not "\"{{-T|--script|--default-script}}\"" %s // CHECK-SCRIPT: {{ld(\.exe)?}}" // CHECK-SCRIPT-SAME: "--default-script" "[[SCRIPT]].script" @@ -80,6 +82,9 @@ // CHECK-NO-SCRIPT: {{ld(\.exe)?}}" // CHECK-NO-SCRIPT-NOT: "--default-script" +// CHECK-CUSTOM-SCRIPT: {{ld(\.exe)?}}" +// CHECK-CUSTOM-SCRIPT-SAME: "-T" "custom.script" + // Test that -static is forwarded to the linker // RUN: %clang --target=x86_64-sie-ps5 -static %s -### 2>&1 | FileCheck --check-prefixes=CHECK-STATIC %s `````````` </details> https://github.com/llvm/llvm-project/pull/116074 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits