Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Jan 2015 12:28:23 +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: r276696 - in head/sys: conf modules/bios/smapi
Message-ID:  <201501051228.t05CSN4Z088872@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Mon Jan  5 12:28:22 2015
New Revision: 276696
URL: https://svnweb.freebsd.org/changeset/base/276696

Log:
  Clang's 3.5 integrated assembler now handles these files correctly (it
  has support for the .codeXX directives). However, it is desirable, for
  a time, to allow kernels to be built with clang 3.4. Historically, it
  has been advantageous to allow stable X-1 to build kernels the old
  way (so long as the impact of doing so is small), and this restores
  that ability.
  
  Also, centralize the addition of ${ASM_CFLAGS.${.IMPSRC}}, place it in
  kern.mk rather than kern.pre.mk so that all modules can benefit, and
  give the same treatment to CFLAGS in kern.mk as well.

Modified:
  head/sys/conf/Makefile.amd64
  head/sys/conf/Makefile.i386
  head/sys/conf/Makefile.pc98
  head/sys/conf/kern.mk
  head/sys/conf/kern.pre.mk
  head/sys/modules/bios/smapi/Makefile

Modified: head/sys/conf/Makefile.amd64
==============================================================================
--- head/sys/conf/Makefile.amd64	Mon Jan  5 11:40:05 2015	(r276695)
+++ head/sys/conf/Makefile.amd64	Mon Jan  5 12:28:22 2015	(r276696)
@@ -37,6 +37,9 @@ INCLUDES+= -I$S/contrib/libfdt
 CFLAGS+=	-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
 .endif
 
+ASM_CFLAGS.acpi_wakecode.S=	${CLANG_NO_IAS34}
+ASM_CFLAGS.mpboot.S=		${CLANG_NO_IAS34}
+
 %BEFORE_DEPEND
 
 %OBJS

Modified: head/sys/conf/Makefile.i386
==============================================================================
--- head/sys/conf/Makefile.i386	Mon Jan  5 11:40:05 2015	(r276695)
+++ head/sys/conf/Makefile.i386	Mon Jan  5 12:28:22 2015	(r276696)
@@ -32,6 +32,9 @@ S=	../../..
 
 INCLUDES+= -I$S/contrib/libfdt
 
+ASM_CFLAGS.acpi_wakecode.S=	${CLANG_NO_IAS34}
+ASM_CFLAGS.mpboot.s=		${CLANG_NO_IAS34}
+
 %BEFORE_DEPEND
 
 %OBJS

Modified: head/sys/conf/Makefile.pc98
==============================================================================
--- head/sys/conf/Makefile.pc98	Mon Jan  5 11:40:05 2015	(r276695)
+++ head/sys/conf/Makefile.pc98	Mon Jan  5 12:28:22 2015	(r276696)
@@ -30,6 +30,8 @@ S=	../../..
 .endif
 .include "$S/conf/kern.pre.mk"
 
+ASM_CFLAGS.mpboot.s=		${CLANG_NO_IAS34}
+
 %BEFORE_DEPEND
 
 %OBJS

Modified: head/sys/conf/kern.mk
==============================================================================
--- head/sys/conf/kern.mk	Mon Jan  5 11:40:05 2015	(r276695)
+++ head/sys/conf/kern.mk	Mon Jan  5 12:28:22 2015	(r276696)
@@ -29,9 +29,16 @@ NO_WSOMETIMES_UNINITIALIZED=	-Wno-error-
 CWARNEXTRA?=	-Wno-error-tautological-compare -Wno-error-empty-body \
 		-Wno-error-parentheses-equality -Wno-error-unused-function \
 		-Wno-error-pointer-sign -Wno-error-format -Wno-error-parentheses
+
+CLANG_NO_IAS= -no-integrated-as
+.if ${COMPILER_VERSION} < 30500
+# XXX: clang < 3.5 integrated-as doesn't grok .codeNN directives
+CLANG_NO_IAS34= -no-integrated-as
+.endif
 .endif
 
 .if ${COMPILER_TYPE} == "gcc"
+GCC_MS_EXTENSIONS= -fms-extensions
 .if ${COMPILER_VERSION} >= 40300
 # Catch-all for all the things that are in our tree, but for which we're
 # not yet ready for this compiler. Note: we likely only really "support"
@@ -168,9 +175,8 @@ CFLAGS+=	-fstack-protector
 CFLAGS+=	-gdwarf-2
 .endif
 
-CFLAGS+= ${CWARNEXTRA}
-
-CFLAGS+= ${CFLAGS.${COMPILER_TYPE}}
+CFLAGS+= ${CWARNEXTRA} ${CWARNFLAGS} ${CWARNFLAGS.${.IMPSRC:T}}
+CFLAGS+= ${CFLAGS.${COMPILER_TYPE}} ${CFLAGS.${.IMPSRC}}
 
 # Tell bmake not to mistake standard targets for things to be searched for
 # or expect to ever be up-to-date.
@@ -199,6 +205,3 @@ CFLAGS+=        -std=iso9899:1999
 .else # CSTD
 CFLAGS+=        -std=${CSTD}
 .endif # CSTD
-
-# Pull in any CWARNFLAGS the modules have added.
-CFLAGS+= ${CWARNFLAGS} ${CWARNFLAGS.${.IMPSRC:T}}

Modified: head/sys/conf/kern.pre.mk
==============================================================================
--- head/sys/conf/kern.pre.mk	Mon Jan  5 11:40:05 2015	(r276695)
+++ head/sys/conf/kern.pre.mk	Mon Jan  5 12:28:22 2015	(r276696)
@@ -103,13 +103,7 @@ CFLAGS.gcc+=${CFLAGS_ARCH_PARAMS}
 WERROR?= -Werror
 
 # XXX LOCORE means "don't declare C stuff" not "for locore.s".
-ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS}
-
-.if ${COMPILER_TYPE} == "clang"
-CLANG_NO_IAS= -no-integrated-as
-.else
-GCC_MS_EXTENSIONS= -fms-extensions
-.endif
+ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} ${ASM_CFLAGS.${.IMPSRC}} 
 
 .if defined(PROFLEVEL) && ${PROFLEVEL} >= 1
 CFLAGS+=	-DGPROF

Modified: head/sys/modules/bios/smapi/Makefile
==============================================================================
--- head/sys/modules/bios/smapi/Makefile	Mon Jan  5 11:40:05 2015	(r276695)
+++ head/sys/modules/bios/smapi/Makefile	Mon Jan  5 12:28:22 2015	(r276696)
@@ -8,3 +8,5 @@ SRCS=	smapi.c smapi_bios.S \
 	bus_if.h device_if.h
 
 .include <bsd.kmod.mk>
+
+CFLAGS.smapi_bios.S=	${CLANG_NO_IAS34}



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