stubdom: fixes to compile with qemu-xen
PATCH 1/1 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 <[email protected]>
extras/mini-os/Config.mk +6 -6
@@ -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
extras/mini-os/Makefile +3 -1
@@ -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 [email protected]
extras/mini-os/include/arch/cc.h +3 -3
@@ -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 */
extras/mini-os/include/arch/sys_arch.h +3 -3
@@ -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)
extras/mini-os/include/blkfront.h +2 -2
@@ -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 {
extras/mini-os/include/byteswap.h +1 -1
@@ -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
extras/mini-os/include/console.h +2 -2
@@ -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 int direct,const char *fmt,va_list args);
extras/mini-os/include/err.h +1 -1
@@ -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
extras/mini-os/include/errno.h +2 -2
@@ -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)
extras/mini-os/include/events.h +1 -1
@@ -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 *);
extras/mini-os/include/fbfront.h +1 -1
@@ -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
extras/mini-os/include/fs.h +2 -2
@@ -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 {
extras/mini-os/include/hypervisor.h +2 -2
@@ -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
extras/mini-os/include/ia64/atomic.h +1 -1
@@ -38,7 +38,7 @@#if !defined(__ASSEMBLY__) -#include <types.h> +#include <mini-os/types.h> /*
extras/mini-os/include/ia64/efi.h +1 -1
@@ -32,7 +32,7 @@#ifndef _EFI_H_#define _EFI_H_ -#include "types.h" +#include <mini-os/types.h> #define EFIWARN (a) (a)
extras/mini-os/include/ia64/endian.h +1 -1
@@ -26,7 +26,7 @@#if !defined(_ENDIAN_H_)#define _ENDIAN_H_ -#include "types.h" +#include <mini-os/types.h> #if !defined(__ASSEMBLY__)
extras/mini-os/include/ia64/hypercall-ia64.h +2 -2
@@ -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>
extras/mini-os/include/ia64/os.h +3 -3
@@ -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. */
extras/mini-os/include/lib.h +2 -2
@@ -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 2654435769Uint rand (void ); -#include <xenbus.h> +#include <mini-os/xenbus.h> #define ARRAY_SIZE (x) (sizeof(x) / sizeof((x)[0]))
extras/mini-os/include/linux/types.h +1 -1
@@ -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_ */
extras/mini-os/include/mm.h +3 -3
@@ -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
extras/mini-os/include/netfront.h +1 -1
@@ -1,4 +1,4 @@ -#include <wait.h> +#include <mini-os/wait.h> #ifdef HAVE_LWIP #include <lwip/netif.h> #endif
extras/mini-os/include/pcifront.h +1 -1
@@ -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);
extras/mini-os/include/posix/limits.h +1 -1
@@ -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
extras/mini-os/include/posix/sys/select.h +1 -0
@@ -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 */
extras/mini-os/include/posix/unistd.h +1 -2
@@ -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
extras/mini-os/include/sched.h +6 -3
@@ -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 {
extras/mini-os/include/semaphore.h +2 -2
@@ -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
extras/mini-os/include/spinlock.h +2 -2
@@ -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
extras/mini-os/include/sys/lock.h +1 -1
@@ -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 {
extras/mini-os/include/time.h +1 -1
@@ -19,7 +19,7 @@#ifndef _MINIOS_TIME_H_#define _MINIOS_TIME_H_ -#include <types.h> +#include <mini-os/types.h> /* * System Time
extras/mini-os/include/wait.h +3 -3
@@ -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 = { \
extras/mini-os/include/waittypes.h +1 -1
@@ -1,7 +1,7 @@#ifndef __WAITTYPE_H__#define __WAITTYPE_H__ -#include <list.h> +#include <mini-os/list.h> struct thread ;struct wait_queue
extras/mini-os/include/x86/arch_sched.h +1 -1
@@ -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 ) {
extras/mini-os/include/x86/arch_spinlock.h +1 -1
@@ -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"
extras/mini-os/include/x86/os.h +3 -3
@@ -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))
extras/mini-os/include/x86/x86_32/hypercall-x86_32.h +1 -1
@@ -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)
extras/mini-os/include/x86/x86_64/hypercall-x86_64.h +1 -1
@@ -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)
stubdom/Makefile +36 -8
97 lines not on this page · raw message