#
f8406b33 |
| 06-Oct-2016 |
zrj <rimvydas.jasinskas@gmail.com> |
<sys/cdefs.h>: Rework __weak_reference() macro.
My LTO build blew away weak symbols from slim LTO objects. Use __strong_reference() + weak attribute to allow the compiler to catch extern declaration
<sys/cdefs.h>: Rework __weak_reference() macro.
My LTO build blew away weak symbols from slim LTO objects. Use __strong_reference() + weak attribute to allow the compiler to catch extern declarations and not to fold weak symbols as local ones.
Keep previous version as __weak_reference_asm() in _pthread_stubs.c for now due to several issues (there is a need to do it in a cleaner way).
lib/libc/gen/ucontext.c: add missing __DECONST for ucp, shouldn't sigreturn take const ucontext_t?
lib/libc/inet/inet_ntoa.c: add missing #undef inet_ntoa_r
No symbol changes in libc and librt on normal compilation.
While there, add __weak_symbol attribute for future additions.
show more ...
|
#
819d0c16 |
| 21-Dec-2015 |
Matthew Dillon <dillon@apollo.backplane.com> |
libc - Add quick version for the context management functions.
* Add makecontext_quick(), setcontext_quick(), and swapcontext_quick(). These functions work similarly to the non-quick versions but
libc - Add quick version for the context management functions.
* Add makecontext_quick(), setcontext_quick(), and swapcontext_quick(). These functions work similarly to the non-quick versions but are designed for fast synchronous switching. These functions do not mess with the signal mask or stack at all and do not save or restore scratch registers.
* These functions make no system calls. Switching time can be as low as ~5 nanoseconds.
* These functions also provide optimizations for coroutine fall-through linkages.
* Note that the coroutine / start-function callback arguments are somewhat different. Start functions are called back as cofunc(ucp, arg). Var-args are not supported and the stack is minimally aligned and initialized.
* Remove the old internal set_mcontext() and get_mcontext() routines.
show more ...
|