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.
This commit is contained in:
imp 2015-01-01 02:00:04 +00:00
parent b2f095aaa6
commit 6783859f31
4 changed files with 23 additions and 7 deletions

View File

@ -13,5 +13,3 @@ SYSDIR= ${_dir}
.endif
.include "${SYSDIR}/conf/kmod.mk"
.include <bsd.sys.mk>

View File

@ -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

View File

@ -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"

View File

@ -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}}
# 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}