Merge branch 'next'
[platform/kernel/u-boot.git] / Makefile
index 5007702..45f1075 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -521,8 +521,8 @@ env_h := include/generated/environment.h
 
 no-dot-config-targets := clean clobber mrproper distclean \
                         help %docs check% coccicheck \
-                        ubootversion backup tests check qcheck tcheck pylint \
-                        pylint_err
+                        ubootversion backup tests check pcheck qcheck tcheck \
+                        pylint pylint_err
 
 config-targets := 0
 mixed-targets  := 0
@@ -643,6 +643,13 @@ export CFLAGS_EFI  # Compiler flags to add when building EFI app
 export CFLAGS_NON_EFI  # Compiler flags to remove when building EFI app
 export EFI_TARGET      # binutils target if EFI is natively supported
 
+export LTO_ENABLE
+
+# This is y if LTO is enabled for this build. See NO_LTO=1 to disable LTO
+ifeq ($(NO_LTO),)
+LTO_ENABLE=$(if $(CONFIG_LTO),y)
+endif
+
 # If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
 # that (or fail if absent).  Otherwise, search for a linker script in a
 # standard location.
@@ -708,16 +715,16 @@ endif
 LTO_CFLAGS :=
 LTO_FINAL_LDFLAGS :=
 export LTO_CFLAGS LTO_FINAL_LDFLAGS
-ifdef CONFIG_LTO
+ifeq ($(LTO_ENABLE),y)
        ifeq ($(cc-name),clang)
-               LTO_CFLAGS              += -flto
+               LTO_CFLAGS              += -DLTO_ENABLE -flto
                LTO_FINAL_LDFLAGS       += -flto
 
                AR                      = $(shell $(CC) -print-prog-name=llvm-ar)
                NM                      = $(shell $(CC) -print-prog-name=llvm-nm)
        else
                NPROC                   := $(shell nproc 2>/dev/null || echo 1)
-               LTO_CFLAGS              += -flto=$(NPROC)
+               LTO_CFLAGS              += -DLTO_ENABLE -flto=$(NPROC)
                LTO_FINAL_LDFLAGS       += -fuse-linker-plugin -flto=$(NPROC)
 
                # use plugin aware tools
@@ -1467,6 +1474,7 @@ endif
 
 u-boot-spl.kwb: u-boot.bin spl/u-boot-spl.bin FORCE
        $(call if_changed,mkimage)
+       $(BOARD_SIZE_CHECK)
 
 u-boot.sha1:   u-boot.bin
                tools/ubsha1 u-boot.bin
@@ -1724,7 +1732,7 @@ ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(ARCH)/Makefile.postlink)
 
 # Generate linker list symbols references to force compiler to not optimize
 # them away when compiling with LTO
-ifdef CONFIG_LTO
+ifeq ($(LTO_ENABLE),y)
 u-boot-keep-syms-lto := keep-syms-lto.o
 u-boot-keep-syms-lto_c := $(patsubst %.o,%.c,$(u-boot-keep-syms-lto))
 
@@ -1746,7 +1754,7 @@ endif
 
 # Rule to link u-boot
 # May be overridden by arch/$(ARCH)/config.mk
-ifdef CONFIG_LTO
+ifeq ($(LTO_ENABLE),y)
 quiet_cmd_u-boot__ ?= LTO     $@
       cmd_u-boot__ ?=                                                          \
                $(CC) -nostdlib -nostartfiles                                   \
@@ -2318,6 +2326,7 @@ help:
        @echo  'Test targets:'
        @echo  ''
        @echo  '  check           - Run all automated tests that use sandbox'
+       @echo  '  pcheck          - Run quick automated tests in parallel'
        @echo  '  qcheck          - Run quick automated tests that use sandbox'
        @echo  '  tcheck          - Run quick automated tests on tools'
        @echo  '  pylint          - Run pylint on all Python files'
@@ -2363,6 +2372,9 @@ help:
 tests check:
        $(srctree)/test/run
 
+pcheck:
+       $(srctree)/test/run parallel
+
 qcheck:
        $(srctree)/test/run quick