Hi Xen-ARMs,
I applied this patch, "error: unknown type name 'xen_callback_t' is fixed. But I still meet the problem. The problem is where to download the cross compiler "arm-none-linux-gnueabi-gcc" which supports march=arm-V7a and mcpu=cortex-a15.
Would someone give me one avaiable URL to download the right compiler?
Best Regards,
Frank
--
At 2012-01-31 22:51:29,"Stefano Stabellini" <stefano.stabellini@xxxxxxxxxxxxx> wrote:
>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