On Wed, Sep 12, 2012 at 07:48:52AM -0700, Matt Thomas wrote: > Actually, several don't. arm doesn't, mips doesn't, vax doesn't, > m68k doesn't. They may be others.
Are we talking about the same things? All these ports arlready did it conditionally on _UC_TLSBASE: src/sys/arch/arm/arm/sig_machdep.c: if ((flags & _UC_TLSBASE) != 0) lwp_setprivate(l, (void *)(uintptr_t)mcp->_mc_tlsbase); src/sys/arch/mips/mips/cpu_subr.c: /* Restore the private thread context */ if (flags & _UC_TLSBASE) { lwp_setprivate(l, (void *)(intptr_t)mcp->_mc_tlsbase); } src/sys/arch/vax/vax/machdep.c: if (flags & _UC_TLSBASE) { void *tlsbase; error = copyin((void *)tf->tf_sp, &tlsbase, sizeof(tlsbase)); if (error) { return error; } lwp_setprivate(l, tlsbase); tf->tf_sp += sizeof(tlsbase); } src/sys/arch/m68k/m68k/sig_machdep.c: if ((flags & _UC_TLSBASE) != 0) lwp_setprivate(l, (void *)(uintptr_t)mcp->_mc_tlsbase); -- Emmanuel Dreyfus m...@netbsd.org