Mailing List Archive

Linking errors of Mini-OS for ARM32
Hi Ian,

Since finishing the very beginning setup assembly, I was turning to adding
necessary headers and empty functions to build the binary. After introducing
those bit operations, spinlocks etc., I thought I have a basic framework to
pass the first build. However, when comming to the final linking stage,
there are errors:

arm-linux-gnueabihf-ld -T arch/arm/minios-arm32.lds
/home/cbz/src/xen/extras/mini-os/mini-os.o -o
//home/cbz/src/xen/extras/mini-os/mini-os
/home/cbz/src/xen/extras/mini-os/mini-os.o: In function `init_blkfront':
/home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
/home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
/home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
/home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
/home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
/home/cbz/src/xen/extras/mini-os/mini-os.o:/home/cbz/src/xen/extras/mini-os/blkfront.c:122: more undefined references to `__aeabi_uldivmod' follow
/home/cbz/src/xen/extras/mini-os/mini-os.o:(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
/home/cbz/src/xen/extras/mini-os/mini-os.o:(.ARM.exidx+0x50): undefined reference to `__aeabi_unwind_cpp_pr0'
make: *** [/home/cbz/src/xen/extras/mini-os/mini-os] Error 1

I googled that error message. Some has mentioned that add "-fno-exceptions
-fno-unwind tables" could sovle the problem. I tried, but got the same
errors.

Any ideas?

BTW, after pass my first build, I would consider implementing support in the
toolstack for generating a DTB for guest on ARM platform.

Baozi

_______________________________________________
Xen-arm mailing list
Xen-arm@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-arm
Re: [Xen-devel] Linking errors of Mini-OS for ARM32 [ In reply to ]
On Sun, Jun 9, 2013 at 1:42 PM, Chen Baozi <baozich@gmail.com> wrote:
> Since finishing the very beginning setup assembly, I was turning to adding
> necessary headers and empty functions to build the binary. After introducing
> those bit operations, spinlocks etc., I thought I have a basic framework to
> pass the first build. However, when comming to the final linking stage,
> there are errors:
>
> arm-linux-gnueabihf-ld -T arch/arm/minios-arm32.lds
> /home/cbz/src/xen/extras/mini-os/mini-os.o -o
> //home/cbz/src/xen/extras/mini-os/mini-os
> /home/cbz/src/xen/extras/mini-os/mini-os.o: In function `init_blkfront':
> /home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
> /home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
> /home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
> /home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
> /home/cbz/src/xen/extras/mini-os/blkfront.c:122: undefined reference to `__aeabi_uldivmod'
> /home/cbz/src/xen/extras/mini-os/mini-os.o:/home/cbz/src/xen/extras/mini-os/blkfront.c:122: more undefined references to `__aeabi_uldivmod' follow
> /home/cbz/src/xen/extras/mini-os/mini-os.o:(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
> /home/cbz/src/xen/extras/mini-os/mini-os.o:(.ARM.exidx+0x50): undefined reference to `__aeabi_unwind_cpp_pr0'
> make: *** [/home/cbz/src/xen/extras/mini-os/mini-os] Error 1
>
> I googled that error message. Some has mentioned that add "-fno-exceptions
> -fno-unwind tables" could sovle the problem. I tried, but got the same
> errors.
>
> Any ideas?

You need to provide an implementation for __aeabi_uldivmod.
For this purpose, you can re-use xen/arch/arm/arm32/lib/lib1func.S

--
Grall Julien

_______________________________________________
Xen-arm mailing list
Xen-arm@lists.xen.org
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-arm