Date: Sat, 10 May 2014 16:38:09 +0000 (UTC) From: Warner Losh <imp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r265832 - head/sys/conf Message-ID: <201405101638.s4AGc9Xk006523@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: imp Date: Sat May 10 16:38:09 2014 New Revision: 265832 URL: http://svnweb.freebsd.org/changeset/base/265832 Log: Simplify clang ifdefs in the kernel a bit. Introduce CFLAGS.${COMPILER_TYPE} to mirror userland. Be explicit about which compiler needs something (not clang isn't necessarily gcc in the future). Modified: head/sys/conf/Makefile.arm head/sys/conf/kern.mk head/sys/conf/kern.pre.mk head/sys/conf/kmod.mk Modified: head/sys/conf/Makefile.arm ============================================================================== --- head/sys/conf/Makefile.arm Sat May 10 16:38:03 2014 (r265831) +++ head/sys/conf/Makefile.arm Sat May 10 16:38:09 2014 (r265832) @@ -39,20 +39,17 @@ SYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/ldscri STRIP_FLAGS = -S .endif -.if ${COMPILER_TYPE} != "clang" -CFLAGS += -mno-thumb-interwork -.endif +# We don't support gcc's thump interwork stuff, so disable it +CFLAGS.gcc += -mno-thumb-interwork .if empty(DDB_ENABLED) -.if ${MK_ARM_EABI} == "no" && ${COMPILER_TYPE} == "gcc" -CFLAGS += -mno-apcs-frame +.if ${MK_ARM_EABI} == "no" +CFLAGS.gcc += -mno-apcs-frame .endif .elif ${MK_ARM_EABI} != "no" CFLAGS += -funwind-tables -.if ${COMPILER_TYPE} == "clang" # clang requires us to tell it to emit assembly with unwind information -CFLAGS += -mllvm -arm-enable-ehabi -.endif +CFLAGS.clang += -mllvm -arm-enable-ehabi .endif # hack because genassym.c includes sys/bus.h which includes these. Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Sat May 10 16:38:03 2014 (r265831) +++ head/sys/conf/kern.mk Sat May 10 16:38:09 2014 (r265832) @@ -64,11 +64,8 @@ FORMAT_EXTENSIONS= -fformat-extensions # Setting -mno-sse implies -mno-sse2, -mno-sse3, -mno-ssse3, -mno-sse41 and -mno-sse42 # .if ${MACHINE_CPUARCH} == "i386" -.if ${COMPILER_TYPE} != "clang" -CFLAGS+= -mno-align-long-strings -mpreferred-stack-boundary=2 -.else -CFLAGS+= -mno-aes -mno-avx -.endif +CFLAGS.gcc+= -mno-align-long-strings -mpreferred-stack-boundary=2 +CFLAGS.clang+= -mno-aes -mno-avx CFLAGS+= -mno-mmx -mno-sse -msoft-float INLINE_LIMIT?= 8000 .endif @@ -93,11 +90,8 @@ INLINE_LIMIT?= 15000 # operations which it has a tendency to do. # .if ${MACHINE_CPUARCH} == "sparc64" -.if ${COMPILER_TYPE} == "clang" -CFLAGS+= -mcmodel=large -fno-dwarf2-cfi-asm -.else -CFLAGS+= -mcmodel=medany -msoft-float -.endif +CFLAGS.clang+= -mcmodel=large -fno-dwarf2-cfi-asm +CFLAGS.gcc+= -mcmodel=medany -msoft-float INLINE_LIMIT?= 15000 .endif @@ -116,9 +110,7 @@ INLINE_LIMIT?= 15000 # (-mfpmath= is not supported) # .if ${MACHINE_CPUARCH} == "amd64" -.if ${COMPILER_TYPE} == "clang" -CFLAGS+= -mno-aes -mno-avx -.endif +CFLAGS.clang+= -mno-aes -mno-avx CFLAGS+= -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float \ -fno-asynchronous-unwind-tables INLINE_LIMIT?= 8000 @@ -173,3 +165,5 @@ CFLAGS+= -fstack-protector .if ${CFLAGS:M-g} != "" && ${CFLAGS:M-gdwarf*} == "" CFLAGS+= -gdwarf-2 .endif + +CFLAGS+= ${CFLAGS.${COMPILER_TYPE}} Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Sat May 10 16:38:03 2014 (r265831) +++ head/sys/conf/kern.pre.mk Sat May 10 16:38:09 2014 (r265832) @@ -37,10 +37,10 @@ _MINUS_O= -O2 .endif .endif .if ${MACHINE_CPUARCH} == "amd64" -.if ${COMPILER_TYPE} != "clang" -COPTFLAGS?=-O2 -frename-registers -pipe -.else +.if ${COMPILER_TYPE} == "clang" COPTFLAGS?=-O2 -pipe +.else +COPTFLAGS?=-O2 -frename-registers -pipe .endif .else COPTFLAGS?=${_MINUS_O} -pipe @@ -86,13 +86,11 @@ CFLAGS_PARAM_LARGE_FUNCTION_GROWTH?=1000 .if ${MACHINE_CPUARCH} == "mips" CFLAGS_ARCH_PARAMS?=--param max-inline-insns-single=1000 .endif -.if ${COMPILER_TYPE} != "clang" -CFLAGS+= -fno-common -finline-limit=${INLINE_LIMIT} -CFLAGS+= --param inline-unit-growth=${CFLAGS_PARAM_INLINE_UNIT_GROWTH} -CFLAGS+= --param large-function-growth=${CFLAGS_PARAM_LARGE_FUNCTION_GROWTH} +CFLAGS.gcc+= -fno-common -finline-limit=${INLINE_LIMIT} +CFLAGS.gcc+= --param inline-unit-growth=${CFLAGS_PARAM_INLINE_UNIT_GROWTH} +CFLAGS.gcc+= --param large-function-growth=${CFLAGS_PARAM_LARGE_FUNCTION_GROWTH} .if defined(CFLAGS_ARCH_PARAMS) -CFLAGS+=${CFLAGS_ARCH_PARAMS} -.endif +CFLAGS.gcc+=${CFLAGS_ARCH_PARAMS} .endif WERROR?= -Werror @@ -107,13 +105,11 @@ GCC_MS_EXTENSIONS= -fms-extensions .if defined(PROFLEVEL) && ${PROFLEVEL} >= 1 CFLAGS+= -DGPROF -.if ${COMPILER_TYPE} != "clang" -CFLAGS+= -falign-functions=16 -.endif +CFLAGS.gcc+= -falign-functions=16 .if ${PROFLEVEL} >= 2 CFLAGS+= -DGPROF4 -DGUPROF PROF= -pg -.if ${COMPILER_TYPE} != "clang" +.if ${COMPILER_TYPE} == "gcc" PROF+= -mprofiler-epilogue .endif .else Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Sat May 10 16:38:03 2014 (r265831) +++ head/sys/conf/kmod.mk Sat May 10 16:38:09 2014 (r265832) @@ -116,11 +116,9 @@ CFLAGS+= -I. -I@ # for example. CFLAGS+= -I@/contrib/altq -.if ${COMPILER_TYPE} != "clang" -CFLAGS+= -finline-limit=${INLINE_LIMIT} -CFLAGS+= --param inline-unit-growth=100 -CFLAGS+= --param large-function-growth=1000 -.endif +CFLAGS.gcc+= -finline-limit=${INLINE_LIMIT} +CFLAGS.gcc+= --param inline-unit-growth=100 +CFLAGS.gcc+= --param large-function-growth=1000 # Disallow common variables, and if we end up with commons from # somewhere unexpected, allocate storage for them in the module itself.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405101638.s4AGc9Xk006523>