summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2012-02-28 18:30:18 +0000
committerdim <dim@FreeBSD.org>2012-02-28 18:30:18 +0000
commit0d1f91e8e1d46e491844d983927a0fbfc1c6b414 (patch)
tree3aa885ba7c336d9e6d260c5deb1228863b043b89 /sys/conf
parent86b4719ed57cc44687bc6f6b1ea3786dce60a2d1 (diff)
downloadFreeBSD-src-0d1f91e8e1d46e491844d983927a0fbfc1c6b414.zip
FreeBSD-src-0d1f91e8e1d46e491844d983927a0fbfc1c6b414.tar.gz
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
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/Makefile.amd6411
-rw-r--r--sys/conf/Makefile.i3867
-rw-r--r--sys/conf/kern.pre.mk4
3 files changed, 12 insertions, 10 deletions
diff --git a/sys/conf/Makefile.amd64 b/sys/conf/Makefile.amd64
index 5096829..33f146e 100644
--- a/sys/conf/Makefile.amd64
+++ b/sys/conf/Makefile.amd64
@@ -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
diff --git a/sys/conf/Makefile.i386 b/sys/conf/Makefile.i386
index 5ea09d0..538ccbc 100644
--- a/sys/conf/Makefile.i386
+++ b/sys/conf/Makefile.i386
@@ -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
diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk
index a209ddd..8edc1c9 100644
--- a/sys/conf/kern.pre.mk
+++ b/sys/conf/kern.pre.mk
@@ -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
OpenPOWER on IntegriCloud