https://sourceware.org/bugzilla/show_bug.cgi?id=28488

--- Comment #9 from Mark Wielaard <mark at klomp dot org> ---
So the real difference is that with the Fedora the .note.gnu.property has
alignment 4 and so it gets merged with the other (allocated) note sections. But
the opensuse version .note.gnu.property has alignment 8 and ends up in its own
phdr NOTE segment.

I don't know whether this is buggy or if eu-elflint just gets confused about
it.

Creating NOTEs with an alignment of 8 was controversial since at least on GNU
systems all other NOTEs have alignment 4 whether or not using ELFCLASS32 or
ELFCLASS64.

Handling of gnu property notes was added with:

commit 5199e15870e05e5b0b9f98c20fc9b5427aa6dd6a
Author: Mark Wielaard <m...@klomp.org>
Date:   Mon Oct 15 23:35:47 2018 +0200

    Recognize and parse GNU Property notes.

    GNU Property notes are different from normal notes because they use
    variable alignment/padding of their fields. They are 8 byte aligned,
    but use 4 byte fields. The name is aligned at 4 bytes and padded so
    that, the desc is aligned at 8 bytes. The whole note is padded to
    8 bytes again. For normal notes all fields are both 4 bytes wide and
    4 bytes aligned.

    To recognize these new kind of ELF Notes a new Elf_Type is introduced,
    ELF_T_NHDR8. This type is used in the xlate functions to determine
    how to align and pad the various fields. Since the fields themselves
    can now have different alignments we will have to keep track of the
    current alignement and use either NOTE_ALIGN4 or NOTE_ALIGN8 to
    determine the padding.

    To set the correct Elf_Type on the Elf_Data we use either the section
    sh_addralign or the segment p_align values. Assuming 8 means the
    section or segment contains the new style notes, otherwise normal
    notes.

    When we cannot determine the "alignment" directly, like when parsing
    special kernel sys files, we check the name "GNU" and type
    "GNU_PROPERTY_TYPE_0" fields.

    ebl_object_note now parses the new NT_GNU_PROPERTY_TYPE_0 and can
    extract the GNU_PROPERTY_STACK_SIZE, GNU_PROPERTY_NO_COPY_ON_PROTECTED
    and GNU_PROPERTY_X86_FEATURE_1_AND types GNU_PROPERTY_X86_FEATURE_1_IBT
    and GNU_PROPERTY_X86_FEATURE_1_SHSTK.

    Tests are added for extracting the note from sections or segments
    as set by gcc -fcf-protection.

    Signed-off-by: Mark Wielaard <m...@klomp.org>

Another maybe (or maybe not) related bug:
"unknown program header entry type 0x6474e553 (PT_GNU_PROPERTY)"
https://sourceware.org/bugzilla/show_bug.cgi?id=25511

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to