<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.