public inbox for gnu-gabi@sourceware.org
 help / color / mirror / Atom feed
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? :) )

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