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>