From: "Fangrui Song via gnu-gabi" <gnu-gabi@sourceware.org>
To: "H.J. Lu" <hjl.tools@gmail.com>,
"Zhang, Annita" <annita.zhang@intel.com>
Cc: Mark Wielaard <mark@klomp.org>,
gnu-gabi <gnu-gabi@sourceware.org>,
Binutils <binutils@sourceware.org>
Subject: Re: binutils ld and new PT_GNU_PROPERTY segment
Date: Wed, 01 Jan 2020 00:00:00 -0000 [thread overview]
Message-ID: <20200219023120.gvr4ajolbjbqcfix@google.com> (raw)
In-Reply-To: <CAMe9rOqCJVw2okDr0gonHWpxEVw+qO8uYLjbzxihB4tx-JuJ6g@mail.gmail.com>
On 2020-02-18, H.J. Lu wrote:
>On Tue, Feb 18, 2020@4:38 AM Mark Wielaard <mark@klomp.org> wrote:
>>
>> Hi,
>>
>> binutils 2.32 ld emits a new PT_GNU_PROPERTY (PT_LOOS + 0x474e553)
>> segment that overlaps with the PT_NOTE segment covering the
>> .note.gnu.property section data.
>>
>> I cannot tell if this is an accident/experiment that happened to end up
>> in a release or if it is proposed as an official new segment type.
>
>https://sourceware.org/ml/gnu-gabi/2018-q4/msg00027.html
>https://github.com/hjl-tools/linux-abi/wiki/Linux-Extensions-to-gABI
>
>> As far as I can tell binutils ld is the only linker which adds this
>
>Annita, does lld generate PT_GNU_PROPERTY segment with CET? If not,
>it is an lld bug.
>
>> extra segment and there is no runtime loader which uses it. It doesn't
>> provide any new information that cannot be found in the existing
>> PT_NOTE segment.
>
>Kernel loader uses it for both ARM and x86.
>
>> On 64 bit architectures it simply covers the extra existing PT_NOTE
>> with 8 byte alignment (normal PT_NOTE segments are 4 byte aligned). On
>> 32bit architectures it covers a sub-range of the existing PT_NOTE
>> segment.
>>
>> It isn't clear to me how other tools should handle this. It seems to
>> prevent normal merging of note sections. Since some notes are probably
>> special if they need to be covered by this new segment type. And it
>> isn't clear how the linker knows which of the SHT_NOTE sections is what
>> needs to be covered by the new segment type. Or is the idea that this
>> will eventually come with a new section type too and GNU properties
>> will no longer use NOTE sections?
>>
>
>PT_GNU_PROPERTY covers .note.gnu.property section.
https://reviews.llvm.org/D70961 added PT_GNU_PROPERTY support to lld.
The change will be included by lld 10.0.0 (currently at rc2).
https://reviews.llvm.org/D70959 added the dump support to llvm-readelf -l and
llvm-objdump -p.
The change will be included by LLVM 10.0.0 (currently at rc2).
From what I can see, neither the Linux kernel nor glibc uses PT_GNU_PROPERTY.
glibc/sysdeps/x86/dl-prop.h parses PT_NOTE.
I tend to agree with Cary
(https://sourceware.org/ml/gnu-gabi/2018-q4/msg00036.html) that
.note.gnu.property should have been designed as a different section type
because its combining semantics are different from other notes
(we could apply "Rules for Linking Unrecognized Sections" to all
SHT_NOTE sections) but it is too late to change the section type.
A separate segment type (PT_GNU_PROPERTY) looks fine to me.
glibc should probably be updated to parse PT_GNU_PROPERTY instead.
(Recently I read some ABI decisions and I noticed that I frequently see
the term "it is too late". As a contributor of both lld and LLVM binary
utilities (and the implementer of a bunch of GNU_PROPERTY changes), I
hope that the LLVM community can be informed of such changes earlier. A
lot of people are not subscribed to any of the mailing lists (recently I
visit the archives from time to time).
Looks like Annita's job? :) )
next prev parent reply other threads:[~2020-02-19 2:31 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-01 0:00 Mark Wielaard
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Fangrui Song via gnu-gabi [this message]
2020-01-01 0:00 ` Mark Wielaard
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Mark Wielaard
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Mark Wielaard
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Fangrui Song
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Mark Wielaard
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Mark Wielaard
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Mark Wielaard
2020-01-01 0:00 ` Fangrui Song
2020-04-01 8:46 ` Florian Weimer
2020-04-01 9:22 ` Szabolcs Nagy
2020-04-01 9:29 ` Florian Weimer
2020-04-01 10:10 ` Szabolcs Nagy
2020-04-01 10:21 ` Florian Weimer
2020-01-01 0:00 ` Fangrui Song
2020-01-01 0:00 ` H.J. Lu
2020-01-01 0:00 ` Zhang, Annita
2020-01-01 0:00 ` Mark Wielaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200219023120.gvr4ajolbjbqcfix@google.com \
--to=gnu-gabi@sourceware.org \
--cc=annita.zhang@intel.com \
--cc=binutils@sourceware.org \
--cc=hjl.tools@gmail.com \
--cc=mark@klomp.org \
--cc=maskray@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).