From: "Zhang, Annita" <annita.zhang@intel.com>
To: Fangrui Song <maskray@google.com>, "H.J. Lu" <hjl.tools@gmail.com>
Cc: Mark Wielaard <mark@klomp.org>,
gnu-gabi <gnu-gabi@sourceware.org>,
Binutils <binutils@sourceware.org>,
"Liu, Hongtao" <hongtao.liu@intel.com>
Subject: RE: binutils ld and new PT_GNU_PROPERTY segment
Date: Wed, 01 Jan 2020 00:00:00 -0000 [thread overview]
Message-ID: <B15A3D62D175674FB1EA9EEA1C1DE13D0B190842@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <20200219023120.gvr4ajolbjbqcfix@google.com>
Regarding x86-64 ABI, we have internal communication if there's some update. And we will raise it up in LLVM community if necessary.
Thanks,
Annita
-----Original Message-----
From: Fangrui Song <maskray@google.com>
Sent: Wednesday, February 19, 2020 10:31 AM
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
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? :) )
prev parent reply other threads:[~2020-02-19 5:33 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 ` Mark Wielaard
2020-01-01 0:00 ` Fangrui Song via gnu-gabi
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 ` 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 ` H.J. Lu
2020-01-01 0:00 ` Zhang, Annita [this message]
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=B15A3D62D175674FB1EA9EEA1C1DE13D0B190842@SHSMSX101.ccr.corp.intel.com \
--to=annita.zhang@intel.com \
--cc=binutils@sourceware.org \
--cc=gnu-gabi@sourceware.org \
--cc=hjl.tools@gmail.com \
--cc=hongtao.liu@intel.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).