[PATCH] build: avoid Paths.mk in hypervisor build

Jan Beulich posted 1 patch 3 weeks, 3 days ago
Failed in applying to current master (apply log)
[PATCH] build: avoid Paths.mk in hypervisor build
Posted by Jan Beulich 3 weeks, 3 days ago
Its inclusion placed where it is, it affects the hypervisor build as well.
The hypervisor build, in its _install rule, uses $(DEBUG_DIR), first in

	[ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)

$(D) is an absolute directory (shorthand for $(DESTDIR)). $(DEBUG_DIR) as
set by Paths.mk is, too. Both point into the build tree. The two simply
shouldn't be glued together.

Note that the earlier

	[ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)

continues to be working fine, as BOOT_DIR continues to be controlled by
config/StdGNU.mk. Its DEBUG_DIR isn't taking effect anymore, when for the
hypervisor build it should.

And of course behavior now differs between building xen/ in a tree where
tools/ was built before vs in an otherwise clean tree.

Fixes: 82b9cc04a7c7 ("build: add make macro for making file from file.in")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This is clumsy, but I can't think of anything better. Suggestions anyone?

--- a/Config.mk
+++ b/Config.mk
@@ -162,7 +162,9 @@ endef
 PATH_FILES := Paths.mk
 INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f))
 
+ifndef XEN_FULLVERSION
 -include $(INC_FILES)
+endif
 
 BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).in))
Re: [PATCH] build: avoid Paths.mk in hypervisor build
Posted by Bertrand Marquis 3 days, 23 hours ago
Hi Jan,

> On 14 Jan 2026, at 15:03, Jan Beulich <jbeulich@suse.com> wrote:
> 
> Its inclusion placed where it is, it affects the hypervisor build as well.
> The hypervisor build, in its _install rule, uses $(DEBUG_DIR), first in
> 
> [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
> 
> $(D) is an absolute directory (shorthand for $(DESTDIR)). $(DEBUG_DIR) as
> set by Paths.mk is, too. Both point into the build tree. The two simply
> shouldn't be glued together.
> 
> Note that the earlier
> 
> [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)
> 
> continues to be working fine, as BOOT_DIR continues to be controlled by
> config/StdGNU.mk. Its DEBUG_DIR isn't taking effect anymore, when for the
> hypervisor build it should.
> 
> And of course behavior now differs between building xen/ in a tree where
> tools/ was built before vs in an otherwise clean tree.
> 
> Fixes: 82b9cc04a7c7 ("build: add make macro for making file from file.in")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

I did a bit more testing and checking and as far as i can tell this works.
As I am confident the cases i did not cover during my testing will be covered
by CI:

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand
Re: [PATCH] build: avoid Paths.mk in hypervisor build
Posted by Bertrand Marquis 4 days, 14 hours ago
Hi Jan,

> On 14 Jan 2026, at 15:03, Jan Beulich <jbeulich@suse.com> wrote:
> 
> Its inclusion placed where it is, it affects the hypervisor build as well.
> The hypervisor build, in its _install rule, uses $(DEBUG_DIR), first in
> 
> [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
> 
> $(D) is an absolute directory (shorthand for $(DESTDIR)). $(DEBUG_DIR) as
> set by Paths.mk is, too. Both point into the build tree. The two simply
> shouldn't be glued together.
> 
> Note that the earlier
> 
> [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)
> 
> continues to be working fine, as BOOT_DIR continues to be controlled by
> config/StdGNU.mk. Its DEBUG_DIR isn't taking effect anymore, when for the
> hypervisor build it should.
> 
> And of course behavior now differs between building xen/ in a tree where
> tools/ was built before vs in an otherwise clean tree.
> 

I cannot fully validate this but it seems to make sense so

> Fixes: 82b9cc04a7c7 ("build: add make macro for making file from file.in")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> This is clumsy, but I can't think of anything better. Suggestions anyone?
> 
> --- a/Config.mk
> +++ b/Config.mk
> @@ -162,7 +162,9 @@ endef
> PATH_FILES := Paths.mk
> INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f))
> 
> +ifndef XEN_FULLVERSION
> -include $(INC_FILES)
> +endif
> 
> BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).in))
> 
>