Samuel Thibault
2008-Jul-10 11:28 UTC
[Xen-devel] [PATCH] stubdom: fixes to compile with qemu-xen
stubdom: fixes to compile with qemu-xen This adds fixes to the stub domain build into compiling Ian Jackson''s qemu-xen. The most notable change is that mini-os headers now #include each other through a mini-os/ prefix, so that we can turn all -I into -isystem and still be sure that we include Mini-OS headers (and not qemu''s console.h or blktaplib''s list.h for instance...). Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com> diff -r aab9fbd6ffa0 extras/mini-os/Config.mk --- a/extras/mini-os/Config.mk Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/Config.mk Thu Jul 10 12:16:12 2008 +0100 @@ -38,20 +38,20 @@ # This must be before include minios.mk! include $(MINI-OS_ROOT)/$(TARGET_ARCH_DIR)/arch.mk -extra_incl := $(foreach dir,$(EXTRA_INC),-I$(realpath $(MINI-OS_ROOT)/include/$(dir))) +extra_incl := $(foreach dir,$(EXTRA_INC),-isystem $(realpath $(MINI-OS_ROOT)/include/$(dir))) -DEF_CPPFLAGS += -I$(realpath $(MINI-OS_ROOT)/include) +DEF_CPPFLAGS += -isystem $(realpath $(MINI-OS_ROOT)/include) DEF_CPPFLAGS += -D__MINIOS__ ifeq ($(libc),y) DEF_CPPFLAGS += -DHAVE_LIBC -DEF_CPPFLAGS += -I$(realpath $(MINI-OS_ROOT)/include/posix) -DEF_CPPFLAGS += -I$(realpath $(XEN_ROOT)/tools/xenstore) +DEF_CPPFLAGS += -isystem $(realpath $(MINI-OS_ROOT)/include/posix) +DEF_CPPFLAGS += -isystem $(realpath $(XEN_ROOT)/tools/xenstore) endif ifneq ($(LWIPDIR),) lwip=y DEF_CPPFLAGS += -DHAVE_LWIP -DEF_CPPFLAGS += -I$(LWIPDIR)/src/include -DEF_CPPFLAGS += -I$(LWIPDIR)/src/include/ipv4 +DEF_CPPFLAGS += -isystem $(LWIPDIR)/src/include +DEF_CPPFLAGS += -isystem $(LWIPDIR)/src/include/ipv4 endif diff -r aab9fbd6ffa0 extras/mini-os/Makefile --- a/extras/mini-os/Makefile Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/Makefile Thu Jul 10 12:16:12 2008 +0100 @@ -55,6 +55,8 @@ .PHONY: links links: $(ARCH_LINKS) [ -e include/xen ] || ln -sf ../../../xen/include/public include/xen + [ -e include/mini-os ] || ln -sf . include/mini-os + [ -e include/$(TARGET_ARCH_FAM)/mini-os ] || ln -sf . include/$(TARGET_ARCH_FAM)/mini-os .PHONY: arch_lib arch_lib: @@ -89,7 +91,7 @@ endif $(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds - $(LD) -r -d $(LDFLAGS) $^ $(APP_LDLIBS) --undefined main -o $@ + $(LD) -r -d $(LDFLAGS) -\( $^ -\) $(APP_LDLIBS) --undefined main -o $@ $(OBJ_DIR)/$(TARGET): links $(OBJS) $(OBJ_DIR)/$(TARGET)_app.o arch_lib $(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(OBJ_DIR)/$(TARGET)_app.o $(OBJS) $(LDARCHLIB) $(LDLIBS) -o $@.o diff -r aab9fbd6ffa0 extras/mini-os/include/arch/cc.h --- a/extras/mini-os/include/arch/cc.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/arch/cc.h Thu Jul 10 12:16:12 2008 +0100 @@ -10,8 +10,8 @@ #define __LWIP_ARCH_CC_H__ /* Typedefs for the types used by lwip - */ -#include <os.h> -#include <types.h> +#include <mini-os/os.h> +#include <mini-os/types.h> #include <time.h> typedef u8 u8_t; typedef s8 s8_t; @@ -46,7 +46,7 @@ /* If the compiler does not provide memset() this file must include a */ /* definition of it, or include a file which defines it. */ -#include <lib.h> +#include <mini-os/lib.h> /* This file must either include a system-local <errno.h> which defines */ /* the standard *nix error codes, or it should #define LWIP_PROVIDE_ERRNO */ diff -r aab9fbd6ffa0 extras/mini-os/include/arch/sys_arch.h --- a/extras/mini-os/include/arch/sys_arch.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/arch/sys_arch.h Thu Jul 10 12:16:12 2008 +0100 @@ -9,9 +9,9 @@ #ifndef __LWIP_ARCH_SYS_ARCH_H__ #define __LWIP_ARCH_SYS_ARCH_H__ -#include <os.h> -#include <xmalloc.h> -#include <semaphore.h> +#include <mini-os/os.h> +#include <mini-os/xmalloc.h> +#include <mini-os/semaphore.h> typedef struct semaphore *sys_sem_t; #define SYS_SEM_NULL ((sys_sem_t) NULL) diff -r aab9fbd6ffa0 extras/mini-os/include/blkfront.h --- a/extras/mini-os/include/blkfront.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/blkfront.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,6 +1,6 @@ -#include <wait.h> +#include <mini-os/wait.h> #include <xen/io/blkif.h> -#include <types.h> +#include <mini-os/types.h> struct blkfront_dev; struct blkfront_aiocb { diff -r aab9fbd6ffa0 extras/mini-os/include/byteswap.h --- a/extras/mini-os/include/byteswap.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/byteswap.h Thu Jul 10 12:16:12 2008 +0100 @@ -3,7 +3,7 @@ /* Unfortunately not provided by newlib. */ -#include <types.h> +#include <mini-os/types.h> static inline uint16_t bswap_16(uint16_t x) { return diff -r aab9fbd6ffa0 extras/mini-os/include/console.h --- a/extras/mini-os/include/console.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/console.h Thu Jul 10 12:16:12 2008 +0100 @@ -36,8 +36,8 @@ #ifndef _LIB_CONSOLE_H_ #define _LIB_CONSOLE_H_ -#include<os.h> -#include<traps.h> +#include<mini-os/os.h> +#include<mini-os/traps.h> #include<stdarg.h> void print(int direct, const char *fmt, va_list args); diff -r aab9fbd6ffa0 extras/mini-os/include/err.h --- a/extras/mini-os/include/err.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/err.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,7 +1,7 @@ #ifndef _ERR_H #define _ERR_H -#include <errno.h> +#include <mini-os/errno.h> /* * Kernel pointers have redundant information, so we can use a diff -r aab9fbd6ffa0 extras/mini-os/include/errno.h --- a/extras/mini-os/include/errno.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/errno.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,7 +1,7 @@ #ifndef _ERRNO_H #define _ERRNO_H -#include <errno-base.h> +#include <mini-os/errno-base.h> typedef int error_t; @@ -113,7 +113,7 @@ #define EFTYPE 132 /* Inappropriate file type or format */ #ifdef HAVE_LIBC -#include <sched.h> +#include <mini-os/sched.h> extern int errno; #define ERRNO #define errno (get_current()->reent._errno) diff -r aab9fbd6ffa0 extras/mini-os/include/events.h --- a/extras/mini-os/include/events.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/events.h Thu Jul 10 12:16:12 2008 +0100 @@ -19,7 +19,7 @@ #ifndef _EVENTS_H_ #define _EVENTS_H_ -#include<traps.h> +#include<mini-os/traps.h> #include<xen/event_channel.h> typedef void (*evtchn_handler_t)(evtchn_port_t, struct pt_regs *, void *); diff -r aab9fbd6ffa0 extras/mini-os/include/fbfront.h --- a/extras/mini-os/include/fbfront.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/fbfront.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,6 +1,6 @@ #include <xen/io/kbdif.h> #include <xen/io/fbif.h> -#include <wait.h> +#include <mini-os/wait.h> /* from <linux/input.h> */ #ifndef BTN_LEFT diff -r aab9fbd6ffa0 extras/mini-os/include/fs.h --- a/extras/mini-os/include/fs.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/fs.h Thu Jul 10 12:16:12 2008 +0100 @@ -2,8 +2,8 @@ #define __FS_H__ #include <xen/io/fsif.h> -#include <semaphore.h> -#include <types.h> +#include <mini-os/semaphore.h> +#include <mini-os/types.h> struct fs_import { diff -r aab9fbd6ffa0 extras/mini-os/include/hypervisor.h --- a/extras/mini-os/include/hypervisor.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/hypervisor.h Thu Jul 10 12:16:12 2008 +0100 @@ -13,7 +13,7 @@ #ifndef _HYPERVISOR_H_ #define _HYPERVISOR_H_ -#include <types.h> +#include <mini-os/types.h> #include <xen/xen.h> #if defined(__i386__) #include <hypercall-x86_32.h> @@ -24,7 +24,7 @@ #else #error "Unsupported architecture" #endif -#include <traps.h> +#include <mini-os/traps.h> /* * a placeholder for the start of day information passed up from the hypervisor diff -r aab9fbd6ffa0 extras/mini-os/include/ia64/atomic.h --- a/extras/mini-os/include/ia64/atomic.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/ia64/atomic.h Thu Jul 10 12:16:12 2008 +0100 @@ -38,7 +38,7 @@ #if !defined(__ASSEMBLY__) -#include <types.h> +#include <mini-os/types.h> /* diff -r aab9fbd6ffa0 extras/mini-os/include/ia64/efi.h --- a/extras/mini-os/include/ia64/efi.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/ia64/efi.h Thu Jul 10 12:16:12 2008 +0100 @@ -32,7 +32,7 @@ #ifndef _EFI_H_ #define _EFI_H_ -#include "types.h" +#include <mini-os/types.h> #define EFIWARN(a) (a) diff -r aab9fbd6ffa0 extras/mini-os/include/ia64/endian.h --- a/extras/mini-os/include/ia64/endian.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/ia64/endian.h Thu Jul 10 12:16:12 2008 +0100 @@ -26,7 +26,7 @@ #if !defined(_ENDIAN_H_) #define _ENDIAN_H_ -#include "types.h" +#include <mini-os/types.h> #if !defined(__ASSEMBLY__) diff -r aab9fbd6ffa0 extras/mini-os/include/ia64/hypercall-ia64.h --- a/extras/mini-os/include/ia64/hypercall-ia64.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/ia64/hypercall-ia64.h Thu Jul 10 12:16:12 2008 +0100 @@ -34,8 +34,8 @@ #ifndef __HYPERCALL_H__ #define __HYPERCALL_H__ -#include "lib.h" /* memcpy() */ -#include "errno.h" /* ENOSYS() */ +#include <mini-os/lib.h> /* memcpy() */ +#include <mini-os/errno.h> /* ENOSYS() */ #include <xen/event_channel.h> #include <xen/sched.h> #include <xen/version.h> diff -r aab9fbd6ffa0 extras/mini-os/include/ia64/os.h --- a/extras/mini-os/include/ia64/os.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/ia64/os.h Thu Jul 10 12:16:12 2008 +0100 @@ -27,15 +27,15 @@ #if !defined(__ASSEMBLY__) -#include "types.h" +#include <mini-os/types.h> #include "endian.h" #include "ia64_cpu.h" #include "atomic.h" #include "efi.h" #include "sal.h" #include "pal.h" -#include "hypervisor.h" -#include <kernel.h> +#include <mini-os/hypervisor.h> +#include <mini-os/kernel.h> typedef uint64_t paddr_t; /* Physical address. */ diff -r aab9fbd6ffa0 extras/mini-os/include/lib.h --- a/extras/mini-os/include/lib.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/lib.h Thu Jul 10 12:16:12 2008 +0100 @@ -99,13 +99,13 @@ char * strcat(char * dest, const char * src); char *strdup(const char *s); #endif -#include <console.h> +#include <mini-os/console.h> #define RAND_MIX 2654435769U int rand(void); -#include <xenbus.h> +#include <mini-os/xenbus.h> #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) diff -r aab9fbd6ffa0 extras/mini-os/include/linux/types.h --- a/extras/mini-os/include/linux/types.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/linux/types.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,5 +1,5 @@ #ifndef _LINUX_TYPES_H_ #define _LINUX_TYPES_H_ -#include <types.h> +#include <mini-os/types.h> typedef u64 __u64; #endif /* _LINUX_TYPES_H_ */ diff -r aab9fbd6ffa0 extras/mini-os/include/mm.h --- a/extras/mini-os/include/mm.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/mm.h Thu Jul 10 12:16:12 2008 +0100 @@ -35,10 +35,10 @@ #error "Unsupported architecture" #endif -#include <lib.h> +#include <mini-os/lib.h> -#include <arch_limits.h> -#include <arch_mm.h> +#include <mini-os/arch_limits.h> +#include <mini-os/arch_mm.h> #define STACK_SIZE_PAGE_ORDER __STACK_SIZE_PAGE_ORDER #define STACK_SIZE __STACK_SIZE diff -r aab9fbd6ffa0 extras/mini-os/include/netfront.h --- a/extras/mini-os/include/netfront.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/netfront.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,4 +1,4 @@ -#include <wait.h> +#include <mini-os/wait.h> #ifdef HAVE_LWIP #include <lwip/netif.h> #endif diff -r aab9fbd6ffa0 extras/mini-os/include/pcifront.h --- a/extras/mini-os/include/pcifront.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/pcifront.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,4 +1,4 @@ -#include <types.h> +#include <mini-os/types.h> #include <xen/io/pciif.h> struct pcifront_dev; struct pcifront_dev *init_pcifront(char *nodename); diff -r aab9fbd6ffa0 extras/mini-os/include/posix/limits.h --- a/extras/mini-os/include/posix/limits.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/posix/limits.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,7 +1,7 @@ #ifndef _POSIX_LIMITS_H #define _POSIX_LIMITS_H -#include <arch_limits.h> +#include <mini-os/arch_limits.h> #define CHAR_BIT 8 diff -r aab9fbd6ffa0 extras/mini-os/include/posix/sys/select.h --- a/extras/mini-os/include/posix/sys/select.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/posix/sys/select.h Thu Jul 10 12:16:12 2008 +0100 @@ -2,6 +2,7 @@ #define _POSIX_SELECT_H #include <sys/time.h> +#include <lwip/sockets.h> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); #endif /* _POSIX_SELECT_H */ diff -r aab9fbd6ffa0 extras/mini-os/include/posix/unistd.h --- a/extras/mini-os/include/posix/unistd.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/posix/unistd.h Thu Jul 10 12:16:12 2008 +0100 @@ -2,8 +2,7 @@ #define _POSIX_UNISTD_H #include_next <unistd.h> -#include <sys/select.h> -#include <arch_limits.h> +#include <mini-os/arch_limits.h> #define getpagesize() __PAGE_SIZE diff -r aab9fbd6ffa0 extras/mini-os/include/sched.h --- a/extras/mini-os/include/sched.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/sched.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,9 +1,12 @@ #ifndef __SCHED_H__ #define __SCHED_H__ -#include <list.h> -#include <time.h> -#include <arch_sched.h> +#include <mini-os/list.h> +#include <mini-os/time.h> +#include <mini-os/arch_sched.h> +#ifdef HAVE_LIBC +#include <sys/reent.h> +#endif struct thread { diff -r aab9fbd6ffa0 extras/mini-os/include/semaphore.h --- a/extras/mini-os/include/semaphore.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/semaphore.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,8 +1,8 @@ #ifndef _SEMAPHORE_H_ #define _SEMAPHORE_H_ -#include <wait.h> -#include <spinlock.h> +#include <mini-os/wait.h> +#include <mini-os/spinlock.h> /* * Implementation of semaphore in Mini-os is simple, because diff -r aab9fbd6ffa0 extras/mini-os/include/spinlock.h --- a/extras/mini-os/include/spinlock.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/spinlock.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,7 +1,7 @@ #ifndef __ASM_SPINLOCK_H #define __ASM_SPINLOCK_H -#include <lib.h> +#include <mini-os/lib.h> /* * Your basic SMP spinlocks, allowing only a single CPU anywhere @@ -12,7 +12,7 @@ } spinlock_t; -#include "arch_spinlock.h" +#include <mini-os/arch_spinlock.h> #define SPINLOCK_MAGIC 0xdead4ead diff -r aab9fbd6ffa0 extras/mini-os/include/sys/lock.h --- a/extras/mini-os/include/sys/lock.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/sys/lock.h Thu Jul 10 12:16:12 2008 +0100 @@ -5,7 +5,7 @@ /* Due to inclusion loop, we can not include sched.h, so have to hide things */ -#include <waittypes.h> +#include <mini-os/waittypes.h> typedef struct { diff -r aab9fbd6ffa0 extras/mini-os/include/time.h --- a/extras/mini-os/include/time.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/time.h Thu Jul 10 12:16:12 2008 +0100 @@ -19,7 +19,7 @@ #ifndef _MINIOS_TIME_H_ #define _MINIOS_TIME_H_ -#include <types.h> +#include <mini-os/types.h> /* * System Time diff -r aab9fbd6ffa0 extras/mini-os/include/wait.h --- a/extras/mini-os/include/wait.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/wait.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,9 +1,9 @@ #ifndef __WAIT_H__ #define __WAIT_H__ -#include <sched.h> -#include <os.h> -#include <waittypes.h> +#include <mini-os/sched.h> +#include <mini-os/os.h> +#include <mini-os/waittypes.h> #define DEFINE_WAIT(name) \ struct wait_queue name = { \ diff -r aab9fbd6ffa0 extras/mini-os/include/waittypes.h --- a/extras/mini-os/include/waittypes.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/waittypes.h Thu Jul 10 12:16:12 2008 +0100 @@ -1,7 +1,7 @@ #ifndef __WAITTYPE_H__ #define __WAITTYPE_H__ -#include <list.h> +#include <mini-os/list.h> struct thread; struct wait_queue diff -r aab9fbd6ffa0 extras/mini-os/include/x86/arch_sched.h --- a/extras/mini-os/include/x86/arch_sched.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/x86/arch_sched.h Thu Jul 10 12:16:12 2008 +0100 @@ -2,7 +2,7 @@ #ifndef __ARCH_SCHED_H__ #define __ARCH_SCHED_H__ -#include <arch_limits.h> +#include "arch_limits.h" static inline struct thread* get_current(void) { diff -r aab9fbd6ffa0 extras/mini-os/include/x86/arch_spinlock.h --- a/extras/mini-os/include/x86/arch_spinlock.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/x86/arch_spinlock.h Thu Jul 10 12:16:12 2008 +0100 @@ -3,7 +3,7 @@ #ifndef __ARCH_ASM_SPINLOCK_H #define __ARCH_ASM_SPINLOCK_H -#include <lib.h> +#include <mini-os/lib.h> #include "os.h" diff -r aab9fbd6ffa0 extras/mini-os/include/x86/os.h --- a/extras/mini-os/include/x86/os.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/x86/os.h Thu Jul 10 12:16:12 2008 +0100 @@ -16,9 +16,9 @@ #ifndef __ASSEMBLY__ -#include <types.h> -#include <hypervisor.h> -#include <kernel.h> +#include <mini-os/types.h> +#include <mini-os/hypervisor.h> +#include <mini-os/kernel.h> #define USED __attribute__ ((used)) diff -r aab9fbd6ffa0 extras/mini-os/include/x86/x86_32/hypercall-x86_32.h --- a/extras/mini-os/include/x86/x86_32/hypercall-x86_32.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/x86/x86_32/hypercall-x86_32.h Thu Jul 10 12:16:12 2008 +0100 @@ -33,7 +33,7 @@ #include <xen/xen.h> #include <xen/sched.h> #include <xen/nmi.h> -#include <mm.h> +#include <mini-os/mm.h> #define __STR(x) #x #define STR(x) __STR(x) diff -r aab9fbd6ffa0 extras/mini-os/include/x86/x86_64/hypercall-x86_64.h --- a/extras/mini-os/include/x86/x86_64/hypercall-x86_64.h Thu Jul 10 11:26:42 2008 +0100 +++ b/extras/mini-os/include/x86/x86_64/hypercall-x86_64.h Thu Jul 10 12:16:12 2008 +0100 @@ -36,7 +36,7 @@ #include <xen/xen.h> #include <xen/sched.h> -#include <mm.h> +#include <mini-os/mm.h> #define __STR(x) #x #define STR(x) __STR(x) diff -r aab9fbd6ffa0 stubdom/Makefile --- a/stubdom/Makefile Thu Jul 10 11:26:42 2008 +0100 +++ b/stubdom/Makefile Thu Jul 10 12:16:13 2008 +0100 @@ -3,11 +3,13 @@ export XEN_OS=MiniOS +CONFIG_QEMU=ioemu + export stubdom=y export debug=y include $(XEN_ROOT)/Config.mk -IOEMU_OPTIONS=--disable-vnc-tls +IOEMU_OPTIONS=--disable-sdl --disable-opengl --disable-gfx-check --disable-vnc-tls --disable-brlapi --disable-kqemu ZLIB_VERSION=1.2.3 LIBPCI_VERSION=2.2.9 NEWLIB_VERSION=1.16.0 @@ -48,10 +51,12 @@ # Do not use host headers and libs GCC_INSTALL = $(shell gcc -print-search-dirs | sed -n -e ''s/install: \(.*\)/\1/p'') TARGET_CPPFLAGS += -U __linux__ -U __FreeBSD__ -U __sun__ -TARGET_CFLAGS += -nostdinc -TARGET_CPPFLAGS += -isystem $(realpath $(MINI_OS)/include/posix) +TARGET_CPPFLAGS += -nostdinc +TARGET_CPPFLAGS += -isystem $(abspath $(MINI_OS)/include/posix) TARGET_CPPFLAGS += -isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include TARGET_CPPFLAGS += -isystem $(GCC_INSTALL)include +TARGET_CPPFLAGS += -isystem $(CURDIR)/lwip-cvs/src/include +TARGET_CPPFLAGS += -isystem $(CURDIR)/lwip-cvs/src/include/ipv4 TARGET_CPPFLAGS += -I$(CURDIR)/include TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib @@ -149,6 +154,7 @@ mk-headers: mkdir -p include/xen && \ ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) include/xen && \ + ln -sf $(addprefix ../../$(XEN_ROOT)/xen/include/public/,arch-ia64 arch-x86 hvm io xsm) include/xen && \ ( [ -h include/xen/sys ] || ln -sf ../../$(XEN_ROOT)/tools/include/xen-sys/MiniOS include/xen/sys ) && \ mkdir -p include/xen-foreign && \ ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/tools/include/xen-foreign/*)) include/xen-foreign/ && \ @@ -165,10 +171,21 @@ ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.h . && \ ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/Makefile . ) mkdir -p ioemu +ifeq ($(CONFIG_QEMU),ioemu) [ -h ioemu/Makefile ] || ( cd ioemu && \ - ln -sf ../$(XEN_ROOT)/tools/ioemu/* . && \ - ([ ! -h config-host.h ] || rm -f config-host.h) && \ - ([ ! -h config-host.mak ] || rm -f config-host.mak) ) + ln -sf ../$(XEN_ROOT)/tools/ioemu/* .) +else + [ -h ioemu/Makefile ] || ( cd ioemu && \ + ln -sf $(CONFIG_QEMU)/* . && \ + rm -fr i386-dm && \ + rm -fr i386-stubdom && \ + mkdir i386-dm && \ + mkdir i386-stubdom && \ + ln -sf $(CONFIG_QEMU)/i386-dm/* i386-dm/ && \ + ln -sf $(CONFIG_QEMU)/i386-stubdom/* i386-stubdom/ ) +endif + [ ! -h ioemu/config-host.h ] || rm -f ioemu/config-host.h + [ ! -h ioemu/config-host.mak ] || rm -f ioemu/config-host.mak $(MAKE) -C $(MINI_OS) links TARGETS_MINIOS=$(addprefix mini-os-,$(TARGETS)) @@ -193,10 +210,17 @@ .PHONY: ioemu ioemu: cross-zlib cross-libpci mk-headers libxc +ifeq ($(CONFIG_QEMU),ioemu) [ -f ioemu/config-host.mak ] || \ ( cd ioemu ; \ XEN_TARGET_ARCH=$(XEN_TARGET_ARCH) CFLAGS="$(TARGET_CFLAGS)" sh configure --prefix=/usr --enable-stubdom $(IOEMU_OPTIONS)) CPPFLAGS="$(TARGET_CPPFLAGS)" $(MAKE) -C ioemu LWIPDIR=$(CURDIR)/lwip-cvs TOOLS+else + [ -f ioemu/config-host.mak ] || \ + ( cd ioemu ; \ + CONFIG_STUBDOM=yes XEN_ROOT=$(abspath $(XEN_ROOT)) XEN_TARGET_ARCH=$(XEN_TARGET_ARCH) CFLAGS="$(TARGET_CFLAGS)" sh ./xen-setup --cc=$(CC) --disable-gcc-check $(IOEMU_OPTIONS)) + CPPFLAGS= TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" $(MAKE) -C ioemu LWIPDIR=$(CURDIR)/lwip-cvs TOOLS= CONFIG_STUBDOM=yes +endif ###### # caml @@ -233,8 +257,13 @@ ######## .PHONY: ioemu-stubdom +ifeq ($(CONFIG_QEMU),ioemu) +ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-dm-stubdom/qemu.a $(CURDIR)/ioemu/i386-dm-stubdom/libqemu.a +else +ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a +endif ioemu-stubdom: mini-os-ioemu lwip-cvs libxc ioemu - DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_QEMU $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS="$(CURDIR)/ioemu/i386-dm-stubdom/qemu.a $(CURDIR)/ioemu/i386-dm-stubdom/libqemu.a" + DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_QEMU $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-cvs APP_OBJS="$(APP_OBJS)" CAMLLIB = $(shell ocamlc -where) .PHONY: caml-stubdom @@ -302,7 +331,7 @@ # clean downloads .PHONY: downloadclean downloadclean: patchclean - rm -f newlib-$(ZLIB_VERSION).tar.gz + rm -f newlib-$(NEWLIB_VERSION).tar.gz rm -f zlib-$(ZLIB_VERSION).tar.gz rm -f pciutils-$(LIBPCI_VERSION).tar.bz2 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel