Page 1 of 1

Just upgraded to latest devkit arm and...

Posted: Mon Jan 25, 2010 10:37 am
by phileee
Hi, following on from my recent problems with the Yagarto toolchain, I have upgraded to the latest devkitarm release. unfortunately I get many linker errors, including the undefined reference to __dso_handle. my linker output is below...

obj/system_overview.o: In function `global constructors keyed to system_overview_status_group':
system_overview.cpp:(.text+0xa80): undefined reference to `__dso_handle'
obj/main.o: In function `global constructors keyed to display':
main.cpp:(.text+0x7c): undefined reference to `__dso_handle'
C:/devkitPro/devkitARM/lib/gcc/arm-eabi/4.4.2/libgcc.a(unwind-arm.o): In function `get_eit_entry':
(.text+0x754): undefined reference to `__exidx_start'
C:/devkitPro/devkitARM/lib/gcc/arm-eabi/4.4.2/libgcc.a(unwind-arm.o): In function `get_eit_entry':
(.text+0x758): undefined reference to `__exidx_end'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-mallocr.o): In function `_malloc_r':
(.text+0x400): undefined reference to `_sbrk_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-mallocr.o): In function `_malloc_r':
(.text+0x47c): undefined reference to `_sbrk_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-syswrite.o): In function `write':
(.text+0x20): undefined reference to `_write_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-freer.o): In function `_malloc_trim_r':
(.text+0x48): undefined reference to `_sbrk_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-freer.o): In function `_malloc_trim_r':
(.text+0x78): undefined reference to `_sbrk_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-freer.o): In function `_malloc_trim_r':
(.text+0xbc): undefined reference to `_sbrk_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-makebuf.o): In function `__smakebuf_r':
(.text+0x30): undefined reference to `_fstat_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-makebuf.o): In function `__smakebuf_r':
(.text+0xd0): undefined reference to `_isatty_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-stdio.o): In function `__sclose':
(.text+0x8): undefined reference to `_close_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-stdio.o): In function `__sseek':
(.text+0x20): undefined reference to `_lseek_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-stdio.o): In function `__swrite':
(.text+0x78): undefined reference to `_lseek_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-stdio.o): In function `__swrite':
(.text+0x98): undefined reference to `_write_r'
C:/devkitPro/devkitARM/arm-eabi/lib/libc.a(lib_a-stdio.o): In function `__sread':
(.text+0xb0): undefined reference to `_read_r'


Do I need to update my linker script to run with the latest tools? I suspect that most of the errors must come from something that my link file does not have..... any quick suggestions? All help, much appreciated.
Phil

Re: Just upgraded to latest devkit arm and...

Posted: Wed Jan 27, 2010 4:24 pm
by WinterMute
__exidx_start & __exidx_end should be provided by your link script, have a look at the files in devkitARM/arm-eabi/lib/ldscripts/ & the .ld files in devkitARM/arm-eabi/lib/. http://www.embedded.com/columns/technic ... tid=621645 has an example linkscript too.

What's your full link command line? __dso_handle is defined in crtbegin.o and the rest are normally provided by libsysbase in devkitARM, that suggests you're using either ld directly rather than using g++ or specifying -nostartfiles -nostdlib.

What's the system you're trying to target? We may need to look at a few tweaks if you're trying to keep the footprint down.