[PATCH v2] elf: Don't set .note.GNU-stack type to SHT_NOTE

Jan Beulich jbeulich@suse.com
Mon Jan 12 10:52:24 GMT 2026


On 11.01.2026 01:57, H.J. Lu wrote:
> On Sat, Jan 10, 2026 at 5:35 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>>
>> On Sat, Jan 10, 2026, 5:28 PM Jan Beulich <jbeulich@suse.com> wrote:
>>>
>>> On 10.01.2026 04:50, H.J. Lu wrote:
>>>> .note.GNU-stack section doesn't conform to SHT_NOTE spec:
>>>>
>>>> https://gabi.xinuos.com/v42/elf/07-pheader.html#note-sections
>>>>
>>>> since it is an empty section with the corresponding fields.  It maps to
>>>> PT_GNU_STACK segment, not PT_NOTE segment.  It is inappropriate to set
>>>> its type to SHT_NOTE.
>>>
>>> Then it's also inappropriate to name it .note.*, as that way it will be
>>> covered by .note.* as commonly used
>>
>>
>> This was an overnight when it was introduced.
>> On the other hand, linker should check
>> section type, not section name, except
>> for special sections.
>>
>>> in linker scripts. I really wonder why
>>> no-one has cared to respond to the patch when it was still uncommitted ...
> 
> Here is the v2 patch to add more tests.

I continue to disagree; see my comments in the bug. But of course I'm happy
to learn ... Imo we should go with your originally propose patch plus the
correction of the table entry in bfd/elf.c, requiring as a prereq the patch
below (both yet to be properly tested for a wide range of targets).

Jan

readelf: don't (silently) fail on empty SHT_NOTE sections

Them simply containing no entries is not an error. Such sections simply
have nothing to dump. (Exiting with non-zero status but no error message
isn't quite appropriate anyway.)

--- 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)
     {



More information about the Binutils mailing list