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

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



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:

/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

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?


David Engraf



My ldscript:

/* Memory Definitions */

MEMORY
{
  CODE (rx) : ORIGIN = 0x00000000, LENGTH = 0x00030000
  DATA (rw) : ORIGIN = 0x00030000, LENGTH = 0x00010000
}

LADR = 0x01000000;


/* Section Definitions */

SECTIONS
{

  /* first section is .text which is used for code */

  .text : AT (LADR)
  {
    *startup.o (.text)         /* Startup code */
    *(.text)                   /* remaining code */

    *(.glue_7t) *(.glue_7)

  } >CODE =0

  . = ALIGN(4);

  /* .rodata section which is used for read-only data (constants) */
  _rodata = . ;
  .rodata . : AT (LADR + _rodata )
  {
    *(.rodata)
  } >CODE

  . = ALIGN(4);

  _etext = . ;
  PROVIDE (etext = .);

  /* .data section which is used for initialized data */

  .data : AT (LADR + _etext )
  {
    _data = . ;
    *(.data)
    SORT(CONSTRUCTORS)
  } >DATA
  . = ALIGN(4);

  _edata = . ;
   PROVIDE (edata = .);

  _eload = _etext + (_edata - _data);

  /* .bss section which is used for uninitialized data */

  .bss :
  {
    __bss_start = . ;
    __bss_start__ = . ;
    *(.bss)
    *(COMMON)
  } >DATA
  . = ALIGN(4);
  __bss_end__ = . ;
  __bss_end__ = . ;

  _end = .;
  PROVIDE (end = .);
}



____________
Virus checked by G DATA AntiVirusKit
Version: AVK 16.2347 from 22.12.2005