#
ea1d1255 |
| 24-May-2021 |
thorpej <thorpej@NetBSD.org> |
Add _UC_SETSTACK / _UC_CLRSTACK handling. Fixes the t_sigaltstack test on alpha.
|
#
d1b17eeb |
| 27-Dec-2019 |
kamil <kamil@NetBSD.org> |
Harmonize the namespace of fast TLS base pointer getter functions
Protect __lwp_getprivate_fast() with _RTLD_SOURCE, _LIBC_SOURCE and __LIBPTHREAD_SOURCE__.
Include in this namespace <sys/tcl.h> an
Harmonize the namespace of fast TLS base pointer getter functions
Protect __lwp_getprivate_fast() with _RTLD_SOURCE, _LIBC_SOURCE and __LIBPTHREAD_SOURCE__.
Include in this namespace <sys/tcl.h> and use __BEGIN_DECLS/__END_DECLS for the sake of consistency.
show more ...
|
#
ad82f011 |
| 15-Feb-2018 |
kamil <kamil@NetBSD.org> |
Introduce _UC_MACHINE_FP() as a macro
_UC_MACHINE_FP() is a helper macro to extract from mcontext a frame pointer.
Don't rely on this interface as a compiler might strip frame pointer or optimize i
Introduce _UC_MACHINE_FP() as a macro
_UC_MACHINE_FP() is a helper macro to extract from mcontext a frame pointer.
Don't rely on this interface as a compiler might strip frame pointer or optimize it making this interface unreliable.
For hppa assume a small frame context, for larger frames FP might be located in a different register (4 instead of 3).
For ia64 there is no strict frame pointer, and registers might rotate. Reuse 79 following:
./gcc/config/ia64/ia64.h:#define HARD_FRAME_POINTER_REGNUM LOC_REG (79)
Once ia64 will mature, this should be revisited.
A macro can encapsulate a real function for extracting Frame Pointer on more complex CPUs / ABIs.
For the remaining CPUs, reuse standard register as defined in appropriate ABI.
The direct users of this macro are LLVM and GCC with Sanitizers.
Proposed on tech-userlevel@.
Sponsored by <The NetBSD Foundation>
show more ...
|
#
2332652f |
| 12-Sep-2012 |
manu <manu@NetBSD.org> |
setcontext() used to be incompatible with -lpthread since it affected the TLS pointer, therefore wrecking the pthread environement.
Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha
setcontext() used to be incompatible with -lpthread since it affected the TLS pointer, therefore wrecking the pthread environement.
Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha) that controlled whether setcontext() would change the TLS pointer. This change let libpthread override setcontext() with its own version that unsets _UC_TLSBASE, enabling safe usage of setcontext() with -lpthread.
We also have the following required changes here: - rename alpha's _UC_UNIQUE into _UC_TLSBASE - add _UC_TLSBASE definition in header file for all ports (powerpc, sh3, sparc and sparc64 lack the implementation for now) - introduce a libc stub that can be overriden for setcontext() - modify MD libcs swapcontext() implementations so that they use the setcontext() libc stub instead of doing a plain system call.
While we are there: - document various MD _UC_* flags in header file - add libc and libpthread tests for swapcontext() behavior (hopefully helpful to spot MD problems introduced with this change)
Future work: - Deciding whether kernel support or _UC_TLSBASE should be added for powerpc, sh3, sparc and sparc64 is left to portmasters sparc64
Approved by core@
show more ...
|
#
285592a1 |
| 25-Feb-2011 |
joerg <joerg@NetBSD.org> |
Be nicer to software that insists on -ansi and use __inline.
|
#
4c92f569 |
| 24-Feb-2011 |
joerg <joerg@NetBSD.org> |
Allow storing and receiving the LWP private pointer via ucontext_t on all platforms except VAX and IA64. Add fast access via register for AMD64, i386 and SH3 ports. Use this fast access in libpthread
Allow storing and receiving the LWP private pointer via ucontext_t on all platforms except VAX and IA64. Add fast access via register for AMD64, i386 and SH3 ports. Use this fast access in libpthread to replace the stack based pthread_self(). Implement skeleton support for Alpha, HPPA, PowerPC, SPARC and SPARC64, but leave it disabled.
Ports that support this feature provide __HAVE____LWP_GETPRIVATE_FAST in machine/types.h and a corresponding __lwp_getprivate_fast in machine/mcontext.h.
This material is based upon work partially supported by The NetBSD Foundation under a contract with Joerg Sonnenberger.
show more ...
|
#
ce099b40 |
| 28-Apr-2008 |
martin <martin@NetBSD.org> |
Remove clause 3 and 4 from TNF licenses
|
#
95e1ffb1 |
| 11-Dec-2005 |
christos <christos@NetBSD.org> |
merge ktrace-lwp.
|
#
901da40c |
| 08-Oct-2003 |
thorpej <thorpej@NetBSD.org> |
Add some accessor macros for the ucontext: * _UC_MACHINE_PC() - access the program counter * _UC_MACHINE_INTRV() - access the integer return value register * _UC_MACHINE_SET_PC() - set the program co
Add some accessor macros for the ucontext: * _UC_MACHINE_PC() - access the program counter * _UC_MACHINE_INTRV() - access the integer return value register * _UC_MACHINE_SET_PC() - set the program counter (this requires special handling on some platforms).
show more ...
|
#
23bc2503 |
| 17-Jan-2003 |
thorpej <thorpej@NetBSD.org> |
Merge the nathanw_sa branch.
|