This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC 2.0] Implementing hwcap2
- From: Roland McGrath <roland at hack dot frob dot com>
- To: Richard Henderson <rth at twiddle dot net>
- Cc: "Ryan S. Arnold" <rsa at us dot ibm dot com>, libc-alpha at sourceware dot org
- Date: Tue, 9 Apr 2013 12:24:20 -0700 (PDT)
- Subject: Re: [RFC 2.0] Implementing hwcap2
- References: <20130328 dot 173934 dot 1310725546115298719 dot davem at davemloft dot net> <201303281931 dot 43830 dot vapier at gentoo dot org> <20130328234033 dot 9197A2C0A7 at topped-with-meat dot com> <20130328 dot 201048 dot 1654197573467873843 dot davem at davemloft dot net> <20130408220507 dot 5699D2C088 at topped-with-meat dot com> <5163FA57 dot 5020506 at twiddle dot net>
> On 2013-04-08 17:05, Roland McGrath wrote:
> > The calling convention for IFUNC resolvers is machine-specific.
> > Thus, it's up to each machine maintainer to decide what it should be
> > for his machine. Given how rare IFUNC use still is, I'd say it's
> > also up to each machine maintainer to decide whether or not an
> > incompatible change to the convention is acceptable at this stage.
>
> While I suppose that's a valid position, my position is that merely
> adding a second 32-bit argument to the ifunc resolver maintains
> compatability across all machines, and that is good for everyone.
That's why I said "incompatible change" rather than just "change".
But there remains the issue of whether code in other packages might
start to presume the new convention while deployments of libc
supporting only the old convention are still common. Each machine
maintainer (or the consensus of all of us) must decide whether that
is a concern for the particular machine given the state of IFUNC
usage and libc deployment for that machine. That decision admits
three conclusions: no concern at all (nobody has used or will use
IFUNC on the machine with older libcs); prohibitive concern (most
generic level of prudent paranoia); or concern for the stated public
ABI ("documented" would be too strong a term for the state of the
IFUNC resolver ABIs) but not for "bleed-through", i.e. it's OK to
pass more arguments and for libc's own resolvers to use them, but we
won't tell outside users that those arguments are available for
their own resolvers.
(Or we might come up with a versioning solution.)
Thanks,
Roland