This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Linux gABI: Add a GNU_PROPERTY_BY_LINKER property


On Mon, Nov 26, 2018 at 5:12 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * 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?

Linker removes GNU_PROPERTY_X86_ISA_1_USED when its value is empty.
Maybe linker shouldn't do that.

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

PT_NOTE is used so that binaries with GNU properties are backward
compatible with loaders which don't support GNU properties. They will
run without any new features from GNU properties.

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]