On 01 Jan 2015, at 03:00, Warner Losh <i...@freebsd.org> wrote:
> 
> Author: imp
> Date: Thu Jan  1 02:00:04 2015
> New Revision: 276488
> URL: https://svnweb.freebsd.org/changeset/base/276488
> 
> Log:
>  Fix module builds on arm (and maybe others) by turning off a whole
>  raft of new warnings that appear to be on by default in clang 3.5.0.
>  Fix RPI-B build issues with new clang not liking the ability to pass
>  arbitrary flags to as, since some flags are more arbitrary (and thus
>  verboten) than others.
> 
>  These warnings should be actually fixed in the code, but this is a
>  band-aide to get things (almost) building again.
> 
> Modified:
>  head/share/mk/bsd.kmod.mk
>  head/share/mk/bsd.sys.mk
>  head/sys/arm/broadcom/bcm2835/std.bcm2835
>  head/sys/conf/kern.mk
> 
> Modified: head/share/mk/bsd.kmod.mk
> ==============================================================================
> --- head/share/mk/bsd.kmod.mk Thu Jan  1 01:43:00 2015        (r276487)
> +++ head/share/mk/bsd.kmod.mk Thu Jan  1 02:00:04 2015        (r276488)
> @@ -13,5 +13,3 @@ SYSDIR=     ${_dir}
> .endif
> 
> .include "${SYSDIR}/conf/kmod.mk"
> -
> -.include <bsd.sys.mk>
> 
> Modified: head/share/mk/bsd.sys.mk
> ==============================================================================
> --- head/share/mk/bsd.sys.mk  Thu Jan  1 01:43:00 2015        (r276487)
> +++ head/share/mk/bsd.sys.mk  Thu Jan  1 02:00:04 2015        (r276488)
> @@ -110,11 +110,7 @@ CWARNFLAGS+=     -Wno-format
> CWARNFLAGS+=  -Wno-unknown-pragmas
> .endif # IGNORE_PRAGMA
> 
> -.if ${COMPILER_TYPE} == "clang"
> -# Would love to do this unconditionally, but can't due to its use in
> -# kernel build coupled with CFLAGS.${TARGET} feature
> CLANG_NO_IAS=  -no-integrated-as
> -.endif
> CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\
>                -mllvm -simplifycfg-dup-ret -mllvm -enable-gvn=false
> CFLAGS.clang+=         -Qunused-arguments

This should not be removed from bsd.sys.mk, since other things depend on
it, are you sure that you want this? :)

As far as I know, there are still a few places in the tree that use the
CLANG_NO_IAS macro.  It would be nice if those all went away, though...


> Modified: head/sys/arm/broadcom/bcm2835/std.bcm2835
> ==============================================================================
> --- head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan  1 01:43:00 2015        
> (r276487)
> +++ head/sys/arm/broadcom/bcm2835/std.bcm2835 Thu Jan  1 02:00:04 2015        
> (r276488)
> @@ -2,7 +2,7 @@
> 
> machine       arm armv6
> cpu   CPU_ARM1176
> -makeoptions  CONF_CFLAGS="-mcpu=arm1176jzf-s -Wa,-mcpu=arm1176jzf-s"
> +makeoptions  CONF_CFLAGS="-mcpu=arm1176jzf-s"
> 
> files "../broadcom/bcm2835/files.bcm2835"
> 
> 
> Modified: head/sys/conf/kern.mk
> ==============================================================================
> --- head/sys/conf/kern.mk     Thu Jan  1 01:43:00 2015        (r276487)
> +++ head/sys/conf/kern.mk     Thu Jan  1 02:00:04 2015        (r276488)
> @@ -164,4 +164,26 @@ CFLAGS+= -fstack-protector
> CFLAGS+=      -gdwarf-2
> .endif
> 
> +# A whole bunch of new default warnings in clang 3.5 subpress for now until
> +# this can be cleaned up.
> +.if ${COMPILER_VERSION} >= 30500
> +CFLAGS.clang+=    -Wno-pointer-sign -Wno-constant-conversion -Wno-format \
> +     -Wno-shift-count-negative -Wno-tautological-pointer-compare \
> +     -Wno-shift-count-overflow -Wno-tautological-compare
> +.endif
> +
> CFLAGS+= ${CFLAGS.${COMPILER_TYPE}}

Note that for x86, all of these warnings were already either fixed or
suppressed.  I assume this will be fleshed out later?


> +# Tell bmake not to mistake standard targets for things to be searched for
> +# or expect to ever be up-to-date.
> +PHONY_NOTMAIN = afterdepend afterinstall all beforedepend beforeinstall \
> +             beforelinking build build-tools buildfiles buildincludes \
> +             checkdpadd clean cleandepend cleandir cleanobj configure \
> +             depend dependall distclean distribute exe \
> +             html includes install installfiles installincludes lint \
> +             obj objlink objs objwarn realall realdepend \
> +             realinstall regress subdir-all subdir-depend subdir-install \
> +             tags whereobj
> +
> +.PHONY: ${PHONY_NOTMAIN}
> +.NOTMAIN: ${PHONY_NOTMAIN}
> 

Was this latter part intentional?  It does not seem to have anything to
do with clang at all.

-Dimitry

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to