powerpc: Reject binutils 2.24 when building little endian
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / powerpc / Makefile
index 967fd23ace78bd5886e7a8c8b417afa58915b433..a008b872d4b7385820bdd71fffa0813c61d4bb0b 100644 (file)
@@ -97,7 +97,9 @@ CFLAGS-$(CONFIG_POWER7_CPU) += $(call cc-option,-mcpu=power7)
 
 CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell)
 
-KBUILD_CPPFLAGS        += -Iarch/$(ARCH)
+asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1)
+
+KBUILD_CPPFLAGS        += -Iarch/$(ARCH) $(asinstr)
 KBUILD_AFLAGS  += -Iarch/$(ARCH)
 KBUILD_CFLAGS  += -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y)
 CPP            = $(CC) -E $(KBUILD_CFLAGS)
@@ -271,6 +273,14 @@ checkbin:
                echo 'disable kernel modules' ; \
                false ; \
        fi
+       @if test "x${CONFIG_CPU_LITTLE_ENDIAN}" = "xy" \
+           && $(LD) --version | head -1 | grep ' 2\.24$$' >/dev/null ; then \
+               echo -n '*** binutils 2.24 miscompiles weak symbols ' ; \
+               echo 'in some circumstances.' ; \
+               echo -n '*** Please use a different binutils version.' ; \
+               false ; \
+       fi
+
 
 CLEAN_FILES += $(TOUT)