[COMMITTED] ld: Replace "{dummy.s}" with "[list $dummy_s]"

Message ID CAMe9rOoENgS6HmAmCBnMtVC6fHnK0zEYU6DoVjjpNfaYbVFHRg@mail.gmail.com
State Committed
Headers
Series [COMMITTED] ld: Replace "{dummy.s}" with "[list $dummy_s]" |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply

Commit Message

H.J. Lu Aug. 28, 2026, 8:42 p.m. UTC
  On Fri, Aug 28, 2026 at 8:29 PM Alan Modra <amodra@gmail.com> wrote:
>
> On Fri, Aug 28, 2026 at 04:24:48PM +0800, H.J. Lu wrote:
> > I am checking this patch after testing with x86_64-w64-mingw32.
>
> Fails remain.
>
> +FAIL: ld-plugin/lto-3r
> +FAIL: ld-plugin/lto-4r-a
> +FAIL: ld-plugin/lto-4r-b
> +FAIL: ld-plugin/lto-4r-c
> +FAIL: ld-plugin/lto-4r-d
> +FAIL: ld-plugin/lto-5r
> +FAIL: ld-plugin/lto-10r
> +FAIL: PR ld/19317 (2)
> +FAIL: LTO 3b
> +FAIL: PR ld/19317 (3)
>
> ld-plugin/dummy.s: Assembler messages:
> ld-plugin/dummy.s:1: Error: junk at end of line, first unrecognized character is `-
> '
>
> The above also caused a bunch of tests to not be run.
>
> --
> Alan Modra

I am checking in this patch.
  

Patch

From 6a767489f77766496a4359caed5f7b1fa8eada2a Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Sat, 29 Aug 2026 04:24:13 +0800
Subject: [PATCH] ld: Replace "{dummy.s}" with "[list $dummy_s]"

commit d658ddcc389085970ac025414cae7ad908f40726
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Aug 28 09:08:39 2026 +0800

    lto: Don't check format of IR dummy file

added

	.section .note.GNU-stack,"",%progbits

to testsuite/ld-plugin/dummy.s for PR ld/34572 tests with Clang.  But
it doesn't work for non-ELF targets.  Add dummy-elf.s and restore the
previous dummy.s.  Define dummy_s to dummy-elf.s for ELF targets and to
dummy.s for non-ELF targets.  Replace "{dummy.s}" with "[list $dummy_s]".
Also build pr28264.so only for ELF targets since it uses readelf.

	PR ld/28264
	PR ld/34572
	* testsuite/ld-plugin/dummy-elf.s: New file.
	* testsuite/ld-plugin/dummy.s: Revert commit d658ddcc389.
	* testsuite/ld-plugin/lto.exp (dummy_s): New.
	Build pr28264.so only for ELF targets.
	Replace "{dummy.s}" with "[list $dummy_s]".

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
 ld/testsuite/ld-plugin/dummy-elf.s |  1 +
 ld/testsuite/ld-plugin/dummy.s     |  2 +-
 ld/testsuite/ld-plugin/lto.exp     | 35 ++++++++++++++++++++----------
 3 files changed, 25 insertions(+), 13 deletions(-)
 create mode 100644 ld/testsuite/ld-plugin/dummy-elf.s

diff --git a/ld/testsuite/ld-plugin/dummy-elf.s b/ld/testsuite/ld-plugin/dummy-elf.s
new file mode 100644
index 00000000000..0f5ab47ca42
--- /dev/null
+++ b/ld/testsuite/ld-plugin/dummy-elf.s
@@ -0,0 +1 @@ 
+	.section	.note.GNU-stack,"",%progbits
diff --git a/ld/testsuite/ld-plugin/dummy.s b/ld/testsuite/ld-plugin/dummy.s
index 0f5ab47ca42..8b137891791 100644
--- a/ld/testsuite/ld-plugin/dummy.s
+++ b/ld/testsuite/ld-plugin/dummy.s
@@ -1 +1 @@ 
-	.section	.note.GNU-stack,"",%progbits
+
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index faa7c68770d..a4975a0822d 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -51,6 +51,12 @@  if { [check_lto_fat_available] } {
   set no_lto "-fno-lto"
 }
 
+if { [is_elf_format] } {
+    set dummy_s "dummy-elf.s"
+} else {
+    set dummy_s "dummy.s"
+}
+
 set as_gsframe ""
 if { [gas_sframe_check] } {
     set as_gsframe "-Wa,--gsframe"
@@ -284,16 +290,21 @@  if { [at_least_gcc_version 10 0] && [check_lto_shared_available] } {
 	 "-flto -fno-common $lto_no_fat" \
 	 {pr25355.c} \
 	 [list [list "nm" "$plug_opt" "pr25355.d"]]] \
-	[list "pr28264.so" \
-	 "-shared -Wl,--version-script=pr28264.ver" \
-	 "-flto $lto_no_fat -fPIC" \
-	 {pr28264.c} \
-	 {{readelf {--dyn-syms --wide} pr28264-1.d} \
-	  {readelf {--dyn-syms --wide} pr28264-2.d} \
-	  {readelf {--dyn-syms --wide} pr28264-3.d} \
-	  {readelf {--dyn-syms --wide} pr28264-4.d}} \
-	 {pr28264.so}] \
     ]]
+
+    if { [is_elf_format] } {
+	lappend lto_link_tests [list \
+	    "pr28264.so" \
+	    "-shared -Wl,--version-script=pr28264.ver" \
+	    "-flto $lto_no_fat -fPIC" \
+	    {pr28264.c} \
+	    {{readelf {--dyn-syms --wide} pr28264-1.d} \
+	     {readelf {--dyn-syms --wide} pr28264-2.d} \
+	     {readelf {--dyn-syms --wide} pr28264-3.d} \
+	     {readelf {--dyn-syms --wide} pr28264-4.d}} \
+	    {pr28264.so}] \
+	]
+    }
 }
 
 if { [at_least_gcc_version 4 7] } {
@@ -1179,7 +1190,7 @@  run_cc_link_tests $lto_link_symbol_tests
 run_ld_link_tests [list \
   [list "PR ld/19317 (2)" \
    "-r tmpdir/pr19317.o --no-error-execstack" "" "" \
-   {dummy.s} {} "pr19317-r.o"] \
+   [list $dummy_s] {} "pr19317-r.o"] \
 ]
 
 run_ld_link_exec_tests $lto_run_tests
@@ -1494,7 +1505,7 @@  proc llvm_lto_tests {} {
 	    "Build pr34572a.exe" \
 	    "-flto -Wl,--start-lib tmpdir/pr34572a.o -Wl,--end-lib" \
 	    "" \
-	    {dummy.s} \
+	    [list $dummy_s] \
 	    {} \
 	    "pr34572a.exe"
 	] \
@@ -1517,7 +1528,7 @@  proc llvm_lto_tests {} {
 	    "$llvm_plug_opt --start-lib tmpdir/pr34572b.o --end-lib" \
 	    "" \
 	    "" \
-	    {dummy.s} \
+	    [list $dummy_s] \
 	    {{readelf {-sW} pr34572.rd}} \
 	    "pr34572b.exe" \
 	] \
-- 
2.55.0