This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [RFC][PATCH] MIPS ifunc for glibc
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Jack Carter <Jack dot Carter at imgtec dot com>
- Cc: "libc-ports at sourceware dot org" <libc-ports at sourceware dot org>
- Date: Sun, 18 Aug 2013 20:38:54 +0000
- Subject: Re: [RFC][PATCH] MIPS ifunc for glibc
- References: <4CEFBC1BE64A8048869F799EF2D2EEEE01AAE1FA at BADAG02 dot ba dot imgtec dot org>
On Sat, 17 Aug 2013, Jack Carter wrote:
> This is the initial MIPS ifunc patch for glibc. This patch should be
> applied in conjunction with the binutils patch.
Do you have an ABI document specifying all the relevant semantics, for all
three ABIs?
Why aren't you consistently passing the HWCAP value to resolver functions
(it seems some places pass it but others don't)? If you don't pass it
from the start, it could be problematic to change the ABI later to start
passing it, as applications' IFUNC resolvers wouldn't know if they are
being run with a glibc version that passes the HWCAP value to them or not.
The ABI document should presumably specify what arguments get passed to
the resolver function....
> + case R_MIPS_IRELATIVE:
> + {
> + ElfW(Addr) value;
> +
> + /* The address for the got entry storing the address for the */
> + /* ifunc routine is in this relocation. To get the address of */
> + /* the function to use on this machine the ifunc routine is run */
> + /* and its return value is the address which is then put back */
> + /* into the got entry. */
Ordinary multi-line comment, please.
--
Joseph S. Myers
joseph@codesourcery.com