Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Feb 2012 18:30:18 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r232263 - in head: lib/libsm lib/libthread_db lib/libz libexec/mail.local libexec/smrsh sbin/fsdb share/mk sys/boot/i386/boot0 sys/boot/i386/boot2 sys/boot/i386/btx/btx sys/boot/i386/bt...
Message-ID:  <201202281830.q1SIUIIM082560@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Tue Feb 28 18:30:18 2012
New Revision: 232263
URL: http://svn.freebsd.org/changeset/base/232263

Log:
  Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to
  get rid of testing explicitly for clang (using ${CC:T:Mclang}) in
  individual Makefiles.
  
  Instead, use the following extra macros, for use with clang:
  - NO_WERROR.clang       (disables -Werror)
  - NO_WCAST_ALIGN.clang  (disables -Wcast-align)
  - NO_WFORMAT.clang	(disables -Wformat and friends)
  - CLANG_NO_IAS		(disables integrated assembler)
  - CLANG_OPT_SMALL	(adds flags for extra small size optimizations)
  
  As a side effect, this enables setting CC/CXX/CPP in src.conf instead of
  make.conf!  For clang, use the following:
  
  CC=clang
  CXX=clang++
  CPP=clang-cpp
  
  MFC after:	2 weeks

Modified:
  head/lib/libsm/Makefile
  head/lib/libthread_db/Makefile
  head/lib/libz/Makefile
  head/libexec/mail.local/Makefile
  head/libexec/smrsh/Makefile
  head/sbin/fsdb/Makefile
  head/share/mk/bsd.sys.mk
  head/sys/boot/i386/boot0/Makefile
  head/sys/boot/i386/boot2/Makefile
  head/sys/boot/i386/btx/btx/Makefile
  head/sys/boot/i386/btx/btxldr/Makefile
  head/sys/boot/i386/gptboot/Makefile
  head/sys/boot/i386/gptzfsboot/Makefile
  head/sys/boot/i386/libi386/Makefile
  head/sys/boot/i386/pxeldr/Makefile
  head/sys/boot/i386/zfsboot/Makefile
  head/sys/boot/pc98/btx/btx/Makefile
  head/sys/boot/pc98/btx/btxldr/Makefile
  head/sys/conf/Makefile.amd64
  head/sys/conf/Makefile.i386
  head/sys/conf/kern.pre.mk
  head/sys/modules/bios/smapi/Makefile
  head/sys/modules/linux/Makefile
  head/usr.bin/netstat/Makefile
  head/usr.bin/vacation/Makefile
  head/usr.sbin/sendmail/Makefile

Modified: head/lib/libsm/Makefile
==============================================================================
--- head/lib/libsm/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/lib/libsm/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -18,12 +18,10 @@ CFLAGS+=${SENDMAIL_CFLAGS}
 
 WARNS?=	2
 
-.if ${CC:T:Mclang} == "clang"
 # Unfortunately, clang gives warnings about sendmail code that cannot
 # be turned off yet.  Since this is contrib code, and we don't really
 # care about the warnings, just make them non-fatal for now.
-NO_WERROR=
-.endif
+NO_WERROR.clang=
 
 LIB=	sm
 

Modified: head/lib/libthread_db/Makefile
==============================================================================
--- head/lib/libthread_db/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/lib/libthread_db/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -16,10 +16,8 @@ SYM_MAPS+=${.CURDIR}/Symbol.map
 SYMBOL_MAPS=${SYM_MAPS}
 VERSION_DEF=${.CURDIR}/../libc/Versions.def
 
-.if ${CC:T:Mclang} == "clang"
 # Unfortunately, clang gives an incorrect warning about alignment in
 # arch/i386/libpthread_md.c, so turn that off for now.
-NO_WCAST_ALIGN=
-.endif
+NO_WCAST_ALIGN.clang=
 
 .include <bsd.lib.mk>

Modified: head/lib/libz/Makefile
==============================================================================
--- head/lib/libz/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/lib/libz/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -47,10 +47,6 @@ ACFLAGS+=	-Wa,--noexecstack
 #SRCS+=		gvmat64.S
 #CFLAGS+=	-DASMV -DNO_UNDERLINE
 #ACFLAGS+=	-Wa,--noexecstack
-#.if ${CC:T:Mclang} == "clang"
-## XXX: clang integrated-as doesn't grok .intel_syntax directives yet
-#ACFLAGS+=	${.IMPSRC:T:Mgvmat64.S:C/^.+$/-no-integrated-as/}
-#.endif
 #.endif
 
 VERSION_DEF=	${.CURDIR}/Versions.def
@@ -71,3 +67,7 @@ test: example minigzip
 		echo hello world | ./minigzip | ./minigzip -d )
 
 .include <bsd.lib.mk>
+
+## XXX: clang integrated-as doesn't grok .intel_syntax directives yet
+#ACFLAGS.gvmat64.S=	${CLANG_NO_IAS}
+#ACFLAGS+=		${ACFLAGS.${.IMPSRC:T}}

Modified: head/libexec/mail.local/Makefile
==============================================================================
--- head/libexec/mail.local/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/libexec/mail.local/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -12,12 +12,10 @@ CFLAGS+=-I${SENDMAIL_DIR}/include -I.
 WARNS?=	2
 WFORMAT=0
 
-.if ${CC:T:Mclang} == "clang"
 # Unfortunately, clang gives warnings about sendmail code that cannot
 # be turned off yet.  Since this is contrib code, and we don't really
 # care about the warnings, just make them non-fatal for now.
-NO_WERROR=
-.endif
+NO_WERROR.clang=
 
 LIBSMDIR=	${.OBJDIR}/../../lib/libsm
 LIBSM=		${LIBSMDIR}/libsm.a

Modified: head/libexec/smrsh/Makefile
==============================================================================
--- head/libexec/smrsh/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/libexec/smrsh/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -17,12 +17,10 @@ LDADD=	${LIBSM}
 
 WARNS?=	2
 
-.if ${CC:T:Mclang} == "clang"
 # Unfortunately, clang gives warnings about sendmail code that cannot
 # be turned off yet.  Since this is contrib code, and we don't really
 # care about the warnings, just make them non-fatal for now.
-NO_WERROR=
-.endif
+NO_WERROR.clang=
 
 SRCS+=	sm_os.h
 CLEANFILES+=sm_os.h

Modified: head/sbin/fsdb/Makefile
==============================================================================
--- head/sbin/fsdb/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sbin/fsdb/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -9,10 +9,8 @@ SRCS=	fsdb.c fsdbutil.c \
 	pass5.c setup.c utilities.c ffs_subr.c ffs_tables.c
 CFLAGS+= -I${.CURDIR}/../fsck_ffs
 WARNS?= 2
-.if ${CC:T:Mclang} == "clang"
 # Work around a problem with format string warnings and ntohs macros.
-NO_WFORMAT=
-.endif
+NO_WFORMAT.clang=
 LDADD=	-ledit -ltermcap
 DPADD=	${LIBEDIT} ${LIBTERMCAP}
 .PATH:	${.CURDIR}/../fsck_ffs ${.CURDIR}/../../sys/ufs/ffs

Modified: head/share/mk/bsd.sys.mk
==============================================================================
--- head/share/mk/bsd.sys.mk	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/share/mk/bsd.sys.mk	Tue Feb 28 18:30:18 2012	(r232263)
@@ -28,7 +28,7 @@ CFLAGS		+= -std=${CSTD}
 . if defined(WARNS)
 .  if ${WARNS} >= 1
 CWARNFLAGS	+=	-Wsystem-headers
-.   if !defined(NO_WERROR)
+.   if !defined(NO_WERROR) && (${CC:T:Mclang} != "clang" || !defined(NO_WERROR.clang))
 CWARNFLAGS	+=	-Werror
 .   endif
 .  endif
@@ -42,7 +42,7 @@ CWARNFLAGS	+=	-W -Wno-unused-parameter -
 .  if ${WARNS} >= 4
 CWARNFLAGS	+=	-Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch\
 			-Wshadow -Wunused-parameter
-.   if !defined(NO_WCAST_ALIGN)
+.   if !defined(NO_WCAST_ALIGN) && (${CC:T:Mclang} != "clang" || !defined(NO_WCAST_ALIGN.clang))
 CWARNFLAGS	+=	-Wcast-align
 .   endif
 .  endif
@@ -84,12 +84,12 @@ WFORMAT		=	1
 .  if ${WFORMAT} > 0
 #CWARNFLAGS	+=	-Wformat-nonliteral -Wformat-security -Wno-format-extra-args
 CWARNFLAGS	+=	-Wformat=2 -Wno-format-extra-args
-.   if !defined(NO_WERROR)
+.   if !defined(NO_WERROR) && (${CC:T:Mclang} != "clang" || !defined(NO_WERROR.clang))
 CWARNFLAGS	+=	-Werror
 .   endif
 .  endif
 . endif
-. if defined(NO_WFORMAT)
+. if defined(NO_WFORMAT) || (${CC:T:Mclang} == "clang" && defined(NO_WFORMAT.clang))
 CWARNFLAGS	+=	-Wno-format
 . endif
 .endif
@@ -98,6 +98,12 @@ CWARNFLAGS	+=	-Wno-format
 CWARNFLAGS	+=	-Wno-unknown-pragmas
 .endif
 
+.if ${CC:T:Mclang} == "clang"
+CLANG_NO_IAS	=	-no-integrated-as
+CLANG_OPT_SMALL	=	-mllvm -stack-alignment=8 -mllvm -inline-threshold=3 \
+			-mllvm -enable-load-pre=false
+.endif
+
 .if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \
     ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
 # Don't use -Wstack-protector as it breaks world with -Werror.

Modified: head/sys/boot/i386/boot0/Makefile
==============================================================================
--- head/sys/boot/i386/boot0/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/boot0/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -19,12 +19,6 @@ SRCS=	${PROG}.S
 OPTS ?= -DVOLUME_SERIAL -DPXE
 CFLAGS += ${OPTS}
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=	${.IMPSRC:T:Mboot0.S:C/^.+$/-no-integrated-as/}
-CFLAGS+=	${.IMPSRC:T:Mboot0ext.S:C/^.+$/-no-integrated-as/}
-.endif
-
 # Flags used in the boot0.S code:
 #   0x0f	all valid partitions enabled.
 #   0x80	'packet', use BIOS EDD (LBA) extensions instead of CHS
@@ -83,3 +77,8 @@ CFLAGS+=-DFLAGS=${BOOT_BOOT0_FLAGS} \
 LDFLAGS=-e start -Ttext ${BOOT_BOOT0_ORG} -Wl,-N,-S,--oformat,binary
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.boot0.S=		${CLANG_NO_IAS}
+CFLAGS.boot0ext.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/i386/boot2/Makefile
==============================================================================
--- head/sys/boot/i386/boot2/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/boot2/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -40,14 +40,8 @@ CFLAGS=	-Os \
 	-Wall -Waggregate-return -Wbad-function-cast -Wcast-align \
 	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
 	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
-	-Winline --param max-inline-insns-single=100
-
-.if ${CC:T:Mclang} == "clang"
-CFLAGS+=	-mllvm -stack-alignment=8 -mllvm -inline-threshold=3 \
-		-mllvm -enable-load-pre=false
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=	${.IMPSRC:T:Mboot1.S:C/^.+$/-no-integrated-as/}
-.endif
+	-Winline --param max-inline-insns-single=100 \
+	${CLANG_OPT_SMALL}
 
 LDFLAGS=-static -N --gc-sections
 
@@ -89,9 +83,7 @@ boot2.out: ${BTXCRT} boot2.o sio.o
 	${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC}
 
 boot2.o: boot2.s
-.if ${CC:T:Mclang} == "clang"
 	${CC} ${ACFLAGS} -c boot2.s
-.endif
 
 SRCS=	boot2.c boot2.h
 
@@ -115,3 +107,7 @@ machine:
 .endif
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.boot1.S=		${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/i386/btx/btx/Makefile
==============================================================================
--- head/sys/boot/i386/btx/btx/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/btx/btx/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -13,11 +13,6 @@ BOOT_BTX_FLAGS=0x0
 
 CFLAGS+=-DBTX_FLAGS=${BOOT_BTX_FLAGS}
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=${.IMPSRC:T:Mbtx.S:C/^.+$/-no-integrated-as/}
-.endif
-
 .if defined(BTX_SERIAL)
 BOOT_COMCONSOLE_PORT?= 0x3f8
 BOOT_COMCONSOLE_SPEED?= 9600
@@ -32,3 +27,7 @@ ORG=	0x9000
 LDFLAGS=-e start -Ttext ${ORG} -Wl,-N,-S,--oformat,binary
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.btx.S=		${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/i386/btx/btxldr/Makefile
==============================================================================
--- head/sys/boot/i386/btx/btxldr/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/btx/btxldr/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -11,11 +11,10 @@ CFLAGS+=-DLOADER_ADDRESS=${LOADER_ADDRES
 CFLAGS+=-DBTXLDR_VERBOSE
 .endif
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=${.IMPSRC:T:Mbtxldr.S:C/^.+$/-no-integrated-as/}
-.endif
-
 LDFLAGS=-e start -Ttext ${LOADER_ADDRESS} -Wl,-N,-S,--oformat,binary
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.btxldr.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/i386/gptboot/Makefile
==============================================================================
--- head/sys/boot/i386/gptboot/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/gptboot/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -36,11 +36,6 @@ CFLAGS=	-DBOOTPROG=\"gptboot\" \
 	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
 	-Winline --param max-inline-insns-single=100
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=	${.IMPSRC:T:Mgptldr.S:C/^.+$/-no-integrated-as/}
-.endif
-
 LDFLAGS=-static -N --gc-sections
 
 # Pick up ../Makefile.inc early.
@@ -79,3 +74,7 @@ machine:
 .endif
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.gptldr.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/i386/gptzfsboot/Makefile
==============================================================================
--- head/sys/boot/i386/gptzfsboot/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/gptzfsboot/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -34,11 +34,6 @@ CFLAGS=	-DBOOTPROG=\"gptzfsboot\" \
 	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
 	-Winline --param max-inline-insns-single=100
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=	${.IMPSRC:T:Mgptldr.S:C/^.+$/-no-integrated-as/}
-.endif
-
 LDFLAGS=-static -N --gc-sections
 
 # Pick up ../Makefile.inc early.
@@ -77,3 +72,7 @@ machine:
 .endif
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.gptldr.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/i386/libi386/Makefile
==============================================================================
--- head/sys/boot/i386/libi386/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/libi386/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -54,11 +54,6 @@ CFLAGS+=	-I${.CURDIR}/../../common -I${.
 # the location of libstand
 CFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=	${.IMPSRC:T:Mamd64_tramp.S:C/^.+$/-no-integrated-as/}
-.endif
-
 .if ${MACHINE_CPUARCH} == "amd64"
 CLEANFILES+=	machine
 machine:
@@ -67,6 +62,10 @@ machine:
 
 .include <bsd.lib.mk>
 
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.amd64_tramp.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}
+
 .if ${MACHINE_CPUARCH} == "amd64"
 beforedepend ${OBJS}: machine
 .endif

Modified: head/sys/boot/i386/pxeldr/Makefile
==============================================================================
--- head/sys/boot/i386/pxeldr/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/pxeldr/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -23,11 +23,6 @@ CFLAGS+=-DPROBE_KEYBOARD
 CFLAGS+=-DALWAYS_SERIAL
 .endif
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=${.IMPSRC:T:Mpxeldr.S:C/^.+$/-no-integrated-as/}
-.endif
-
 LOADERBIN= ${.OBJDIR}/../loader/loader.bin
 
 CLEANFILES+= ${BOOT}.tmp
@@ -46,3 +41,7 @@ ${LOADER}: ${LOADERBIN} ${BTXLDR} ${BTXK
 	    -b ${BTXKERN} ${LOADERBIN}
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.pxeldr.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/i386/zfsboot/Makefile
==============================================================================
--- head/sys/boot/i386/zfsboot/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/i386/zfsboot/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -31,11 +31,6 @@ CFLAGS=	-DBOOTPROG=\"zfsboot\" \
 	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
 	-Winline --param max-inline-insns-single=100
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=	${.IMPSRC:T:Mzfsldr.S:C/^.+$/-no-integrated-as/}
-.endif
-
 LDFLAGS=-static -N --gc-sections
 
 # Pick up ../Makefile.inc early.
@@ -90,3 +85,7 @@ machine:
 .endif
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.zfsldr.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/pc98/btx/btx/Makefile
==============================================================================
--- head/sys/boot/pc98/btx/btx/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/pc98/btx/btx/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -13,11 +13,6 @@ BOOT_BTX_FLAGS=0x0
 
 CFLAGS+=-DBTX_FLAGS=${BOOT_BTX_FLAGS}
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=${.IMPSRC:T:Mbtx.S:C/^.+$/-no-integrated-as/}
-.endif
-
 .if defined(BTX_SERIAL)
 BOOT_COMCONSOLE_PORT?= 0x238
 BOOT_COMCONSOLE_SPEED?= 9600
@@ -32,3 +27,7 @@ ORG=	0x9000
 LDFLAGS=-e start -Ttext ${ORG} -Wl,-N,-S,--oformat,binary
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.btx.S=		${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/boot/pc98/btx/btxldr/Makefile
==============================================================================
--- head/sys/boot/pc98/btx/btxldr/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/boot/pc98/btx/btxldr/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -11,11 +11,10 @@ CFLAGS+=-DLOADER_ADDRESS=${LOADER_ADDRES
 CFLAGS+=-DBTXLDR_VERBOSE
 .endif
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=${.IMPSRC:T:Mbtxldr.S:C/^.+$/-no-integrated-as/}
-.endif
-
 LDFLAGS=-e start -Ttext ${LOADER_ADDRESS} -Wl,-N,-S,--oformat,binary
 
 .include <bsd.prog.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.btxldr.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/conf/Makefile.amd64
==============================================================================
--- head/sys/conf/Makefile.amd64	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/conf/Makefile.amd64	Tue Feb 28 18:30:18 2012	(r232263)
@@ -40,13 +40,12 @@ CFLAGS+=	-fno-omit-frame-pointer
 
 MKMODULESENV+= MACHINE=amd64
 
-.if ${CC:T:Mclang} == "clang"
 # XXX: clang integrated-as doesn't grok .codeNN directives yet
-ASM_CFLAGS+=	${.IMPSRC:T:Macpi_wakecode.S:C/^.+$/-no-integrated-as/}
-ASM_CFLAGS+=	${.IMPSRC:T:Mia32_sigtramp.S:C/^.+$/-no-integrated-as/}
-ASM_CFLAGS+=	${.IMPSRC:T:Mlinux32_locore.s:C/^.+$/-no-integrated-as/}
-ASM_CFLAGS+=	${.IMPSRC:T:Mmpboot.S:C/^.+$/-no-integrated-as/}
-.endif
+ASM_CFLAGS.acpi_wakecode.S=	${CLANG_NO_IAS}
+ASM_CFLAGS.ia32_sigtramp.S=	${CLANG_NO_IAS}
+ASM_CFLAGS.linux32_locore.s=	${CLANG_NO_IAS}
+ASM_CFLAGS.mpboot.S=		${CLANG_NO_IAS}
+ASM_CFLAGS+=			${ASM_CFLAGS.${.IMPSRC:T}}
 
 %BEFORE_DEPEND
 

Modified: head/sys/conf/Makefile.i386
==============================================================================
--- head/sys/conf/Makefile.i386	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/conf/Makefile.i386	Tue Feb 28 18:30:18 2012	(r232263)
@@ -34,11 +34,10 @@ MACHINE=i386
 
 MKMODULESENV+=	MACHINE=${MACHINE}
 
-.if ${CC:T:Mclang} == "clang"
 # XXX: clang integrated-as doesn't grok .codeNN directives yet
-ASM_CFLAGS+=	${.IMPSRC:T:Macpi_wakecode.S:C/^.+$/-no-integrated-as/}
-ASM_CFLAGS+=	${.IMPSRC:T:Mmpboot.s:C/^.+$/-no-integrated-as/}
-.endif
+ASM_CFLAGS.acpi_wakecode.S=	${CLANG_NO_IAS}
+ASM_CFLAGS.mpboot.s=		${CLANG_NO_IAS}
+ASM_CFLAGS+=			${ASM_CFLAGS.${.IMPSRC:T}}
 
 %BEFORE_DEPEND
 

Modified: head/sys/conf/kern.pre.mk
==============================================================================
--- head/sys/conf/kern.pre.mk	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/conf/kern.pre.mk	Tue Feb 28 18:30:18 2012	(r232263)
@@ -101,6 +101,10 @@ WERROR?= -Werror
 # XXX LOCORE means "don't declare C stuff" not "for locore.s".
 ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS}
 
+.if ${CC:T:Mclang} == "clang"
+CLANG_NO_IAS= -no-integrated-as
+.endif
+
 .if defined(PROFLEVEL) && ${PROFLEVEL} >= 1
 CFLAGS+=	-DGPROF -falign-functions=16
 .if ${PROFLEVEL} >= 2

Modified: head/sys/modules/bios/smapi/Makefile
==============================================================================
--- head/sys/modules/bios/smapi/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/modules/bios/smapi/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -7,9 +7,9 @@ KMOD=	smapi
 SRCS=	smapi.c smapi_bios.S \
 	bus_if.h device_if.h
 WERROR=
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok 16-bit assembly yet
-CFLAGS+=	${.IMPSRC:T:Msmapi_bios.S:C/^.+$/-no-integrated-as/}
-.endif
 
 .include <bsd.kmod.mk>
+
+# XXX: clang integrated-as doesn't grok 16-bit assembly yet
+CFLAGS.smapi_bios.S=	${CLANG_NO_IAS}
+CFLAGS+=		${CFLAGS.${.IMPSRC:T}}

Modified: head/sys/modules/linux/Makefile
==============================================================================
--- head/sys/modules/linux/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/sys/modules/linux/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -5,11 +5,6 @@ SFX= 32
 CFLAGS+=-DCOMPAT_FREEBSD32 -DCOMPAT_LINUX32
 .endif
 
-.if ${CC:T:Mclang} == "clang"
-# XXX: clang integrated-as doesn't grok .codeNN directives yet
-CFLAGS+=	${.IMPSRC:T:Mlinux32_locore.s:C/^.+$/-no-integrated-as/}
-.endif
-
 .PATH: ${.CURDIR}/../../compat/linux ${.CURDIR}/../../${MACHINE_CPUARCH}/linux${SFX}
 
 KMOD=	linux
@@ -69,3 +64,7 @@ CFLAGS+=	-DKTR
 .endif
 
 .include <bsd.kmod.mk>
+
+# XXX: clang integrated-as doesn't grok .codeNN directives yet
+CFLAGS.linux32_locore.s=	${CLANG_NO_IAS}
+CFLAGS+=			${CFLAGS.${.IMPSRC:T}}

Modified: head/usr.bin/netstat/Makefile
==============================================================================
--- head/usr.bin/netstat/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/usr.bin/netstat/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -8,11 +8,9 @@ SRCS=	if.c inet.c main.c mbuf.c mroute.c
 	unix.c atalk.c mroute6.c ipsec.c bpf.c pfkey.c sctp.c
 
 WARNS?=	3
-.if ${CC:T:Mclang} == "clang"
 # XXX: Work around a clang false positive with format string warnings
 # and ntohs macros (see LLVM PR 11313).
-NO_WFORMAT=
-.endif
+NO_WFORMAT.clang=
 CFLAGS+=-fno-strict-aliasing
 
 CFLAGS+=-DIPSEC

Modified: head/usr.bin/vacation/Makefile
==============================================================================
--- head/usr.bin/vacation/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/usr.bin/vacation/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -11,12 +11,10 @@ CFLAGS+=-D_FFR_LISTDB -D_FFR_DEBUG
 
 WARNS?=	2
 
-.if ${CC:T:Mclang} == "clang"
 # Unfortunately, clang gives warnings about sendmail code that cannot
 # be turned off yet.  Since this is contrib code, and we don't really
 # care about the warnings, just make them non-fatal for now.
-NO_WERROR=
-.endif
+NO_WERROR.clang=
 
 LIBSMDIR=	${.OBJDIR}/../../lib/libsm
 LIBSM=		${LIBSMDIR}/libsm.a

Modified: head/usr.sbin/sendmail/Makefile
==============================================================================
--- head/usr.sbin/sendmail/Makefile	Tue Feb 28 18:24:28 2012	(r232262)
+++ head/usr.sbin/sendmail/Makefile	Tue Feb 28 18:30:18 2012	(r232263)
@@ -45,12 +45,10 @@ CFLAGS+= -DNETINET6
 
 WARNS?=	1
 
-.if ${CC:T:Mclang} == "clang"
 # Unfortunately, clang gives warnings about sendmail code that cannot
 # be turned off yet.  Since this is contrib code, and we don't really
 # care about the warnings, just make them non-fatal for now.
-NO_WERROR=
-.endif
+NO_WERROR.clang=
 
 DPADD=	${LIBUTIL} ${LIBWRAP}
 LDADD=	-lutil -lwrap



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