Re: [arm-gnu] Specifying Load Address: undefined __exidx_start, __exidx_end
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [arm-gnu] Specifying Load Address: undefined __exidx_start, __exidx_end



On Thu, Dec 22, 2005 at 12:29:53PM +0100, David Engraf wrote:
> Tools:  CodeSourcery 2005q3-2, Linux host, "bare metal" target.
> 
> Target CPU: AT91R40008
> 
> I want to create a new ldscript file for my hardware in order to define the
> ROM/RAM start address. When I use my own ldscript file, the linker generates
> the following error:

Thank you for your interest in our Sourcery G++ Toolchains!

> /usr/local/bin/../lib/gcc/arm-none-eabi/3.4.4/libgcc.a(unwind-arm.o): In
> function `get_eit_entry':unwind-arm.c:(.text+0x45c): undefined reference to
> `__exidx_start'
> :unwind-arm.c:(.text+0x460): undefined reference to `__exidx_end'
> collect2: ld returned 1 exit status
> make: *** [test.elf] Fehler 1

The two missing symbols are part of the exception unwinding mechanism.

> What does __exidx_start and __exidx_end do? Where should I place this
> section in my ldscript file? Is there any startup code I need, because I
> have my own startup code for the remap of the arm?

I would recommend looking at the default linker script and modifying as
required.

Cheers,
Carlos.
--
Carlos O'Donell                                                                              
CodeSourcery, LLC                                                                                   
carlos@xxxxxxxxxxxxxxxx