The order of items is stored in .*.chk.cmd, and hence variations between
how items are ordered would result in re-invocation of the checking rule
during "make install-xen" despite that already having successfully run
earlier on. The difference can become noticable when building (as non-
root) and installing (as root) use different GNU make versions: In 3.82
the sorting was deliberately undone, just for it to be restored in 4.3.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
While this was an issue already before, it became noticable with the
toolchain baseline bump: The custom-built compilers I use, run directly
from their build areas, wouldn't find the C++ header files when run as
root. Hence the C++ checking rule would fail during "make install-xen",
when needlessly re-run there.
--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -41,8 +41,8 @@ cppflags-$(CONFIG_X86) += -m32
endif
-public-$(CONFIG_X86) := $(wildcard $(srcdir)/public/arch-x86/*.h $(srcdir)/public/arch-x86/*/*.h)
-public-$(CONFIG_ARM) := $(wildcard $(srcdir)/public/arch-arm/*.h $(srcdir)/public/arch-arm/*/*.h)
+public-$(CONFIG_X86) := $(sort $(wildcard $(srcdir)/public/arch-x86/*.h $(srcdir)/public/arch-x86/*/*.h))
+public-$(CONFIG_ARM) := $(sort $(wildcard $(srcdir)/public/arch-arm/*.h $(srcdir)/public/arch-arm/*/*.h))
.PHONY: all
all: $(addprefix $(obj)/,$(headers-y) $(headers-n))
@@ -130,7 +130,7 @@ all: $(obj)/headers.chk $(obj)/headers99
public-hdrs-path := $(srcdir)/public
-public-list-headers = $(wildcard $1/*.h $1/*/*.h)
+public-list-headers = $(sort $(wildcard $1/*.h $1/*/*.h))
public-filter-headers = $(filter-out $(addprefix $(public-hdrs-path)/, $($1-filter)), $($1))
public-headers := $(call public-list-headers, $(public-hdrs-path)) $(public-y)
On 09/04/2025 2:15 pm, Jan Beulich wrote: > The order of items is stored in .*.chk.cmd, and hence variations between > how items are ordered would result in re-invocation of the checking rule > during "make install-xen" despite that already having successfully run > earlier on. The difference can become noticable when building (as non- > root) and installing (as root) use different GNU make versions: In 3.82 > the sorting was deliberately undone, just for it to be restored in 4.3. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
© 2016 - 2025 Red Hat, Inc.