On Dec 31, 2014, at 20:12, Warner Losh <i...@bsdimp.com> wrote:

>> On Dec 31, 2014, at 8:52 PM, Dimitry Andric <d...@freebsd.org> wrote:
>> 
>> 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? :)
> 
> I may be wrong here for boot stuff that uses it.
> 
>> 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…
> 
> Only for boot. Thanks, though I think they may be CFLAGS.clang += there.
> 
>> 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?
> 
> Yea, but since a build universe wasn’t done, they were present in the
> build. They are harmless on other architectures.
> 
>>> +# 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.
> 
> It was the only bit of bsd.sys.mk that was needed.

        Unfortunately that broke the build on all architectures where bce is 
built as -std= was not being passed to the compiler. Jenkins reported an error 
with bce: https://jenkins.freebsd.org/job/FreeBSD_HEAD_sparc64/225/changes , 
and I committed a change to bring back that support here: 
https://svnweb.freebsd.org/changeset/base/276493 . Please revert it if it 
wasn’t correct.
Thanks!

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

Reply via email to