|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Multiple reverts] [RFC PATCH] build: include/compat: figure out which other compat headers are needed
On Thu, Jan 12, 2023 at 08:46:23AM +0100, Jan Beulich wrote:
> On 11.01.2023 23:29, Andrew Cooper wrote:
> > In file included from arch/x86/hvm/hvm.c:82:
> > ./include/compat/hvm/hvm_op.h:6:10: fatal error: ../trace.h: No such
> > file or directory
> > 6 | #include "../trace.h"
> > | ^~~~~~~~~~~~
> > compilation terminated.
> > make[4]: *** [Rules.mk:246: arch/x86/hvm/hvm.o] Error 1
> > make[3]: *** [Rules.mk:320: arch/x86/hvm] Error 2
> > make[3]: *** Waiting for unfinished jobs....
> >
> >
> > All public headers use "../" relative includes for traversing the
> > public/ hierarchy. This cannot feasibly change given our "copy this
> > into your project" stance, but it means the compat headers have the same
> > structure under compat/.
> >
> > This include is supposed to be including compat/trace.h but it was
> > actually picking up x86's asm/trace.h, hence the build failure now that
> > I've deleted the file.
> >
> > This demonstrates that trying to be clever with -iquote is a mistake.
> > Nothing good can possibly come of having the <> and "" include paths
> > being different. Therefore we must revert all uses of -iquote.
>
> I'm afraid I can't see the connection between use of -iquote and the bug
> here.
Me neither, -iquote isn't used on that object's command line.
> > But, that isn't the only bug.
> >
> > The real hvm_op.h legitimately includes the real trace.h, therefore the
> > compat hvm_op.h legitimately includes the compat trace.h too. But
> > generation of compat trace.h was made asymmetric because of 2c8fabb223.
> >
> > In hindsight, that's a public ABI breakage. The current configuration
> > of this build of the hypervisor has no legitimate bearing on the headers
> > needing to be installed to /usr/include/xen.
> >
> > Or put another way, it is a breakage to require Xen to have
> > CONFIG_COMPAT+CONFIG_TRACEBUFFER enabled in the build simply to get the
> > public API headers generated properly.
>
> There are no public API headers which are generated. The compat headers
> are generate solely for Xen's internal purposes (and hence there's also
> no public ABI breakage). Since generation is slow, avoiding to generate
> ones not needed during the build is helpful.
If only we could do the generation faster:
https://lore.kernel.org/xen-devel/20220614162248.40278-5-anthony.perard@xxxxxxxxxx/
patch which takes care of the slower part of the generation (slower
at least for some compat headers).
Cheers,
--
Anthony PERARD
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |