public inbox for gnu-gabi@sourceware.org
 help / color / mirror / Atom feed
From: "H.J. Lu" <hjl.tools@gmail.com>
To: "Maciej W. Rozycki" <macro@imgtec.com>
Cc: "Carlos O'Donell" <carlos@redhat.com>,
	gnu-gabi@sourceware.org,  Nick Clifton <nickc@redhat.com>
Subject: Re: RFC: Program Properties
Date: Fri, 01 Jan 2016 00:00:00 -0000	[thread overview]
Message-ID: <CAMe9rOrtKnvMvJ=AKc+Rakbfco+q2UiQ0UK23f8i4GdC5S=ZwA@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1610251230510.31859@tp.orcam.me.uk>

On Tue, Oct 25, 2016 at 4:46 AM, Maciej W. Rozycki <macro@imgtec.com> wrote:
> On Mon, 17 Oct 2016, H.J. Lu wrote:
>
>> > 4. A reject flag: if such annotated the ABI flag requires explicit support
>> >    (special handling beyond the three variants above) and linking fails if
>> >    it is set in any input object and the linker does know this ABI flag.
>>
>> "reject" isn't very clear.  Is "mandatory" better?
>
>  Such property seen by the component addressed (be it the static linker,
> dynamic loader or OS kernel) would cause the binary to be rejected unless
> already explicitly recognised by the component.  Or IOW unknown such
> properties would be rejected and known ones handled as required.  Hence
> the name proposed.
>
>  That written, having thought about it some more, I think we don't
> actually need such an explicit flag as I think we can reasonably set this
> semantics as the default.  That is any unknown property *not* annotated
> with one of the known flags would be rejected, making an explicit "reject"
> flag redundant.
>
>> > Such annotation would of course have to be consistent across input files.
>> >
>> >  Such ABI flag flags would allow ABIs to define new ABI flags processed
>> > automatically in static linking without the need to upgrade the linker
>> > each time a flag is added.
>> >
>> >  Thoughts?
>>
>> Property values can be divided into ranges of different rules, including
>> rules which differ from above.
>
>  I'm not sure defining fixed ranges has an advantage over using property
> annotation.  I think it's hard to assess beforehand how many values we may
> need in each range and if we make a range allocated too narrow, then we
> risk running out of entries within, whereas if we make one too broad, then

We can add another property note if we run out of property types.

> we risk running out of the allocation space.  On the other hand by using
> explicit property annotation we will only have consumed as much of the
> allocation space as has actually been defined at any point in time.
>
>  Have I missed anything?
>

The question is where annotation is stored.  It is either stored in
property type or property data.  If it is encoded in type, it will limit
number of usable types.  It it hard to tell how many types will
be needed in the future.  I can't image that we need hundreds
of property types in a file and we can always add a new note if needed.
If it is encoded in data, it should be stored in the first few bytes,
which increases data size or make run-time processing less efficient
because of little endian vs big endian.

We can first identify how many different annotations we need and
figure out what the best way to encode them for both extensibility
as well as run-time efficiency.

-- 
H.J.

  reply	other threads:[~2016-10-26 18:16 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-01  0:00 H.J. Lu
2016-01-01  0:00 ` Carlos O'Donell
2016-01-01  0:00   ` Maciej W. Rozycki
2016-01-01  0:00     ` H.J. Lu
2016-01-01  0:00       ` Maciej W. Rozycki
2016-01-01  0:00         ` H.J. Lu [this message]
2016-01-01  0:00           ` H.J. Lu
2016-01-01  0:00       ` Nick Clifton
2016-01-01  0:00         ` H.J. Lu
2016-01-01  0:00           ` Suprateeka R Hegde
2016-01-01  0:00   ` H.J. Lu
2016-01-01  0:00 ` Suprateeka R Hegde
2016-01-01  0:00   ` Jose E. Marchesi
2016-01-01  0:00     ` Suprateeka R Hegde
2016-01-01  0:00       ` Jose E. Marchesi
2016-01-01  0:00         ` Suprateeka R Hegde
2016-01-01  0:00           ` Joseph Myers
  -- strict thread matches above, loose matches on Subject: below --
2016-01-01  0:00 H.J. Lu
2016-01-01  0:00 H.J. Lu
2016-01-01  0:00 ` Suprateeka R Hegde

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='CAMe9rOrtKnvMvJ=AKc+Rakbfco+q2UiQ0UK23f8i4GdC5S=ZwA@mail.gmail.com' \
    --to=hjl.tools@gmail.com \
    --cc=carlos@redhat.com \
    --cc=gnu-gabi@sourceware.org \
    --cc=macro@imgtec.com \
    --cc=nickc@redhat.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).