1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-23 11:18:54 +00:00
freebsd/libexec/rtld-elf
Dimitry Andric e172464728 On amd64 and i386, tell the compiler to refrain from generating SSE,
3DNow, MMX and floating point instructions in rtld-elf.

Otherwise, _rtld_bind() (and whatever it calls) could possibly clobber
function arguments that are passed in SSE/3DNow/MMX/FP registers,
usually floating point values.  This can happen, for example, when clang
generates SSE code for memset() or memcpy() calls.

One symptom of this is sshd dying early on amd64 with "PRNG not seeded",
which is ultimately caused by libcrypto.so.6 calling RAND_add() with a
double parameter.  That parameter is passed via %xmm0, which gets wiped
out by an SSE memset() in _rtld_bind().

Reviewed by:	kib, kan
2011-01-04 20:51:28 +00:00
..
amd64 On amd64 and i386, tell the compiler to refrain from generating SSE, 2011-01-04 20:51:28 +00:00
arm Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
i386 On amd64 and i386, tell the compiler to refrain from generating SSE, 2011-01-04 20:51:28 +00:00
ia64 Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
mips Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
powerpc Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
powerpc64 Add support for R_PPC64_UADDR64 relocations. 2011-01-03 23:11:52 +00:00
sparc64 Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
debug.c
debug.h Use C99's varadic macro syntax instead of gcc's. 2006-03-28 18:26:47 +00:00
libmap.c Fix a malloc overrun in 32-bit compat libmap lookup code. 2006-01-31 06:08:28 +00:00
libmap.h
Makefile Add a hook to pass debug flags to the build of rtld when doing make in 2010-12-25 08:42:38 +00:00
malloc.c Use the newly provided aux vectors to get pagesize and osreldate information. 2010-08-17 09:05:39 +00:00
map_object.c In rtld's map_object(), use pread(..., 0) rather than read() to read the 2009-10-06 17:14:39 +00:00
rtld_lock.c Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
rtld_lock.h Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
rtld_tls.h
rtld.1 Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
rtld.c Fix an apparent cop-and-paste mistake in previous commit. 2010-12-27 00:30:29 +00:00
rtld.h Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
Symbol.map Introduce implementation-private rtld interface _rtld_addr_phdr, which 2010-08-23 15:27:03 +00:00
xmalloc.c