svn commit: r276488 - in head: share/mk sys/arm/broadcom/bcm2835 sys/conf
Warner Losh
imp at bsdimp.com
Thu Jan 1 04:12:53 UTC 2015
> On Dec 31, 2014, at 8:52 PM, Dimitry Andric <dim at FreeBSD.org> wrote:
>
> On 01 Jan 2015, at 03:00, Warner Losh <imp at 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.
Warner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20141231/6818be62/attachment.sig>
More information about the svn-src-all
mailing list