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

Re: [Xen-devel] [XenARM] [help] How to compile the unstable source for arm at sstabellini/xen-unstable.git/.git



On Tue, 31 Jan 2012, Ian Campbell wrote:
> > make[3]: Entering directory
> > `/home/frank/workspace/xen/src/xen-arm-v6/xen/include'
> > for i in public/callback.h public/dom0_ops.h public/elfnote.h
> > public/event_channel.h public/features.h public/grant_table.h
> > public/kexec.h public/mem_event.h public/memory.h public/nmi.h
> > public/physdev.h public/platform.h public/sched.h public/tmem.h
> > public/trace.h public/vcpu.h public/version.h public/xen-compat.h
> > public/xen.h public/xencomm.h public/xenoprof.h public/hvm/e820.h
> > public/hvm/hvm_info_table.h public/hvm/hvm_op.h public/hvm/ioreq.h
> > public/hvm/params.h public/io/blkif.h public/io/console.h
> > public/io/fbif.h public/io/fsif.h public/io/kbdif.h
> > public/io/libxenvchan.h public/io/netif.h public/io/pciif.h
> > public/io/protocols.h public/io/ring.h public/io/tpmif.h
> > public/io/usbif.h public/io/vscsiif.h public/io/xenbus.h
> > public/io/xs_wire.h; do arm-linux-gnueabi-gcc -ansi -include stdint.h
> > -Wall -W -Werror -S -o /dev/null -xc $i || exit 1; echo $i; done
> > >headers.chk.new
> > public/callback.h:87:5: error: unknown type name 'xen_callback_t'
> 
> At this point I get:
> [ -e include/asm ] || ln -sf asm-arm include/asm
> make -f /local/scratch/ianc/devel/arm/xen-unstable/xen/Rules.mk -C include
> make[3]: Entering directory 
> `/local/scratch/ianc/devel/arm/xen-unstable/xen/include'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory 
> `/local/scratch/ianc/devel/arm/xen-unstable/xen/include'
> 
> Aha -- the difference is down to XEN_TARGET_ARCH vs. XEN_COMPILE_ARCH,
> see towards the end of xen/include/Makefile:
>         ifeq ($(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
>         ...
>         all: headers.chk
>         ...
> 
> I'm inferring from the Makefile that:
> XEN_COMPILE_ARCH == the host architecture -- e.g. the machine you are
>       compiling on
> XEN_TARGET_ARCH == the target architecture -- e.g. the machine you want 
>       to run the resulting Xen on.
> 
> And indeed if I do a native build on an arm system I see the same error
> as you do. We'll look at fixing this but in the meantime I suggest you
> use XEN_TARGET_ARCH and not XEN_COMPILE_ARCH.

The following patch fixes the compile issue (that indeed is due to the
header files check you pointed out).

---

arm: few missing #define

Few missing #define are the cause of a compile failure with
XEN_TARGET_ARM=arm and XEN_COMPILE_ARM=arm (for example in the case of a
native compilation). This patch fill the gaps.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index c430cf3..e04c4fd 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -110,6 +110,8 @@ typedef struct arch_vcpu_info arch_vcpu_info_t;
 
 struct arch_shared_info { };
 typedef struct arch_shared_info arch_shared_info_t;
+typedef unsigned long xen_callback_t;
+
 #endif
 
 #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
diff --git a/xen/include/public/io/protocols.h 
b/xen/include/public/io/protocols.h
index 77bd1bd..0b7a2ea 100644
--- a/xen/include/public/io/protocols.h
+++ b/xen/include/public/io/protocols.h
@@ -26,6 +26,7 @@
 #define XEN_IO_PROTO_ABI_X86_32     "x86_32-abi"
 #define XEN_IO_PROTO_ABI_X86_64     "x86_64-abi"
 #define XEN_IO_PROTO_ABI_IA64       "ia64-abi"
+#define XEN_IO_PROTO_ABI_ARM        "arm-abi"
 
 #if defined(__i386__)
 # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
@@ -33,6 +34,8 @@
 # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_64
 #elif defined(__ia64__)
 # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
+#elif defined(__arm__)
+# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_ARM
 #else
 # error arch fixup needed here
 #endif

_______________________________________________
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®.