From 04076d3d539f4deb1bce2d47e10153a7a7e104f3 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 22 May 2010 09:07:50 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1948 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/ARMCM3-STM32F107-GCC/ch.ld | 51 +++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 16 deletions(-) (limited to 'demos/ARMCM3-STM32F107-GCC') diff --git a/demos/ARMCM3-STM32F107-GCC/ch.ld b/demos/ARMCM3-STM32F107-GCC/ch.ld index c0aa83278..0595192db 100644 --- a/demos/ARMCM3-STM32F107-GCC/ch.ld +++ b/demos/ARMCM3-STM32F107-GCC/ch.ld @@ -41,20 +41,44 @@ SECTIONS .text : ALIGN(16) SUBALIGN(16) { _text = .; - KEEP(*(vectors)); + KEEP(*(vectors)) *(.text) - *(.text.*); - *(.rodata); - *(.rodata.*); - *(.glue_7t); - *(.glue_7); - *(.gcc*); - *(.ctors); - *(.dtors); - . = ALIGN(4); - _etext = .; + *(.text.*) + *(.rodata) + *(.rodata.*) + *(.glue_7t) + *(.glue_7) + *(.gcc*) + } > flash + + .ctors : + { + PROVIDE(_ctors_start_ = .); + KEEP(*(SORT(.ctors.*))) + KEEP(*(.ctors)) + PROVIDE(_ctors_end_ = .); + } > flash + + .dtors : + { + PROVIDE(_dtors_start_ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(_dtors_end_ = .); } > flash + .ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)} + + __exidx_start = .; + .ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash + __exidx_end = .; + + .eh_frame_hdr : {*(.eh_frame_hdr)} + + .eh_frame : ONLY_IF_RO {*(.eh_frame)} + + . = ALIGN(4); + _etext = .; _textdata = _etext; .data : @@ -80,11 +104,6 @@ SECTIONS . = ALIGN(4); _bss_end = .; } > ram - - /DISCARD/ : - { - *(.eh_*) - } } PROVIDE(end = .); -- cgit v1.2.3