On Tue, Apr 16, 2024 at 09:18:38PM +0900, Masahiro Yamada wrote: > Kbuild conventionally uses $(obj)/ for generated files, and $(src)/ for > checked-in source files. It is merely a convention without any functional > difference. In fact, $(obj) and $(src) are exactly the same, as defined > in scripts/Makefile.build: > > src := $(obj) > > When the kernel is built in a separate output directory, $(src) does > not match the directory in the source tree. It still works because the > top Makefile sets VPATH to $(srctree). However, VPATH does not cover > all cases. There are many places where the exact path to the source > directory is needed. For example, when adding a header search path for > local headers, it is typical to pass -I$(srctree)/$(src) to the compiler. > > However, it introduces inconsistency between upstream Makefiles and > downstream Makefiles; when the source directory path is needed, > $(srctree)/$(src) is used in the upstream kernel, while $(src) is used > in external modules. > > To resolve the distortion, this commit changes the semantics of $(src) > so that it always points to the directory in the source tree. > > Going forward, the variables used in Makefiles will work as follows: > > $(obj) - directory in the object tree > $(src) - directory in the source tree (changed by this commit!) > $(objtree) - the top of the kernel object tree > $(srctree) - the top of the kernel source tree > > This is a tweewide Makefile conversion for replacing $(srctree)/$(src) > with $(src). > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > --- > > Documentation/Makefile | 8 ++++---- > Documentation/devicetree/bindings/Makefile | 10 +++++----- Acked-by: Rob Herring (Arm) <robh@xxxxxxxxxx> However, this is going to conflict with my series here[1]. Can you pick it up? Rob [1] https://lore.kernel.org/all/20240405-dt-kbuild-rework-v2-0-3a035caee357@xxxxxxxxxx/