Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 May 2011 11:26:01 +0000 (UTC)
From:      Bruce Cran <brucec@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r221879 - head/sys/conf
Message-ID:  <201105141126.p4EBQ1AQ001958@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brucec
Date: Sat May 14 11:26:00 2011
New Revision: 221879
URL: http://svn.freebsd.org/changeset/base/221879

Log:
  gcc and clang semantics imply certain -mno-* flags when other certain -mno-*
  flags are also specified. This change makes use of this behaviour and removes
  unneeded -mno-* flags.
  
  Note that clang does not yet enable AVX support for any CPU. However at some
  point in the future it will and since we definitely want to disable it for the
  kernel, we might as well add the -mno-avx flag now.
  
  Submitted by:	arundel

Modified:
  head/sys/conf/kern.mk

Modified: head/sys/conf/kern.mk
==============================================================================
--- head/sys/conf/kern.mk	Sat May 14 05:43:33 2011	(r221878)
+++ head/sys/conf/kern.mk	Sat May 14 11:26:00 2011	(r221879)
@@ -25,11 +25,21 @@ CWARNFLAGS?=	-Wall -Wredundant-decls -Wn
 # operations inside the kernel itself.  These operations are exclusively
 # reserved for user applications.
 #
+# gcc:
+# Setting -mno-mmx implies -mno-3dnow
+# Setting -mno-sse implies -mno-sse2, -mno-sse3 and -mno-ssse3
+#
+# clang:
+# Setting -mno-mmx implies -mno-3dnow, -mno-3dnowa, -mno-sse, -mno-sse2,
+#                          -mno-sse3, -mno-ssse3, -mno-sse41 and -mno-sse42
+#
 .if ${MACHINE_CPUARCH} == "i386"
 .if ${CC:T:Mclang} != "clang"
-CFLAGS+=	-mno-align-long-strings -mpreferred-stack-boundary=2
+CFLAGS+=	-mno-align-long-strings -mpreferred-stack-boundary=2 -mno-sse
+.else
+CFLAGS+=	-mno-aes -mno-avx
 .endif
-CFLAGS+=	-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
+CFLAGS+=	-mno-mmx -msoft-float
 INLINE_LIMIT?=	8000
 .endif
 
@@ -61,10 +71,23 @@ INLINE_LIMIT?=	15000
 # operations inside the kernel itself.  These operations are exclusively
 # reserved for user applications.
 #
+# gcc:
+# Setting -mno-mmx implies -mno-3dnow
+# Setting -mno-sse implies -mno-sse2, -mno-sse3, -mno-ssse3 and -mfpmath=387
+#
+# clang:
+# Setting -mno-mmx implies -mno-3dnow, -mno-3dnowa, -mno-sse, -mno-sse2,
+#                          -mno-sse3, -mno-ssse3, -mno-sse41 and -mno-sse42
+# (-mfpmath= is not supported)
+#
 .if ${MACHINE_CPUARCH} == "amd64"
-CFLAGS+=	-mcmodel=kernel -mno-red-zone \
-		-mfpmath=387 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 \
-		-msoft-float -fno-asynchronous-unwind-tables
+.if ${CC:T:Mclang} != "clang"
+CFLAGS+=	-mno-sse
+.else
+CFLAGS+=	-mno-aes -mno-avx
+.endif
+CFLAGS+=	-mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float \
+		-fno-asynchronous-unwind-tables
 INLINE_LIMIT?=	8000
 .endif
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105141126.p4EBQ1AQ001958>