Jun Sun (jsun@xxxxxxxxxx) 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? -- Dominic