diff mbox series

kbuild: unexport abs_srctree and abs_objtree

Message ID 20240306104222.308473-1-masahiroy@kernel.org (mailing list archive)
State New
Headers show
Series kbuild: unexport abs_srctree and abs_objtree | expand

Commit Message

Masahiro Yamada March 6, 2024, 10:42 a.m. UTC
Commit 25b146c5b8ce ("kbuild: allow Kbuild to start from any directory")
exported abs_srctree and abs_objtree to avoid recomputation after the
sub-make. However, this approach turned out to be fragile.

Commit 5fa94ceb793e ("kbuild: set correct abs_srctree and abs_objtree
for package builds") moved them above "ifneq ($(sub_make_done),1)",
eliminating the need for exporting them.

These are only needed in the top Makefile. If an absolute path is
required in sub-directories, you can use $(abspath ) or $(realpath )
as needed.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 Makefile                 | 4 ++--
 rust/Makefile            | 4 ++--
 scripts/Makefile.package | 2 +-
 tools/lib/bpf/Makefile   | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

Comments

Nicolas Schier March 6, 2024, 6:42 p.m. UTC | #1
On Wed, Mar 06, 2024 at 07:42:22PM +0900 Masahiro Yamada wrote:
> Commit 25b146c5b8ce ("kbuild: allow Kbuild to start from any directory")
> exported abs_srctree and abs_objtree to avoid recomputation after the
> sub-make. However, this approach turned out to be fragile.
> 
> Commit 5fa94ceb793e ("kbuild: set correct abs_srctree and abs_objtree
> for package builds") moved them above "ifneq ($(sub_make_done),1)",
> eliminating the need for exporting them.
> 
> These are only needed in the top Makefile. If an absolute path is
> required in sub-directories, you can use $(abspath ) or $(realpath )
> as needed.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---

Thanks, I appreciate that abs_* is only used in top-level Makefile.

Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index d84c0fb215fd..d9274e7c75f0 100644
--- a/Makefile
+++ b/Makefile
@@ -39,8 +39,8 @@  __all:
 # prepare rule.
 
 this-makefile := $(lastword $(MAKEFILE_LIST))
-export abs_srctree := $(realpath $(dir $(this-makefile)))
-export abs_objtree := $(CURDIR)
+abs_srctree := $(realpath $(dir $(this-makefile)))
+abs_objtree := $(CURDIR)
 
 ifneq ($(sub_make_done),1)
 
diff --git a/rust/Makefile b/rust/Makefile
index 9d2a16cc91cb..ae691b71d9fc 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -100,7 +100,7 @@  rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \
 		-e 's:rust-logo-[0-9a-f]+\.svg:logo.svg:g' \
 		-e 's:favicon-[0-9a-f]+\.svg:logo.svg:g' \
 		-e 's:<link rel="alternate icon" type="image/png" href="[/.]+/static\.files/favicon-(16x16|32x32)-[0-9a-f]+\.png">::g' \
-		-e 's:<a href="srctree/([^"]+)">:<a href="$(abs_srctree)/\1">:g'
+		-e 's:<a href="srctree/([^"]+)">:<a href="$(realpath $(srctree))/\1">:g'
 	$(Q)for f in $(rustdoc_output)/static.files/rustdoc-*.css; do \
 		echo ".logo-container > img { object-fit: contain; }" >> $$f; done
 
@@ -413,7 +413,7 @@  quiet_cmd_rustc_library = $(if $(skip_clippy),RUSTC,$(RUSTC_OR_CLIPPY_QUIET)) L
 rust-analyzer:
 	$(Q)$(srctree)/scripts/generate_rust_analyzer.py \
 		--cfgs='core=$(core-cfgs)' --cfgs='alloc=$(alloc-cfgs)' \
-		$(abs_srctree) $(abs_objtree) \
+		$(realpath $(srctree)) $(realpath $(objtree)) \
 		$(RUST_LIB_SRC) $(KBUILD_EXTMOD) > \
 		$(if $(KBUILD_EXTMOD),$(extmod_prefix),$(objtree))/rust-project.json
 
diff --git a/scripts/Makefile.package b/scripts/Makefile.package
index a81dfb1f5181..38653f3e8108 100644
--- a/scripts/Makefile.package
+++ b/scripts/Makefile.package
@@ -135,7 +135,7 @@  snap-pkg:
 	mkdir $(objtree)/snap
 	$(MAKE) clean
 	sed "s@KERNELRELEASE@$(KERNELRELEASE)@; \
-		s@SRCTREE@$(abs_srctree)@" \
+		s@SRCTREE@$(realpath $(srctree))@" \
 		$(srctree)/scripts/package/snapcraft.template > \
 		$(objtree)/snap/snapcraft.yaml
 	cd $(objtree)/snap && \
diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
index 4be7144e4803..2cf892774346 100644
--- a/tools/lib/bpf/Makefile
+++ b/tools/lib/bpf/Makefile
@@ -2,7 +2,7 @@ 
 # Most of this file is copied from tools/lib/traceevent/Makefile
 
 RM ?= rm
-srctree = $(abs_srctree)
+srctree := $(realpath $(srctree))
 
 VERSION_SCRIPT := libbpf.map
 LIBBPF_VERSION := $(shell \