Jun Sun (firstname.lastname@example.org) writes:
> > [large expanse of new ABI stuff omitted]
> What is the motivation of other changes? Taking this chance to make
> things all right in one shot?
Yes, and I did kind of cover this in the large expanse of stuff:
> > As you said, this motivates a revision of the ABI. Any
> > incompatible change to the ABI is painful, since everything has to
> > be recompiled; so our reasoning at the moment is that we might as
> > well be radical...
o32 puts only four arguments in registers, which is less than optimal,
and continually reloads the GOT pointer (which is not defined as a
saved register in o32).
n32 (despite its name) runs exclusively on 64-bit CPUs.
So yes, we have strong reasons for making a larger change to the ABI,
and knowing how difficult it is...
> However, from NPTL implementation point of view I really just care
> about the per-thread register.
I guess our main message was that we felt it would be a mistake just
to add a thread register to o32 (which produces a substantially
incompatible new ABI anyway).
Until that all works, what we had in mind is that we'd do NPTL over
o32 by defining a system call to return a per-thread ID which is or
can be converted into a per-thread data pointer. We suspected that
NPTL's per-thread-data model allows the use of cunning macros or
library functions to make that look OK.
Ought we to go further and see exactly how that can be done?