kbuild: remove GCC_VERSION

This was causing some ordering problems. Remove the up-front evaluation
and just revaluate the compiler version each time we need it.

(The up-front evaluation was problematic because some architectures modify
the value of $(CC)).

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

+8 -16
+2 -2
Documentation/kbuild/makefiles.txt
··· 1033 1034 Example: 1035 #arch/i386/Makefile 1036 - GCC_VERSION := $(call cc-version) 1037 cflags-y += $(shell \ 1038 - if [ $(GCC_VERSION) -ge 0300 ] ; then echo "-mregparm=3"; fi ;) 1039 1040 In the above example -mregparm=3 is only used for gcc version greater 1041 than or equal to gcc 3.0.
··· 1033 1034 Example: 1035 #arch/i386/Makefile 1036 cflags-y += $(shell \ 1037 + if [ $(call cc-version) -ge 0300 ] ; then \ 1038 + echo "-mregparm=3"; fi ;) 1039 1040 In the above example -mregparm=3 is only used for gcc version greater 1041 than or equal to gcc 3.0.
+2 -2
arch/i386/Makefile
··· 39 40 # -mregparm=3 works ok on gcc-3.0 and later 41 # 42 - GCC_VERSION := $(call cc-version) 43 - cflags-$(CONFIG_REGPARM) += $(shell if [ $(GCC_VERSION) -ge 0300 ] ; then echo "-mregparm=3"; fi ;) 44 45 # Disable unit-at-a-time mode, it makes gcc use a lot more stack 46 # due to the lack of sharing of stacklots.
··· 39 40 # -mregparm=3 works ok on gcc-3.0 and later 41 # 42 + cflags-$(CONFIG_REGPARM) += $(shell if [ $(call cc-version) -ge 0300 ] ; then \ 43 + echo "-mregparm=3"; fi ;) 44 45 # Disable unit-at-a-time mode, it makes gcc use a lot more stack 46 # due to the lack of sharing of stacklots.
+1 -6
arch/ia64/Makefile
··· 25 -falign-functions=32 -frename-registers -fno-optimize-sibling-calls 26 CFLAGS_KERNEL := -mconstant-gp 27 28 - GCC_VERSION := $(call cc-version) 29 GAS_STATUS = $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)") 30 CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)") 31 ··· 36 ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz) 37 endif 38 39 - ifneq ($(shell if [ $(GCC_VERSION) -lt 0300 ] ; then echo "bad"; fi ;),) 40 - $(error Sorry, your compiler is too old. GCC v2.96 is known to generate bad code.) 41 - endif 42 - 43 - ifeq ($(GCC_VERSION),0304) 44 cflags-$(CONFIG_ITANIUM) += -mtune=merced 45 cflags-$(CONFIG_MCKINLEY) += -mtune=mckinley 46 endif
··· 25 -falign-functions=32 -frename-registers -fno-optimize-sibling-calls 26 CFLAGS_KERNEL := -mconstant-gp 27 28 GAS_STATUS = $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)") 29 CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)") 30 ··· 37 ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz) 38 endif 39 40 + ifeq ($(call cc-version),0304) 41 cflags-$(CONFIG_ITANIUM) += -mtune=merced 42 cflags-$(CONFIG_MCKINLEY) += -mtune=mckinley 43 endif
+2 -4
arch/powerpc/Makefile
··· 76 CHECKFLAGS += -m$(SZ) -D__powerpc__ -D__powerpc$(SZ)__ 77 78 ifeq ($(CONFIG_PPC64),y) 79 - GCC_VERSION := $(call cc-version) 80 - GCC_BROKEN_VEC := $(shell if [ $(GCC_VERSION) -lt 0400 ] ; then echo "y"; fi) 81 82 ifeq ($(CONFIG_POWER4_ONLY),y) 83 ifeq ($(CONFIG_ALTIVEC),y) ··· 188 # Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later for altivec 189 # instructions. 190 # gcc-3.4 and binutils-2.14 are a fatal combination. 191 - GCC_VERSION := $(call cc-version) 192 193 checkbin: 194 - @if test "$(GCC_VERSION)" = "0304" ; then \ 195 if ! /bin/echo mftb 5 | $(AS) -v -mppc -many -o $(TOUT) >/dev/null 2>&1 ; then \ 196 echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build '; \ 197 echo 'correctly with gcc-3.4 and your version of binutils.'; \
··· 76 CHECKFLAGS += -m$(SZ) -D__powerpc__ -D__powerpc$(SZ)__ 77 78 ifeq ($(CONFIG_PPC64),y) 79 + GCC_BROKEN_VEC := $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi) 80 81 ifeq ($(CONFIG_POWER4_ONLY),y) 82 ifeq ($(CONFIG_ALTIVEC),y) ··· 189 # Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later for altivec 190 # instructions. 191 # gcc-3.4 and binutils-2.14 are a fatal combination. 192 193 checkbin: 194 + @if test "$(call cc-version)" = "0304" ; then \ 195 if ! /bin/echo mftb 5 | $(AS) -v -mppc -many -o $(TOUT) >/dev/null 2>&1 ; then \ 196 echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build '; \ 197 echo 'correctly with gcc-3.4 and your version of binutils.'; \
+1 -2
arch/ppc/Makefile
··· 128 # Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later for altivec 129 # instructions. 130 # gcc-3.4 and binutils-2.14 are a fatal combination. 131 - GCC_VERSION := $(call cc-version) 132 133 checkbin: 134 - @if test "$(GCC_VERSION)" = "0304" ; then \ 135 if ! /bin/echo mftb 5 | $(AS) -v -mppc -many -o $(TOUT) >/dev/null 2>&1 ; then \ 136 echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build '; \ 137 echo 'correctly with gcc-3.4 and your version of binutils.'; \
··· 128 # Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later for altivec 129 # instructions. 130 # gcc-3.4 and binutils-2.14 are a fatal combination. 131 132 checkbin: 133 + @if test "$(call cc-version)" = "0304" ; then \ 134 if ! /bin/echo mftb 5 | $(AS) -v -mppc -many -o $(TOUT) >/dev/null 2>&1 ; then \ 135 echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build '; \ 136 echo 'correctly with gcc-3.4 and your version of binutils.'; \