qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 1/4] xen: Fix build with public headers


From: Anthony PERARD
Subject: Re: [Qemu-devel] [PATCH v2 1/4] xen: Fix build with public headers
Date: Thu, 20 Jun 2019 15:44:46 +0100
User-agent: Mutt/1.12.1 (2019-06-15)

On Tue, Jun 18, 2019 at 01:14:08PM +0100, Daniel P. Berrangé wrote:
> On Tue, Jun 18, 2019 at 12:23:38PM +0100, Anthony PERARD wrote:
> > Following 37677d7db3 "Clean up a few header guard symbols", QEMU start
> > to fail to build:
> > 
> > In file included from ~/xen/tools/../tools/include/xen/io/blkif.h:31:0,
> >                  from ~/xen/tools/qemu-xen-dir/hw/block/xen_blkif.h:5,
> >                  from ~/xen/tools/qemu-xen-dir/hw/block/xen-block.c:22:
> > ~/xen/tools/../tools/include/xen/io/ring.h:68:0: error: "__CONST_RING_SIZE" 
> > redefined [-Werror]
> >  #define __CONST_RING_SIZE(_s, _sz) \
> > 
> > In file included from ~/xen/tools/qemu-xen-dir/hw/block/xen_blkif.h:4:0,
> >                  from ~/xen/tools/qemu-xen-dir/hw/block/xen-block.c:22:
> > ~/xen/tools/qemu-xen-dir/include/hw/xen/io/ring.h:66:0: note: this is the 
> > location of the previous definition
> >  #define __CONST_RING_SIZE(_s, _sz) \
> > 
> > The issue is that some public xen headers have been imported (by
> > f65eadb639 "xen: import ring.h from xen") but not all. With the change
> > in the guards symbole, the ring.h header start to be imported twice.
> 
> Ah, so the include/hw/xen/io/ring.h file in tree is a copy of
> /usr/include/xen/io/ring.h from xen-devel.  Previously both
> these used "#ifndef __XEN_PUBLIC_IO_RING_H__". After
> the header guard cleanup in 37677d7db3, our local copy used a
> different header guard from the installed copy & thus we're
> not protected from dual inclusion.
> 
> IMHO the right solutions here are either
> 
>  - Don't copy public Xen headers into our tree
>  - Keep our Xen header copies identical to the originals
> 
> Importing public headers and then changing them locally is the worst
> thing to do. With that in mind I think we should revert the part of
> commit 37677d7db3 that touched the imported Xen headers.

Yes, it's propably a better thing to do. So, I'm going to update the
series and do:
- revert part of 37677d7db3
- import the public headers that depends on ring.h. Or in other words,
  the one that describe an interface with a guest.
  I'll do some modification on the headers but only to remove the stuff
  that QEMU doesn't need (like how to make an hypercall).

Thanks,

-- 
Anthony PERARD



reply via email to

[Prev in Thread] Current Thread [Next in Thread]