Stefano Stabellini
2012-Jan-31 14:53 UTC
Re: [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@eu.citrix.com> 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
Frank, Chen
2012-Feb-06 01:00 UTC
Re: [XenARM] [help] How to compile the unstable source for arm at sstabellini/xen-unstable.git/.git
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@eu.citrix.com> 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@eu.citrix.com> > >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@lists.xensource.com http://lists.xensource.com/xen-devel
Stefano Stabellini
2012-Feb-08 10:36 UTC
Re: [XenARM] [help] How to compile the unstable source for arm at sstabellini/xen-unstable.git/.git
On Mon, 6 Feb 2012, Frank, Chen wrote:> Hi Xen-ARMs, >  > I applied this patch, "error: unknown type name ''xen_callback_t'' is fixed.Thanks for testing!> 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?ÂWhich cross-compiler are you using at the moment? If you are on Ubuntu, we just need to apt-get install gcc-arm-linux-gnueabi in order to get Linaro''s cross-compiler. --8323329-1461947762-1328697424=:3196 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --8323329-1461947762-1328697424=:3196--
Frank, Chen
2012-Feb-08 12:59 UTC
Re: [XenARM] [help] How to compile the unstable source for arm at sstabellini/xen-unstable.git/.git
Hi Xen-ARMs, I used the latest compiler from Linaro. But the compiler cannot support march=armv7-a and mcpu=cortex-a15 The error information is like this: make -f /home/frank/workspace/xen/src/xen-arm-v6/xen/Rules.mk -C include make[3]: Entering directory `/home/frank/workspace/xen/src/xen-arm-v6/xen/include' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/home/frank/workspace/xen/src/xen-arm-v6/xen/include' make -f /home/frank/workspace/xen/src/xen-arm-v6/xen/Rules.mk -C arch/arm asm-offsets.s make[3]: Entering directory `/home/frank/workspace/xen/src/xen-arm-v6/xen/arch/arm' arm-linux-gnueabi-gcc -O1 -fno-omit-frame-pointer -marm -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Wno-unused-but-set-variable -fno-builtin -fno-common -Wredundant-decls -iwithprefix include -Werror -Wno-pointer-arith -pipe -I/home/frank/workspace/xen/src/xen-arm-v6/xen/include -msoft-float -nopie -fno-stack-protector -fno-exceptions -Wnested-externs -DGCC_HAS_VISIBILITY_ATTRIBUTE -march=armv7-a -mcpu=cortex-a15 -fno-optimize-sibling-calls -g -D__XEN__ -include /home/frank/workspace/xen/src/xen-arm-v6/xen/include/xen/config.h -DVERBOSE -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER -MMD -MF .asm-offsets.s.d -S -o asm-offsets.s asm-offsets.c asm-offsets.c:1:0: error: switch -mcpu=cortex-a15 conflicts with -march=armv7-a switch [-Werror] cc1: all warnings being treated as errors I modified xen/arch/arm/Rules.mk like the following, the compiling is OK. diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk index 336e209..407fc82 100644 --- a/xen/arch/arm/Rules.mk +++ b/xen/arch/arm/Rules.mk @@ -22,7 +22,8 @@ ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE endif -CFLAGS += -march=armv7-a -mcpu=cortex-a15 +#CFLAGS += -march=armv7-a -mcpu=cortex-a15 +CFLAGS += -mcpu=cortex-a15 I checked binary file xen, it does not have the unresolved symbol. Best Regards, Frank -- 在 2012-02-08 18:36:48,"Stefano Stabellini" <stefano.stabellini@eu.citrix.com> 写道:>On Mon, 6 Feb 2012, Frank, Chen wrote: >> Hi Xen-ARMs, >>  >> I applied this patch, "error: unknown type name 'xen_callback_t' is fixed. > >Thanks for testing! > > >> 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? > >Which cross-compiler are you using at the moment? >If you are on Ubuntu, we just need to > >apt-get install gcc-arm-linux-gnueabi > >in order to get Linaro's cross-compiler._______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Campbell
2012-Feb-08 16:53 UTC
Re: [XenARM] [help] How to compile the unstable source for arm at sstabellini/xen-unstable.git/.git
On Mon, 2012-02-06 at 01:00 +0000, Frank, Chen wrote:> 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?I use http://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.0/x86_64-gcc-4.6.0-nolibc_arm-unknown-linux-gnueabi.tar.bz2 Ian.
Frank, Chen
2012-Feb-09 00:43 UTC
Re: [XenARM] [help] How to compile the unstable source for arm at sstabellini/xen-unstable.git/.git
Hi Ian, Thanks. :-) I will try it. Best Regards, Frank -- At 2012-02-09 00:53:08,"Ian Campbell" <Ian.Campbell@citrix.com> wrote:>On Mon, 2012-02-06 at 01:00 +0000, Frank, Chen wrote: >> 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? > >I use >http://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.0/x86_64-gcc-4.6.0-nolibc_arm-unknown-linux-gnueabi.tar.bz2 > >Ian. > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Frank, Chen
2012-Feb-09 01:00 UTC
Re: [XenARM] [help] How to compile the unstable source for arm at sstabellini/xen-unstable.git/.git
Hi Ian and Xen-ARMs, I tried this compiler. The compile is OK. Best Regards, Frank -- At 2012-02-09 00:53:08,"Ian Campbell" <Ian.Campbell@citrix.com> wrote:>On Mon, 2012-02-06 at 01:00 +0000, Frank, Chen wrote: >> 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? > >I use >http://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.0/x86_64-gcc-4.6.0-nolibc_arm-unknown-linux-gnueabi.tar.bz2 > >Ian. > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel