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
xen_ioemu_stubdom_include.diff
Description: Text Data
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|