[PATCH v3 1/3] kbuild: unexport abs_srctree and abs_objtree

From: Masahiro Yamada
Date: Sun Jun 25 2023 - 10:06:44 EST


'make rpm-pkg' builds the kernel in rpmbuild/BUILD, but $(abs_srctree)
and $(abs_objtree) point to the directory path where make was started,
not the kernel is actually being built. Fix it.

In hindsight, there was no need to export abs_srctree and abs_objtree.

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

Changes in v3:
- New patch

Makefile | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index f18d59c81241..6f9bbb0d9172 100644
--- a/Makefile
+++ b/Makefile
@@ -38,6 +38,10 @@ __all:
# descending is started. They are now explicitly listed as the
# prepare rule.

+this-makefile := $(lastword $(MAKEFILE_LIST))
+abs_srctree := $(realpath $(dir $(this-makefile)))
+abs_objtree := $(CURDIR)
+
ifneq ($(sub_make_done),1)

# Do not use make's built-in rules and variables
@@ -185,8 +189,6 @@ $(if $(abs_objtree),, \

# $(realpath ...) resolves symlinks
abs_objtree := $(realpath $(abs_objtree))
-else
-abs_objtree := $(CURDIR)
endif # ifneq ($(KBUILD_OUTPUT),)

ifeq ($(abs_objtree),$(CURDIR))
@@ -196,9 +198,6 @@ else
need-sub-make := 1
endif

-this-makefile := $(lastword $(MAKEFILE_LIST))
-abs_srctree := $(realpath $(dir $(this-makefile)))
-
ifneq ($(words $(subst :, ,$(abs_srctree))), 1)
$(error source directory cannot contain spaces or colons)
endif
@@ -211,7 +210,6 @@ need-sub-make := 1
$(this-makefile): ;
endif

-export abs_srctree abs_objtree
export sub_make_done := 1

ifeq ($(need-sub-make),1)
--
2.39.2