linux-stable/arch/um/os-Linux
Masahiro Yamada 67d7c3023a kbuild: remove --include-dir MAKEFLAG from top Makefile
I added $(srctree)/ to some included Makefiles in the following commits:

 - 3204a7fb98 ("kbuild: prefix $(srctree)/ to some included Makefiles")
 - d828563955 ("kbuild: do not require sub-make for separate output tree builds")

They were a preparation for removing --include-dir flag.

I have never thought --include-dir useful. Rather, it _is_ harmful.

For example, run the following commands:

  $ make -s ARCH=x86 mrproper defconfig
  $ make ARCH=arm O=foo dtbs
  make[1]: Entering directory '/tmp/linux/foo'
    HOSTCC  scripts/basic/fixdep
  Error: kernelrelease not valid - run 'make prepare' to update it
    UPD     include/config/kernel.release
  make[1]: Leaving directory '/tmp/linux/foo'

The first command configures the source tree for x86. The next command
tries to build ARM device trees in the separate foo/ directory - this
must stop because the directory foo/ has not been configured yet.

However, due to --include-dir=$(abs_srctree), the top Makefile includes
the wrong include/config/auto.conf from the source tree and continues
building. Kbuild traverses the directory tree, but of course it does
not work correctly. The Error message is also pointless - 'make prepare'
does not help at all for fixing the issue.

This commit fixes more arch Makefile, and finally removes --include-dir
from the top Makefile.

There are more breakages under drivers/, but I do not volunteer to fix
them all. I just moved --include-dir to drivers/Makefile.

With this commit, the second command will stop with a sensible message.

  $ make -s ARCH=x86 mrproper defconfig
  $ make ARCH=arm O=foo dtbs
  make[1]: Entering directory '/tmp/linux/foo'
    SYNC    include/config/auto.conf.cmd
  ***
  *** The source tree is not clean, please run 'make ARCH=arm mrproper'
  *** in /tmp/linux
  ***
  make[2]: *** [../Makefile:646: outputmakefile] Error 1
  /tmp/linux/Makefile:770: include/config/auto.conf.cmd: No such file or directory
  make[1]: *** [/tmp/linux/Makefile:793: include/config/auto.conf.cmd] Error 2
  make[1]: Leaving directory '/tmp/linux/foo'
  make: *** [Makefile:226: __sub-make] Error 2

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2023-02-05 18:51:22 +09:00
..
drivers kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00
skas kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00
elf_aux.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
execvp.c um: Allow builds with Clang 2022-03-21 08:13:03 -07:00
file.c um: Fix WRITE_ZEROES in the UBD Driver 2022-03-11 10:46:34 +01:00
helper.c um: run_helper: Write error message to kernel log on exec failure on host 2022-03-11 10:56:17 +01:00
irq.c um: Monitor error events in IRQ controller 2020-12-13 22:38:28 +01:00
main.c um: Don't trace irqflags during shutdown 2019-11-25 22:42:57 +01:00
Makefile kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00
mem.c UML: add support for KASAN under x86_64 2022-07-17 23:35:22 +02:00
process.c um: Add SPDX headers for files in arch/um/os-Linux 2019-09-15 21:37:17 +02:00
registers.c um: registers: Rename function names to avoid conflicts and build problems 2021-12-21 21:22:19 +01:00
sigio.c um: Use swap() to make code cleaner 2021-12-21 21:41:04 +01:00
signal.c um: rename set_signals() to um_set_signals() 2021-12-21 21:13:44 +01:00
start_up.c um: registers: Rename function names to avoid conflicts and build problems 2021-12-21 21:22:19 +01:00
time.c um: Remove unused timeval_to_ns() function 2022-03-11 10:49:50 +01:00
tty.c um: Add SPDX headers for files in arch/um/os-Linux 2019-09-15 21:37:17 +02:00
umid.c um: remove unused variable 2022-07-17 23:26:27 +02:00
user_syms.c um: Enable FORTIFY_SOURCE 2022-09-07 16:37:27 -07:00
util.c um: seed rng using host OS rng 2022-07-18 15:04:04 +02:00