freebsd-dev/lib/libc/i386
Konstantin Belousov bd6060a1c6 Switch libc from using _sig{procmask,action,suspend} symbols, which
are aliases for the syscall stubs and are plt-interposed, to the
libc-private aliases of internally interposed sigprocmask() etc.

Since e.g. _sigaction is not interposed by libthr, calling signal()
removes thr_sighandler() from the handler slot etc.  The result was
breaking signal semantic and rtld locking.

The added __libc_sigprocmask and other symbols are hidden, they are
not exported and cannot be called through PLT.  The setjmp/longjmp
functions for x86 were changed to use direct calls, and since
PIC_PROLOGUE only needed for functional PLT indirection on i386, it is
removed as well.

The PowerPC bug of calling the syscall directly in the setjmp/longjmp
implementation is kept as is.

Reported by:	Pete French <petefrench@ingresso.co.uk>
Tested by:	Michiel Boland <boland37@xs4all.nl>
Reviewed by:	jilles (previous version)
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2015-08-29 14:25:01 +00:00
..
gen Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
stdlib Add section .note.GNU-stack for assembly files used by 386 and amd64. 2011-01-07 16:08:40 +00:00
string Replace the WEAK_ALIAS() alias with the WEAK_REFERENCE() alias. Use it and 2013-11-21 22:31:18 +00:00
sys Copy the fencing of the algorithm to do lock-less update and reading 2015-08-04 12:33:51 +00:00
_fpmath.h
arith.h
gd_qnan.h
Makefile.inc Replace use of ${.CURDIR} by ${LIBC_SRCTOP} and define ${LIBC_SRCTOP} 2014-03-04 02:19:39 +00:00
Symbol.map libc/i386: Do not export .cerror. 2012-09-05 21:41:05 +00:00
SYS.h Replace the WEAK_ALIAS() alias with the WEAK_REFERENCE() alias. Use it and 2013-11-21 22:31:18 +00:00