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

>> On Dec 31, 2014, at 9:15 PM, Garrett Cooper <yaneurab...@gmail.com> wrote:
>> 
>> 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.
> 
> This change is wrong. bsd.sys.mk was eliminated on purpose, dammit.

Sorry. Should have asked first. Now the build is broken on all architectures 
:/. What next?

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

Reply via email to