|
@@ -596,7 +596,7 @@ endif
|
|
|
# Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile.
|
|
|
# CC_VERSION_TEXT is referenced from Kconfig (so it needs export),
|
|
|
# and from include/config/auto.conf.cmd to detect the compiler upgrade.
|
|
|
-CC_VERSION_TEXT = $(subst $(pound),,$(shell $(CC) --version 2>/dev/null | head -n 1))
|
|
|
+CC_VERSION_TEXT = $(subst $(pound),,$(shell LC_ALL=C $(CC) --version 2>/dev/null | head -n 1))
|
|
|
|
|
|
ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
|
|
|
ifneq ($(CROSS_COMPILE),)
|
|
@@ -1853,6 +1853,16 @@ clean-dirs := $(KBUILD_EXTMOD)
|
|
|
clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers $(KBUILD_EXTMOD)/modules.nsdeps \
|
|
|
$(KBUILD_EXTMOD)/compile_commands.json $(KBUILD_EXTMOD)/.thinlto-cache
|
|
|
|
|
|
+PHONY += prepare
|
|
|
+# now expand this into a simple variable to reduce the cost of shell evaluations
|
|
|
+prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT)
|
|
|
+prepare:
|
|
|
+ @if [ "$(CC_VERSION_TEXT)" != $(CONFIG_CC_VERSION_TEXT) ]; then \
|
|
|
+ echo >&2 "warning: the compiler differs from the one used to build the kernel"; \
|
|
|
+ echo >&2 " The kernel was built by: "$(CONFIG_CC_VERSION_TEXT); \
|
|
|
+ echo >&2 " You are using: $(CC_VERSION_TEXT)"; \
|
|
|
+ fi
|
|
|
+
|
|
|
PHONY += help
|
|
|
help:
|
|
|
@echo ' Building external modules.'
|
|
@@ -1866,7 +1876,7 @@ help:
|
|
|
@echo ''
|
|
|
|
|
|
# no-op for external module builds
|
|
|
-PHONY += prepare modules_prepare
|
|
|
+PHONY += modules_prepare
|
|
|
|
|
|
endif # KBUILD_EXTMOD
|
|
|
|