kbuild: Inform user to pass ARCH= for make mrproper
diff mbox series

Message ID 20190709132639.26802-1-geert@linux-m68k.org
State Accepted
Commit 3a475b2166fd6aa5ac76e8c605dffdf7a2a457ee
Headers show
Series
  • kbuild: Inform user to pass ARCH= for make mrproper
Related show

Commit Message

Geert Uytterhoeven July 9, 2019, 1:26 p.m. UTC
When cross-compiling an out-of-tree build with an unclean source tree
directory, the build fails with:

  /path/to/kernel/source/tree is not clean, please run 'make mrproper'
  in the '/path/to/kernel/source/tree' directory.

However, doing so does not fix the problem, as "make mrproper" now
requires passing the target architecture to the make command, else it
won't remove $(srctree)/arch/$(SRCARCH)/include/generated.
"git ls-files -o" doesn't give a clue, as it doesn't list (empty)
directories, only files.

Improve usability by including the ARCH= option in the error output.

Fixes: a788b2ed81abeb94 ("kbuild: check arch/$(SRCARCH)/include/generated before out-of-tree build")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Masahiro Yamada July 9, 2019, 1:34 p.m. UTC | #1
On Tue, Jul 9, 2019 at 10:26 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> When cross-compiling an out-of-tree build with an unclean source tree
> directory, the build fails with:
>
>   /path/to/kernel/source/tree is not clean, please run 'make mrproper'
>   in the '/path/to/kernel/source/tree' directory.
>
> However, doing so does not fix the problem, as "make mrproper" now
> requires passing the target architecture to the make command, else it
> won't remove $(srctree)/arch/$(SRCARCH)/include/generated.
> "git ls-files -o" doesn't give a clue, as it doesn't list (empty)
> directories, only files.
>
> Improve usability by including the ARCH= option in the error output.
>
> Fixes: a788b2ed81abeb94 ("kbuild: check arch/$(SRCARCH)/include/generated before out-of-tree build")
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---

Applied to linux-kbuild. Thanks.
Christoph Hellwig July 9, 2019, 4:30 p.m. UTC | #2
Is there any chance we could save ARCH in .config?  That would make
cross compile builds so much easier..  Same for CROSS_COMPILE.
Masahiro Yamada July 11, 2019, 4:14 a.m. UTC | #3
On Wed, Jul 10, 2019 at 1:30 AM Christoph Hellwig <hch@infradead.org> wrote:
>
> Is there any chance we could save ARCH in .config?  That would make
> cross compile builds so much easier..  Same for CROSS_COMPILE.


Then, I have no idea how "make clean", "make help", etc. should work.

If a user has configured the kernel, do they work for CONFIG_ARCH
stored in the .config file or still for the host-arch?

If not yet, do they fall-back to host-arch?

Patch
diff mbox series

diff --git a/Makefile b/Makefile
index 3e4868a6498b2224..704e193c16472be1 100644
--- a/Makefile
+++ b/Makefile
@@ -1101,7 +1101,7 @@  ifneq ($(srctree),.)
 	$(Q)if [ -f $(srctree)/.config -o \
 		 -d $(srctree)/include/config -o \
 		 -d $(srctree)/arch/$(SRCARCH)/include/generated ]; then \
-		echo >&2 "  $(srctree) is not clean, please run 'make mrproper'"; \
+		echo >&2 "  $(srctree) is not clean, please run 'make ARCH=$(ARCH) mrproper'"; \
 		echo >&2 "  in the '$(srctree)' directory.";\
 		/bin/false; \
 	fi;