On 01/05/2011 05:59, John Baldwin wrote:
On Wednesday, January 05, 2011 7:19:10 am Gleb Kurtsou wrote:
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.
It strikes me that we really want clang/gcc to have some sort of
'-mno-hwfloat' so we don't keep having to add new flags in the future.

gcc already has -msoftfloat, but I guess that's a little different than what you are proposing...

Warner

_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to