RFC: Linux gABI: Add a GNU_PROPERTY_BY_LINKER property

Florian Weimer fweimer@redhat.com
Mon Nov 26 13:12:00 GMT 2018


* H. J. Lu:

> GNU_PROPERTY_X86_UINT32_VALID was defined to address this issue such that
> linker sets the bit in values of x86 properties for non-relocatable
> outputs.  But it isn't sufficient:
>
> 1. It doesn't cover generic properties.

Okay.

> 2. When -mx86-used-note=yes is passed to x86 assembler, the
> GNU_PROPERTY_X86_UINT32_VALID bit is set in GNU_PROPERTY_X86_ISA_1_USED
> property in object file and linkers without GNU property support generate
> invalid NT_GNU_PROPERTY_TYPE_0 notes with the GNU_PROPERTY_X86_UINT32_VALID
> bit set.

Surely this is a GAS bug?  Why not fix that bug?

> I am proposing the following changes:
>
> 1. Add a GNU_PROPERTY_BY_LINKER property which should only be set by
> linker for non-relocatable outputs to indicate the property note is
> valid and generated by new linkers.  Loaders can check this property
> to verify that the property note is valid.
> 2. Remove GNU_PROPERTY_X86_UINT32_VALID.
> 3. Define GNU_PROPERTY_X86_ISA_1_BASE for GNU_PROPERTY_X86_ISA_1_USED,
> which has the same bit as GNU_PROPERTY_X86_UINT32_VALID and use it
> for -mx86-used-note=yes with x86 assembler.

The alternative approach would be to switch to a new PT_ segment for
this because those aren't included in relocatable objects.  (Maybe it's
time for another approach.)

Thanks,
Florian



More information about the Binutils mailing list