kernel make noise with clang suppression

Matthew Jacob mj at feral.com
Thu Jun 10 18:40:04 UTC 2010


Comments? (yes, I know -fformat-extensions have just been added...)


-------------- next part --------------
diff -r ea5e09d013e7 sys/conf/kern.mk
--- a/sys/conf/kern.mk	Thu Jun 10 07:40:51 2010 -0700
+++ b/sys/conf/kern.mk	Thu Jun 10 11:35:50 2010 -0700
@@ -9,6 +9,10 @@
 .if ${CC} == "icc"
 #CWARNFLAGS=	-w2	# use this if you are terribly bored
 CWARNFLAGS=
+.elif ${CC} == "clang"
+CWARNFLAGS?=	-Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \
+		-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \
+		-Wundef -Wno-pointer-sign
 .else
 CWARNFLAGS?=	-Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \
 		-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \
@@ -63,9 +67,15 @@
 # reserved for user applications.
 #
 .if ${MACHINE_ARCH} == "amd64"
+.if ${CC} == "clang"
+CFLAGS+=	-mcmodel=kernel -mno-red-zone \
+		-mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow \
+		-msoft-float -fno-asynchronous-unwind-tables
+.else
 CFLAGS+=	-mcmodel=kernel -mno-red-zone \
 		-mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow \
 		-msoft-float -fno-asynchronous-unwind-tables
+.endif
 INLINE_LIMIT?=	8000
 .endif
 
diff -r ea5e09d013e7 sys/conf/kern.pre.mk
--- a/sys/conf/kern.pre.mk	Thu Jun 10 07:40:51 2010 -0700
+++ b/sys/conf/kern.pre.mk	Thu Jun 10 11:35:50 2010 -0700
@@ -30,7 +30,11 @@
 _MINUS_O=	-O2
 . endif
 . if ${MACHINE_ARCH} == "amd64"
+. if ${CC} == "clang"
+COPTFLAGS?=-O2 -pipe
+. else
 COPTFLAGS?=-O2 -frename-registers -pipe
+. endif
 . else
 COPTFLAGS?=${_MINUS_O} -pipe
 . endif
@@ -89,7 +93,7 @@
 
 CFLAGS=	${COPTFLAGS} ${C_DIALECT} ${DEBUG} ${CWARNFLAGS}
 CFLAGS+= ${INCLUDES} -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
-.if ${CC} != "icc"
+.if ${CC} != "icc" && ${CC} != "clang"
 CFLAGS+= -fno-common -finline-limit=${INLINE_LIMIT}
 CFLAGS+= --param inline-unit-growth=100
 CFLAGS+= --param large-function-growth=1000
diff -r ea5e09d013e7 sys/conf/kmod.mk
--- a/sys/conf/kmod.mk	Thu Jun 10 07:40:51 2010 -0700
+++ b/sys/conf/kmod.mk	Thu Jun 10 11:35:50 2010 -0700
@@ -111,7 +111,7 @@
 # for example.
 CFLAGS+=	-I@/contrib/altq
 
-.if ${CC} != "icc"
+.if ${CC} != "icc" && ${CC} != "clang"
 CFLAGS+=	-finline-limit=${INLINE_LIMIT}
 CFLAGS+= --param inline-unit-growth=100
 CFLAGS+= --param large-function-growth=1000


More information about the freebsd-current mailing list