Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Oct 2011 22:06:34 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Robert Millan <rmh@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r226665 - head/sys/conf
Message-ID:  <4EA473CA.8050104@FreeBSD.org>
In-Reply-To: <201110231627.p9NGR47P046269@svn.freebsd.org>
References:  <201110231627.p9NGR47P046269@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2011-10-23 18:27, Robert Millan wrote:
> Author: rmh
> Date: Sun Oct 23 16:27:03 2011
> New Revision: 226665
> URL: http://svn.freebsd.org/changeset/base/226665
>
> Log:
>    Conditionalize a pair of FreeBSD GCC extensions so that its CFLAGS are only
>    used with FreeBSD GCC.
>
>    Approved by:	kib (mentor)
>
> Modified:
>    head/sys/conf/kern.mk
>
> Modified: head/sys/conf/kern.mk
> ==============================================================================
> --- head/sys/conf/kern.mk	Sun Oct 23 16:04:07 2011	(r226664)
> +++ head/sys/conf/kern.mk	Sun Oct 23 16:27:03 2011	(r226665)
> @@ -1,11 +1,21 @@
>   # $FreeBSD$
>
> +.if ${CC:T:Mclang} != "clang"
> +FREEBSD_GCC!=	${CC} --version | grep FreeBSD || true
> +.endif
> +
>   #
>   # Warning flags for compiling the kernel and components of the kernel:
>   #
> +.if ${FREEBSD_GCC}
> +# FreeBSD extensions, not available in upstream GCC
> +format_extensions=	-fformat-extensions
> +no_align_long_strings=	-mno-align-long-strings
> +.endif

Note: this breaks builds where CC=clang, with:

>>> Kernel build for GENERIC started on Sun Oct 23 22:01:23 CEST 2011
...
>>> stage 2.1: cleaning up the object tree
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=/usr/obj  MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin  GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font  GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac  _SHLIBDIRPREFIX=/usr/obj/usr/src/tmp  VERSION="FreeBSD 10.0-CURRENT i386 1000000"  INSTALL="sh /usr/src/tools/install.sh"  PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin make KERNEL=kernel cleandir
"/usr/src/sys/conf/kern.mk", line 10: Malformed conditional (${FREEBSD_GCC})
"/usr/src/sys/conf/kern.mk", line 14: if-less endif
make: fatal errors encountered -- cannot continue
*** Error code 1
1 error
*** Error code 2
1 error
Exited
Process exited with status 2

Since our base 'clang --version' also has 'FreeBSD' in its output, you
might want to drop the first .if ${CC:T:Mclang} != "clang" test.  E.g.
just unconditionally set the FREEBSD_GCC macro (although it's then no
longer correctly named, but that aside).



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