kbuild: check arch/$(SRCARCH)/include/generated before out-of-tree build
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 7 Apr 2019 10:43:51 +0000 (19:43 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 9 Apr 2019 13:51:56 +0000 (22:51 +0900)
commita788b2ed81abeb949325fd50d7527f45203c1b21
treef20f94a39e6906f3f26443fc5f3deca417be89ee
parent24512795df0901f79a670f8285c450ae912c009d
kbuild: check arch/$(SRCARCH)/include/generated before out-of-tree build

After cross-compiling the kernel, "make mrproper" should be executed
with the proper ARCH= option. Otherwise, stale objects will remain
under arch/$(SRCARCH)/.

One bad scenario is like this:

  $ make ARCH=arm defconfig all   # cross-compile the kernel for arm
  $ make mrproper                 # mrproper for host-arch (i.e. x86)
  $ make ARCH=arm O=build_dir defconfig all

If you miss ARCH= for mrproper and cross-compile the kernel with O=
and ARCH= options, Kbuild will happily start to build, but may fail
due to stale objects in the srctree.

If $(srctree)/arch/$(SRCARCH)/include/generated/ exists, let's stop
the out-of-tree build. To detect this, mrproper should clean only
arch/$(SRCARCH)/include/generated/.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Makefile