X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=packages%2Fhal%2Farm%2Farch%2Fv2_0%2Fsrc%2Farm.ld;h=649828a2a0ed08f0b822badc912d67cb8bbbacbe;hb=fdef8b5c36d8aeb8061bd7241937f53b01b435a2;hp=38f9d636f46d9e288e6ead8ee2ea52362fd0e987;hpb=e87296bb9f2179c32f52410e4ff45347d9131791;p=karo-tx-redboot.git diff --git a/packages/hal/arm/arch/v2_0/src/arm.ld b/packages/hal/arm/arch/v2_0/src/arm.ld index 38f9d636..649828a2 100644 --- a/packages/hal/arm/arch/v2_0/src/arm.ld +++ b/packages/hal/arm/arch/v2_0/src/arm.ld @@ -38,6 +38,7 @@ //============================================================================= #include +#include STARTUP(vectors.o) ENTRY(reset_vector) @@ -160,6 +161,14 @@ OUTPUT_FORMAT(elf32-bigarm) . = . + 8; \ } > _region_ = 0 +#ifdef CYGBLD_ARM_EABI +#define __CTORS init_array +#define __DTORS fini_array +#else +#define __CTORS ctors +#define __DTORS dtors +#endif + #define SECTION_RELOCS(_region_, _vma_, _lma_) \ .rel.text : \ { \ @@ -199,10 +208,10 @@ OUTPUT_FORMAT(elf32-bigarm) } > _region_ \ .rel.got : { *(.rel.got) } > _region_ \ .rela.got : { *(.rela.got) } > _region_ \ - .rel.ctors : { *(.rel.ctors) } > _region_ \ - .rela.ctors : { *(.rela.ctors) } > _region_ \ - .rel.dtors : { *(.rel.dtors) } > _region_ \ - .rela.dtors : { *(.rela.dtors) } > _region_ \ + .rel.__CTORS : { *(.rel.__CTORS) } > _region_ \ + .rela.__CTORS : { *(.rela.__CTORS) } > _region_ \ + .rel.__DTORS : { *(.rel.__DTORS) } > _region_ \ + .rela.__DTORS : { *(.rela.__DTORS) } > _region_ \ .rel.init : { *(.rel.init) } > _region_ \ .rela.init : { *(.rela.init) } > _region_ \ .rel.fini : { *(.rel.fini) } > _region_ \ @@ -238,8 +247,8 @@ OUTPUT_FORMAT(elf32-bigarm) . = ALIGN (4); \ KEEP(*( SORT (.ecos.table.*))) ; \ . = ALIGN (4); \ - __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \ - __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \ + __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.__CTORS*))) __CTOR_END__ = ABSOLUTE (.); \ + __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.__DTORS*))) __DTOR_END__ = ABSOLUTE (.); \ *(.dynamic) *(.sdata*) *(.gnu.linkonce.s.*) \ . = ALIGN (4); *(.2ram.*) } \ > _region_ \