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

Re: [Xen-devel] [IOEMU][STUBDOM] build fixes



On Monday 18 January 2010 12:11:05 Samuel Thibault wrote:
> Christoph Egger, le Mon 18 Jan 2010 11:42:43 +0100, a écrit :
> > --- a/Makefile.target
> > +++ b/Makefile.target
> > +ifdef CONFIG_STUBDOM
> > +CFLAGS += -I$(MINI_OS-ROOT)/include
> > +endif
>
> Isn't that already done by the stubdom/ Makefile?  Or put another way,
> why is it needed on netbsd when it is not on linux?

To make MiniOS and Stubdom build on NetBSD, I have to restructure the headers.
This work is not yet 100% complete but so far I can tell, with the
restructuring done, you also need it on Linux.

>
> > --- a/block-vbd.c
> > +++ b/block-vbd.c
> > -#include <xenbus.h>
> > -#include <blkfront.h>
> > +#include <mini-os/xenbus.h>
> > +#include <mini-os/blkfront.h>
>
> Such changes are probably a good thing,

They are mandatory to not break the build also on Linux with the restructured
headers.

> please submit them in a separate patch so they can be applied already.

Done. See attachment.

Signed-off-by: Christoph Egger <Christoph.Egger@xxxxxxx>

> > --- a/hw/xen_machine_fv.c
> > +++ b/hw/xen_machine_fv.c
> > @@ -40,8 +40,11 @@
> > +
> > +#ifndef CONFIG_STUBDOM     /* defined in <mini-os/x86/os.h> */
> >  #define test_bit(bit,map) \
> >      (!!((map)[(bit)/BITS_PER_LONG] & (1UL << ((bit)%BITS_PER_LONG))))
> > +#endif
>
> Same question: how is it that it is not needed on linux?

The actual question here is: Why does gcc on Linux not barf about 
redeclaration?

> > index 50dfb6b..1a6e445 100644
> > --- a/qemu-common.h
> > +++ b/qemu-common.h
> > @@ -9,6 +9,8 @@
> > +#include "config-host.h"
>
> Why?

To get the right socket declarations and fix loop inclusion of
libc and minios sockets.

> > --- a/vl.c
> > +++ b/vl.c
> > @@ -42,6 +42,7 @@
> > +#include "dma.h"
>
> Why?

Fixes warning about missing prototypes (i.e. for dma_helper_init)

> > --- a/vnc.c
> > +++ b/vnc.c
> > @@ -32,8 +32,8 @@
> > -#ifdef CONFIG_STUBDOM
> > +#if defined(CONFIG_STUBDOM) && defined(__Linux__)
>
> I do not understand these. netfront.h is not linux-specific.

netfront.h belongs to lwip. What is wrong with using libc ?

> > -#ifndef CONFIG_STUBDOM
> > +#if !defined(CONFIG_STUBDOM) || defined(__NetBSD__)
>
> I do not understand these either.  Stub domains do _not_ have
> a working SO_REUSEADDR.

Same here: What is wrong with using libc ?

> > index fcf60c3..88f84cd 100755
> > --- a/xen-setup-stubdom
> > +++ b/xen-setup-stubdom
> > @@ -36,7 +36,15 @@ cat <<END >config-host.h.new
> >  #define CONFIG_QEMU_SHAREDIR "${SHAREDIR}/xen/qemu"
> >  #define HOST_I386 1
> >  #define HOST_LONG_BITS 32
> > +#ifdef __Linux__
> >  #define HAVE_BYTESWAP_H 1
> > +#endif
> > +#ifdef __NetBSD__
> > +#define _BSD 1
> > +#define HAVE_MACHINE_BSWAP_H 1
> > +#define HAVE_IOVEC 1
> > +#define O_LARGEFILE 0
> > +#endif
>
> I'm not sure about that either. Do you realize that stubdomains are not
> running linux or BSD but MiniOS?

This change is about *building* stubdom on Linux or BSD.

> > @@ -358,5 +358,6 @@ int xenfb_pv_display_init(DisplayState *ds)
> >  int xenfb_pv_display_vram(void *data)
> >  {
> >      vga_vram = data;
> > +    return 0;
> >  }
>
> Probably better just making it return void.

I don't see the return code anywhere in use. So yes, making it return void is 
ok.

Christoph
-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Karl-Hammerschmidt-Str. 34, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Andrew Bowd, Thomas M. McCoy, Giuliano Meroni
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

Attachment: xen_ioemu_stubdom_include.diff
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.