svn commit: r216977 - in head/libexec/rtld-elf: amd64 i386

Gleb Kurtsou gleb.kurtsou at gmail.com
Wed Jan 5 12:43:31 UTC 2011


On (05/01/2011 01:16), Alexander Best wrote:
> On Tue Jan  4 11, Dimitry Andric wrote:
> > Author: dim
> > Date: Tue Jan  4 20:51:28 2011
> > New Revision: 216977
> > URL: http://svn.freebsd.org/changeset/base/216977
> > 
> > Log:
> >   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.
> 
> the sorting order for these flags seems to be:
> 
> -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3
> 
> see 'grep -R "\-no-sse" /usr/src'. maybe the sorting order should stay
> consistent?
> 
> also what's the status of clang? will these flags make sure that newer
> cpu extension won't be activated? i checked
> contrib/llvm/tools/clang/include/clang/Driver/Options.td
> and clang has support for:
> 
> -m3dnowa
> -mssse3
> -msse4a
> -msse4
> -msse4_1
> -msse4_2
> -maes
> -mavx
> 
> since these extensions only get set in a hand full of files maybe special
> cases for CC == clang can be added.
Why not to add NO_HWFLOAT knob (or similar) into makefile
infrastructure. And set CFLAGS accordingly, depending on CC, arch, etc.
These flags are getting rather common in tree.

> also maybe you could have a look at the attached patch. i sent this to hackers@
> and nobody objected, but nobody wanted to commit the patch unfortunately.
> 
> cheers.
> alex


More information about the svn-src-all mailing list