commit:     093307e8692feea611157b9aa3d43d0835f51bdf
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 19 00:27:27 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jan 19 00:27:27 2026 +0000
URL:        
https://gitweb.gentoo.org/proj/toolchain/binutils-patches.git/commit/?id=093307e8

9999: try Jan's patches too

Signed-off-by: Sam James <sam <AT> gentoo.org>

 9999/0006-GNU-stack.patch                          |  62 +++++++
 ...-give-.note.GNU-stack-proper-section-type.patch | 178 ---------------------
 2 files changed, 62 insertions(+), 178 deletions(-)

diff --git a/9999/0006-GNU-stack.patch b/9999/0006-GNU-stack.patch
new file mode 100644
index 0000000..bdd2abc
--- /dev/null
+++ b/9999/0006-GNU-stack.patch
@@ -0,0 +1,62 @@
+https://sourceware.org/bugzilla/show_bug.cgi?id=33780#c10
+https://inbox.sourceware.org/binutils/[email protected]/
+https://inbox.sourceware.org/binutils/[email protected]/
+--- a/binutils/readelf.c
++++ b/binutils/readelf.c
+@@ -23802,8 +23802,8 @@ process_notes_at (Filedata *           f
+   char *end;
+   bool res = true;
+ 
+-  if (length <= 0)
+-    return false;
++  if (length == 0)
++    return true;
+ 
+   if (section)
+     {
+
+From 49c09f0770364570c37c2ad76e37754506e397d8 Mon Sep 17 00:00:00 2001
+Message-ID: 
<49c09f0770364570c37c2ad76e37754506e397d8.1768782380.git....@gentoo.org>
+From: "H.J. Lu" <[email protected]>
+Date: Thu, 15 Jan 2026 13:27:25 +0100
+Subject: [PATCH] amend "ELF: give .note.GNU-stack proper section type"
+
+PR ld/33780
+Correct the section's special_sections[] entry as well, and further
+constrain ld's setting of the section type.
+---
+ bfd/elf.c  | 2 +-
+ ld/ldelf.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/bfd/elf.c b/bfd/elf.c
+index 1177c3c3016..75a2e0b9358 100644
+--- a/bfd/elf.c
++++ b/bfd/elf.c
+@@ -3139,7 +3139,7 @@ static const struct bfd_elf_special_section 
special_sections_l[] =
+ static const struct bfd_elf_special_section special_sections_n[] =
+ {
+   { STRING_COMMA_LEN (".noinit"),      -2, SHT_NOBITS,   SHF_ALLOC + 
SHF_WRITE },
+-  { STRING_COMMA_LEN (".note.GNU-stack"), 0, SHT_PROGBITS, 0 },
++  { STRING_COMMA_LEN (".note.GNU-stack"), 0, SHT_NOTE,     0 },
+   { STRING_COMMA_LEN (".note"),                -1, SHT_NOTE,     0 },
+   { NULL,                  0,           0, 0,            0 }
+ };
+diff --git a/ld/ldelf.c b/ld/ldelf.c
+index fe4ab17b01f..a3f892a1934 100644
+--- a/ld/ldelf.c
++++ b/ld/ldelf.c
+@@ -1329,7 +1329,7 @@ ldelf_after_open (int use_libpath, int native, int 
is_linux, int is_freebsd,
+         flagword flags = SEC_READONLY | (link_info.execstack ? SEC_CODE : 0);
+         s = bfd_make_section_with_flags (link_info.input_bfds,
+                                          ".note.GNU-stack", flags);
+-        if (s)
++        if (s && bfd_get_flavour (s->owner) == bfd_target_elf_flavour)
+           elf_section_type (s) = SHT_NOTE;
+       }
+       return;
+
+base-commit: c9c234a8a86cbbad03e92bc04f91b612e7f915e2
+-- 
+2.52.0
+

diff --git 
a/9999/0006-Revert-ELF-give-.note.GNU-stack-proper-section-type.patch 
b/9999/0006-Revert-ELF-give-.note.GNU-stack-proper-section-type.patch
deleted file mode 100644
index c8a625d..0000000
--- a/9999/0006-Revert-ELF-give-.note.GNU-stack-proper-section-type.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From bd003d6e4b53b846fa8e576e050aee473bd4054d Mon Sep 17 00:00:00 2001
-Message-ID: 
<bd003d6e4b53b846fa8e576e050aee473bd4054d.1768126718.git....@gentoo.org>
-From: "H.J. Lu" <[email protected]>
-Date: Sat, 10 Jan 2026 11:41:48 +0800
-Subject: [PATCH] elf: Don't set .note.GNU-stack type to SHT_NOTE
-
-.note.GNU-stack section was introduced with the SHT_PROGBITS type.
-Although its name starts with ".note.", but it doesn't conform to
-SHT_NOTE specification:
-
-https://gabi.xinuos.com/v42/elf/07-pheader.html#note-sections
-
-since it is an empty section without the corresponding SHT_NOTE section
-fields and maps to PT_GNU_STACK segment, not PT_NOTE segment.  Linkers
-normally check section types when laying out the output, but they also
-check section names for special sections, like .note.GNU-stack.  It is
-inappropriate to set its type to SHT_NOTE.
-
-Revert
-
-commit c8db2c887b4129732341c4a1a51cdcd3191db271
-Author: Jan Beulich <[email protected]>
-Date:   Fri Jan 9 08:39:38 2026 +0100
-
-    ELF: give .note.GNU-stack proper section type
-
-and add tests to verify that .note.GNU-stack section has the SHT_PROGBITS
-type.
-
-gas/
-
-       PR ld/33780
-       * as.c (main): Don't set .note.GNU-stack section type to SHT_NOTE.
-       * testsuite/gas/elf/elf.exp: Run section-GNU-stack.
-       * testsuite/gas/elf/section-GNU-stack.d: New file.
-       * testsuite/gas/elf/section-GNU-stack.s: Likewise.
-
-ld/
-
-       PR ld/33780
-       * ldelf.c (ldelf_after_open): Don't set .note.GNU-stack section
-       type to SHT_NOTE.
-       * testsuite/ld-elf/pr33780a.d: New file.
-       * testsuite/ld-elf/pr33780b.d: Likewise.
-       * testsuite/ld-elf/pr33780c.d: Likewise.
-
-Signed-off-by: H.J. Lu <[email protected]>
----
- gas/as.c                                  |  1 -
- gas/testsuite/gas/elf/elf.exp             |  1 +
- gas/testsuite/gas/elf/section-GNU-stack.d |  5 +++++
- gas/testsuite/gas/elf/section-GNU-stack.s |  1 +
- ld/ldelf.c                                |  6 ++----
- ld/testsuite/ld-elf/pr33780a.d            |  9 +++++++++
- ld/testsuite/ld-elf/pr33780b.d            |  9 +++++++++
- ld/testsuite/ld-elf/pr33780c.d            | 16 ++++++++++++++++
- 8 files changed, 43 insertions(+), 5 deletions(-)
- create mode 100644 gas/testsuite/gas/elf/section-GNU-stack.d
- create mode 100644 gas/testsuite/gas/elf/section-GNU-stack.s
- create mode 100644 ld/testsuite/ld-elf/pr33780a.d
- create mode 100644 ld/testsuite/ld-elf/pr33780b.d
- create mode 100644 ld/testsuite/ld-elf/pr33780c.d
-
-diff --git a/gas/as.c b/gas/as.c
-index d0e508cb2e3..200835b9311 100644
---- a/gas/as.c
-+++ b/gas/as.c
-@@ -1505,7 +1505,6 @@ main (int argc, char ** argv)
-       gnustack = subseg_new (".note.GNU-stack", 0);
-       bfd_set_section_flags (gnustack,
-                            SEC_READONLY | (flag_execstack ? SEC_CODE : 0));
--      elf_section_type (gnustack) = SHT_NOTE;
-     }
- #endif
- 
-diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
-index 35e06ce58b3..35273d42d0c 100644
---- a/gas/testsuite/gas/elf/elf.exp
-+++ b/gas/testsuite/gas/elf/elf.exp
-@@ -389,5 +389,6 @@ if { [is_elf_format] } then {
- 
-     run_dump_test "bignums" $dump_opts
-     run_dump_test "section-symbol-redef"
-+    run_dump_test "section-GNU-stack"
-     run_dump_test "pr27228"
- }
-diff --git a/gas/testsuite/gas/elf/section-GNU-stack.d 
b/gas/testsuite/gas/elf/section-GNU-stack.d
-new file mode 100644
-index 00000000000..9bdc4d23ccd
---- /dev/null
-+++ b/gas/testsuite/gas/elf/section-GNU-stack.d
-@@ -0,0 +1,5 @@
-+#readelf: -SW
-+
-+#...
-+  \[[ 0-9]+\] \.note\.GNU-stack[ \t]+PROGBITS[ \t]+0+ +[0-9a-f]+ +0+ +00 +0 
+0 +1
-+#pass
-diff --git a/gas/testsuite/gas/elf/section-GNU-stack.s 
b/gas/testsuite/gas/elf/section-GNU-stack.s
-new file mode 100644
-index 00000000000..a096c762633
---- /dev/null
-+++ b/gas/testsuite/gas/elf/section-GNU-stack.s
-@@ -0,0 +1 @@
-+      .section .note.GNU-stack
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index fe4ab17b01f..a67f540b2df 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1327,10 +1327,8 @@ ldelf_after_open (int use_libpath, int native, int 
is_linux, int is_freebsd,
-            effect.  Instead we create a .note.GNU-stack section in much the
-            same way as the assembler does with its --[no]execstack option.  */
-         flagword flags = SEC_READONLY | (link_info.execstack ? SEC_CODE : 0);
--        s = bfd_make_section_with_flags (link_info.input_bfds,
--                                         ".note.GNU-stack", flags);
--        if (s)
--          elf_section_type (s) = SHT_NOTE;
-+        (void) bfd_make_section_with_flags (link_info.input_bfds,
-+                                            ".note.GNU-stack", flags);
-       }
-       return;
-     }
-diff --git a/ld/testsuite/ld-elf/pr33780a.d b/ld/testsuite/ld-elf/pr33780a.d
-new file mode 100644
-index 00000000000..a4a199d72a6
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr33780a.d
-@@ -0,0 +1,9 @@
-+#source: empty.s
-+#ld: -r -z noexecstack --format=binary
-+#readelf: -SW
-+# These targets don't support -z.
-+#xfail: [uses_genelf]
-+
-+#...
-+  \[[ 0-9]+\] \.note\.GNU-stack[ \t]+PROGBITS[ \t]+0+ +[0-9a-f]+ +0+ +00 +0 
+0 +1
-+#pass
-diff --git a/ld/testsuite/ld-elf/pr33780b.d b/ld/testsuite/ld-elf/pr33780b.d
-new file mode 100644
-index 00000000000..d35c0bd84cb
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr33780b.d
-@@ -0,0 +1,9 @@
-+#source: empty.s
-+#ld: -r -z noexecstack
-+#readelf: -SW
-+# These targets don't support -z.
-+#xfail: [uses_genelf]
-+
-+#...
-+  \[[ 0-9]+\] \.note\.GNU-stack[ \t]+PROGBITS[ \t]+0+ +[0-9a-f]+ +0+ +00 +0 
+0 +1
-+#pass
-diff --git a/ld/testsuite/ld-elf/pr33780c.d b/ld/testsuite/ld-elf/pr33780c.d
-new file mode 100644
-index 00000000000..b5ff68e262e
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr33780c.d
-@@ -0,0 +1,16 @@
-+#source: property-or-1.s
-+#as: --generate-missing-build-notes=no
-+#ld: -r -z noexecstack
-+#readelf: -n
-+#xfail: ![check_shared_lib_support]
-+#notarget: am33_2.0-*-* hppa*-*-hpux* mn10300-*-*
-+# Assembly source file for the HPPA assembler is renamed and modifed by
-+# sed.  mn10300 has relocations in .note.gnu.property section which
-+# elf_parse_notes doesn't support.
-+
-+#...
-+Displaying notes found in: .note.gnu.property
-+[     ]+Owner[        ]+Data size[    ]+Description
-+  GNU                  0x[0-9a-f]+    NT_GNU_PROPERTY_TYPE_0
-+      Properties: UINT32_OR \(0xb000ffff\): 0x3
-+#pass
-
-base-commit: 93285ef5f3106df2016fdd231121bbfcf92ead51
--- 
-2.52.0
-

Reply via email to