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
_______________________________________________
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