Message ID | 20220421160039.24564-1-andrew.cooper3@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xen/build: Fix MAP rule when called in isolation | expand |
On 21.04.2022 18:00, Andrew Cooper wrote: > Now that `make MAP` might rebuild $(TARGET), it needs removing from > no-dot-config-targets. Which raises the question whether the MAP target originally was meant to be used only on an already built tree, which would explain the missing dependency that you added in the earlier commit. > Otherwise the build eventually fails with: > > CPP arch/x86/asm-macros.i > arch/x86/asm-macros.c:1:10: fatal error: asm/asm-defns.h: No such file or > directory > 1 | #include <asm/asm-defns.h> > | ^~~~~~~~~~~~~~~~~ Why would this be? asm/ isn't a symlink anymore, so should always exist. I would have expected an error about .config or autoconf.h not existing, ... > Fixes: e1e72198213b ("xen/build: Fix dependency for the MAP rule") > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> > --- > CC: Jan Beulich <JBeulich@suse.com> > CC: Anthony PERARD <anthony.perard@citrix.com> > > Backporting notes. The original, e1e72198213b, wants backporting as far as we > can go. This patch is only relevant from 6c122d3984a5e onwards, so 4.14, > which is why my main developing/testing on 4.13 didn't spot it. ... and the commit you reference seems to support that expectation. Jan
On 21/04/2022 17:09, Jan Beulich wrote: > On 21.04.2022 18:00, Andrew Cooper wrote: >> Now that `make MAP` might rebuild $(TARGET), it needs removing from >> no-dot-config-targets. > Which raises the question whether the MAP target originally was > meant to be used only on an already built tree, which would > explain the missing dependency that you added in the earlier > commit. I can't comment on the previous expectation, but the fact you couldn't previously do `make -j4 build MAP` was simply broken. There are also several other breakages in Xen's build system which it turns out is forcing all downstreams to bodge around in ways that range from gross to dangerous, and which need fixing for everyone's benefit. (Emails will be appearing for those shortly) The current debug target (just runs objdump -d) is similar to MAP, except I don't find it a credible target to use and was planning to delete it. >> Otherwise the build eventually fails with: >> >> CPP arch/x86/asm-macros.i >> arch/x86/asm-macros.c:1:10: fatal error: asm/asm-defns.h: No such file or >> directory >> 1 | #include <asm/asm-defns.h> >> | ^~~~~~~~~~~~~~~~~ > Why would this be? asm/ isn't a symlink anymore, so should always > exist. I would have expected an error about .config or > autoconf.h not existing, ... > >> Fixes: e1e72198213b ("xen/build: Fix dependency for the MAP rule") >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> >> --- >> CC: Jan Beulich <JBeulich@suse.com> >> CC: Anthony PERARD <anthony.perard@citrix.com> >> >> Backporting notes. The original, e1e72198213b, wants backporting as far as we >> can go. This patch is only relevant from 6c122d3984a5e onwards, so 4.14, >> which is why my main developing/testing on 4.13 didn't spot it. > ... and the commit you reference seems to support that expectation. I haven't spent very long investigating exactly how it breaks. I don't think it's important, because the purpose of no-dot-config-targets is to skip large swathes of the logic. ~Andrew
On 21.04.2022 18:42, Andrew Cooper wrote: > On 21/04/2022 17:09, Jan Beulich wrote: >> On 21.04.2022 18:00, Andrew Cooper wrote: >>> Now that `make MAP` might rebuild $(TARGET), it needs removing from >>> no-dot-config-targets. >> Which raises the question whether the MAP target originally was >> meant to be used only on an already built tree, which would >> explain the missing dependency that you added in the earlier >> commit. > > I can't comment on the previous expectation, but the fact you couldn't > previously do `make -j4 build MAP` was simply broken. > > There are also several other breakages in Xen's build system which it > turns out is forcing all downstreams to bodge around in ways that range > from gross to dangerous, and which need fixing for everyone's benefit. > (Emails will be appearing for those shortly) Right - at least tests and cloc look to have a similar issue. > The current debug target (just runs objdump -d) is similar to MAP, > except I don't find it a credible target to use and was planning to > delete it. Well, yes. I wasn't even aware of this mis-named goal. >>> Otherwise the build eventually fails with: >>> >>> CPP arch/x86/asm-macros.i >>> arch/x86/asm-macros.c:1:10: fatal error: asm/asm-defns.h: No such file or >>> directory >>> 1 | #include <asm/asm-defns.h> >>> | ^~~~~~~~~~~~~~~~~ >> Why would this be? asm/ isn't a symlink anymore, so should always >> exist. I would have expected an error about .config or >> autoconf.h not existing, ... >> >>> Fixes: e1e72198213b ("xen/build: Fix dependency for the MAP rule") >>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> >>> --- >>> CC: Jan Beulich <JBeulich@suse.com> >>> CC: Anthony PERARD <anthony.perard@citrix.com> >>> >>> Backporting notes. The original, e1e72198213b, wants backporting as far as we >>> can go. This patch is only relevant from 6c122d3984a5e onwards, so 4.14, >>> which is why my main developing/testing on 4.13 didn't spot it. >> ... and the commit you reference seems to support that expectation. > > I haven't spent very long investigating exactly how it breaks. I don't > think it's important, because the purpose of no-dot-config-targets is to > skip large swathes of the logic. I find it generally helpful to understand breakage when it looks odd how exactly things break, but anyway Acked-by: Jan Beulich <jbeulich@suse.com> Jan
diff --git a/xen/Makefile b/xen/Makefile index 3a4e3bdd0f95..ec34524ed21d 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -215,7 +215,7 @@ export XEN_ROOT := $(abs_srctree)/.. clean-targets := %clean no-dot-config-targets := $(clean-targets) \ uninstall debug cloc \ - cscope TAGS tags MAP gtags \ + cscope TAGS tags gtags \ xenversion config-build := n
Now that `make MAP` might rebuild $(TARGET), it needs removing from no-dot-config-targets. Otherwise the build eventually fails with: CPP arch/x86/asm-macros.i arch/x86/asm-macros.c:1:10: fatal error: asm/asm-defns.h: No such file or directory 1 | #include <asm/asm-defns.h> | ^~~~~~~~~~~~~~~~~ Fixes: e1e72198213b ("xen/build: Fix dependency for the MAP rule") Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Jan Beulich <JBeulich@suse.com> CC: Anthony PERARD <anthony.perard@citrix.com> Backporting notes. The original, e1e72198213b, wants backporting as far as we can go. This patch is only relevant from 6c122d3984a5e onwards, so 4.14, which is why my main developing/testing on 4.13 didn't spot it. no-dot-config-targets seems like a very easy way to create breakage... --- xen/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)