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

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



At 20:31 +0800 on 07 Feb (1328646671), Frank, Chen wrote:
> Hi all, 
> 
> 
> I succeed in compiling the unstable source for arm at 
> sstabellini/xen-unstable.git/.git with a little modification of 
> xen/arch/arm/Makefile by the latest arm-none-linux-gnueabi- compiler from 
> code sourcery.
> 
> 
> - The URL for the latest cross compiler:
> https://sourcery.mentor.com/sgpp/lite/arm/portal/package9728/public/arm-none-linux-gnueabi/arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
> 
> 
> - Compiling command : XEN_TARGET_ARCH=arm 
> CROSS_COMPILE=arm-none-linux-gnueabi make xen
>      
> - The patch is the following:
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 9bc2fc8..244a19f 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -51,15 +51,15 @@ $(BASEDIR)/common/symbols-dummy.o:
>         $(MAKE) -f $(BASEDIR)/Rules.mk -C $(BASEDIR)/common symbols-dummy.o
>  
>  $(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o
> -       $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \
> +       $(LD) $(LDFLAGS) -T xen.lds -r prelink.o \
>             $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
>         $(NM) -n $(@D)/.$(@F).0 | $(BASEDIR)/tools/symbols >$(@D)/.$(@F).0.S
>         $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0.o
> -       $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \
> +       $(LD) $(LDFLAGS) -T xen.lds -r prelink.o \
>             $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
>         $(NM) -n $(@D)/.$(@F).1 | $(BASEDIR)/tools/symbols >$(@D)/.$(@F).1.S
>         $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1.o
> -       $(LD) $(LDFLAGS) -T xen.lds -N prelink.o \
> +       $(LD) $(LDFLAGS) -T xen.lds -r prelink.o \
>             $(@D)/.$(@F).1.o -o $@
>         rm -f $(@D)/.$(@F).[0-9]*

That may link successfully but I'd be surprised if it runs.  You're
building a relocatable object instead of an executable binary.  If you
check your output file you'll probably find that it's still got an
unresolved symbol '__aeabi_unwind_cpp_pr1' in it.

The real problem is that whatever compiler you're using is expecting
this __aeabi_unwind_cpp_pr1() helper function to exist and it doesn't.

IIUC, __aeabi_unwind_cpp_pr1() is part ofthe C++ exception-handling
code, so it's surprising to see it linked from Xen code!  You coud try
adding -fno-exceptions to the CFLAGS in config/arm.mk

For the record, GCC 4.6.2 arm-linux-gnueabihf compiles Xen without this
error for me.

Tim.

> 
> 
> - Without applying this patch, the compiling will output the following error.
> ---
> make[4]: Leaving directory 
> `/home/frank/workspace/xen/src/xen-arm-v6/xen/common'
> arm-none-linux-gnueabi-ld    -marmelf_linux_eabi  -T xen.lds -N prelink.o \
>    /home/frank/workspace/xen/src/xen-arm-v6/xen/common/symbols-dummy.o -o 
> /home/frank/workspace/xen/src/xen-arm-v6/xen/.xen-syms.0
> prelink.o:(.ARM.exidx.init.text+0x0): undefined reference to 
> `__aeabi_unwind_cpp_pr1'

_______________________________________________
Xen-arm mailing list
Xen-arm@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-arm


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.