freebsd-dev/libexec/rtld-elf/amd64
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
..
elf_rtld.x
Makefile.inc On amd64 and i386, tell the compiler to refrain from generating SSE, 2011-01-04 20:51:28 +00:00
reloc.c Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
rtld_machdep.h Now that the kernel defines CACHE_LINE_SIZE in machine/param.h, use 2009-04-19 23:02:50 +00:00
rtld_start.S More stack alignment fixes. Arrange so we call _rtld() in ld-elf.so.1 2004-03-21 01:43:39 +00:00