Message ID | 200907102205.49642.elendil@planet.nl (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Saturday 18 July 2009, Sam Ravnborg wrote: > > # disable invalid "can't wrap" optimizations for signed / pointers > > -KBUILD_CFLAGS += $(call cc-option,-fwrapv) > > +KBUILD_CFLAGS += $(shell if [ $(call cc-version) -ge 0402 ]; then \ > > + echo $(call cc-option,-fwrapv); fi ;) > > This would be simpler if you use: That's now academic as Linus decided on a different fix. > # cc-ifversion > # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) > cc-ifversion = $(shell [ $(call cc-version, $(CC)) $(1) $(2) ] && echo $(3)) > > We have only one user at the moment so I understand why you missed it. :-) I based my patch on arch/x86/Makefile: 35: KBUILD_CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then \ 36: echo $(call cc-option,-fno-unit-at-a-time); fi ;) Guess that could be improved to use cc-ifversion then. And a quick git grep gives a few other potential candidates: arch/ia64/Makefile:44:ifeq ($(call cc-version),0304) arch/parisc/Makefile:129: @if test "$(call cc-version)" -lt "0303"; then \ arch/powerpc/Makefile:80:GCC_BROKEN_VEC := $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi) arch/powerpc/Makefile:219: @if test "$(call cc-version)" = "0304" ; then \ arch/um/Makefile-i386:38:KBUILD_CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then \ Cheers, FJP -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Saturday 18 July 2009, Sam Ravnborg wrote: > > I based my patch on arch/x86/Makefile: > > 35: KBUILD_CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then \ > > 36: echo $(call cc-option,-fno-unit-at-a-time); fi ;) > > > > Guess that could be improved to use cc-ifversion then. > > Yes, please... I've got patches for x86, ia64, powerpc and um, but have a couple of questions before I submit them. Can the patches go through your kbuild tree or should they go through the arch trees (they will be CCed of course)? In my patches I've left the cc-option check where it existed, so for x86 you get (tested to work): - KBUILD_CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then \ - echo $(call cc-option,-fno-unit-at-a-time); fi ;) + KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0400, \ + $(call cc-option,-fno-unit-at-a-time)) Or is it safe to simplify that to just: + KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0400, -fno-unit-at-a-time) ? > > And a quick git grep gives a few other potential candidates: > > arch/parisc/Makefile:129: @if test "$(call cc-version)" -lt "0303"; then \ I left this one unchanged as it does not add a compiler option; instead it displays an "unsupported' message. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Makefile b/Makefile index 0aeec59..2519fde 100644 --- a/Makefile +++ b/Makefile @@ -565,7 +565,8 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) # disable invalid "can't wrap" optimizations for signed / pointers -KBUILD_CFLAGS += $(call cc-option,-fwrapv) +KBUILD_CFLAGS += $(shell if [ $(call cc-version) -ge 0402 ]; then \ + echo $(call cc-option,-fwrapv); fi ;) # revert to pre-gcc-4.4 behaviour of .eh_frame