bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/22914] Gold doesn't support .note.gnu.property section (NT_GNU


From: cvs-commit at gcc dot gnu.org
Subject: [Bug gold/22914] Gold doesn't support .note.gnu.property section (NT_GNU_PROPERTY_TYPE_0)
Date: Sat, 23 Jun 2018 06:37:44 +0000

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

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by Cary Coutant <address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a2575bec2413d361c6ecfc4aecb2a31c86123f95

commit a2575bec2413d361c6ecfc4aecb2a31c86123f95
Author: Cary Coutant <address@hidden>
Date:   Fri Jun 22 23:36:50 2018 -0700

    Update support for .note.gnu.property sections.

    The original patch did not give the target enough hooks to discover that
    an input object file does not have a particular property. For the
    GNU_PROPERTY_X86_FEATURE_1_AND property, for example, where a missing
    property should be assumed to be all zeroes, and ANDed with other
    object modules, this is essential. We now store the target-specific
    properties locally in the Target structure as native uint32_t fields,
    then AND the per-object feature bits with the program's feature bits
    when we're finished processing each input object file. The target-specific
    properties are then added back to the output note section during
    finalization.

    gold/
        PR gold/22914
        * layout.cc (read_sized_value): Fix spelling of section name.
        (Layout::layout_gnu_property): Call Sized_target::record_gnu_property
        for target-specific properties;
        don't store them with target-independent properties yet.
        (Layout::merge_gnu_properties): New method.
        (Layout::add_gnu_property): New method.
        (Layout::create_gnu_properties_note): Call target to finalize
        target-specific properties. Fix spelling of output section name.
        * layout.h (Layout::merge_gnu_properties): New method.
        (Layout::add_gnu_property): New method.
        * object.cc (Sized_relobj_file::do_layout): Call
        Layout::merge_gnu_properties.
        * target.h (Target::merge_gnu_property): Remove.
        (Target::finalize_gnu_properties): New method.
        (Target::do_merge_gnu_property): Move to Sized_target and rename.
        (Target::do_finalize_gnu_properties): New virtual method.
        (Sized_target::record_gnu_property): Moved and renamed from
        Target::do_merge_gnu_property.
        (Sized_target::merge_gnu_properties): New virtual method.
        * x86_64.cc (Target_x86_64::isa_1_used_, isa_1_needed_)
        (feature_1_, object_feature_1_, seen_first_object_): New data members.
        (Target_x86_64::do_merge_gnu_property): Rename to ...
        (Target_x86_64::record_gnu_property): ... this.  Save target-specific
        properties in Target class object.
        (Target_x86_64::merge_gnu_properties): New method.
        (add_property): New static inline function.
        (Target_x86_64::do_finalize_gnu_properties): New method.
        * testsuite/Makefile.am (gnu_property_test): Remove C source file;
        link directly without compiler driver.
        * testsuite/Makefile.in: Regenerate.
        * testsuite/gnu_property_a.S: Add _start.

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]