This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ds5 armcc link erro

I am building a shared library for my own os with armcc(for some reason used the stdlib's 'malloc'), the link options is "--fpic --shared --linker_script="../lscript.ld" ",buf I got a link fault with:Error: L6286E: Relocation #REL:7 in h1_alloc_mt.o(.text) with respect to _malloc_internal. Value(0xfffdae36) out of range(-0x800 - 0x7fe) for (R_ARM_THM_JUMP11), what should i do? thanks

the 'lscript.ld' as bellow(referenced from armcc doc):

SECTIONS

{

  . = 0 + SIZEOF_HEADERS;

  .note.ABI-tag   : { *(.note.ABI-tag) }

  .hash           : { *(.hash) }

  .dynsym         : { *(.dynsym) }

  .dynstr         : { *(.dynstr) }

  .version        : { *(.version) }

  .version_d      : { *(.version_d) }

  .version_r      : { *(.version_r) }

  .rel.dyn        : { *(.rel.dyn) }

  .rela.dyn       : { *(.rela.dyn) }

  .rel.plt        : { *(.rel.plt) }

  .rela.plt       : { *(.rela.plt) }

  .init           : { KEEP (*(.init)) }

  .plt            : { *(.plt) }

  .text           : { *(.text .text.*) }

  .fini           : { KEEP (*(.fini)) }

  PROVIDE(__etext = .);

  PROVIDE(_etext = .);

  PROVIDE(etext = .);

  .rodata         : { *(.rodata .rodata.*) }

   __exidx_start = .;

  .ARM.exidx   : { *(.ARM.exidx*) }

   __exidx_end = .;

  .interp         : { *(.interp) }

  . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1));

  . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));

  .tdata  : { *(.tdata .tdata.*) }

  .tbss  : { *(.tbss .tbss.*) }

  .preinit_array     :

  {

     PROVIDE_HIDDEN (__preinit_array_start = .);

     KEEP (*(.preinit_array))

     PROVIDE_HIDDEN (__preinit_array_end = .);

  }

  .init_array     :

  {

     PROVIDE_HIDDEN (__init_array_start = .);

     KEEP (*(.init_array*))

     PROVIDE_HIDDEN (__init_array_end = .);

  }

  .fini_array     :

  {

     PROVIDE_HIDDEN (__fini_array_start = .);

     KEEP (*(.fini_array*))

     PROVIDE_HIDDEN (__fini_array_end = .);

  }

  .dynamic        : { *(.dynamic) }

  .got            : { *(.got.plt) *(.got) }

  .data           :

  {

    __data_start = .;

    *(.data .data.*)

  }

  _edata = .;

  PROVIDE(edata = .);

  __bss_start = .;

  __bss_start__ = .;

  .bss            :

  {

   *(.bss .bss.*)

   . = ALIGN(. != 0 ? 32 / 8 : 1);

  }

  __bss_end__ = .;

  _bss_end__ = .;

  . = ALIGN(4);

  __end = .;

  _end = .;

  PROVIDE(end = .);

}

0