diff --git a/Makefile b/Makefile
index c03a1b4ac7aaf6fe3aab0783284f5e50f1529895..c482d122e1f9d581fca60ef1f52040e80f8c1c2a 100644
--- a/Makefile
+++ b/Makefile
@@ -1114,14 +1114,6 @@ SYSTEM_MAP = \
 System.map:	u-boot
 		@$(call SYSTEM_MAP,$<) > $@
 
-checkthumb:
-	@if test $(call cc-version) -lt 0404; then \
-		echo -n '*** Your GCC does not produce working '; \
-		echo 'binaries in THUMB mode.'; \
-		echo '*** Your board is configured for THUMB mode.'; \
-		false; \
-	fi
-
 # GCC 3.x is reported to have problems generating the type of relocation
 # that U-Boot wants.
 # See http://lists.denx.de/pipermail/u-boot/2012-September/135156.html
diff --git a/arch/arm/config.mk b/arch/arm/config.mk
index 792cb4345047c78b5b61cddf33c58d1eb474809d..f4c2d81044addd5b1a6446940c29d39e49b95450 100644
--- a/arch/arm/config.mk
+++ b/arch/arm/config.mk
@@ -41,7 +41,17 @@ endif
 
 # Only test once
 ifneq ($(CONFIG_SPL_BUILD),y)
-ALL-$(CONFIG_SYS_THUMB_BUILD)	+= checkthumb
+ifeq ($(CONFIG_SYS_THUMB_BUILD),y)
+archprepare: checkthumb
+
+checkthumb:
+	@if test "$(call cc-version)" -lt "0404"; then \
+		echo -n '*** Your GCC does not produce working '; \
+		echo 'binaries in THUMB mode.'; \
+		echo '*** Your board is configured for THUMB mode.'; \
+		false; \
+	fi
+endif
 endif
 
 # Try if EABI is supported, else fall back to old API,