diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/scripttempl/elfm68hc11.sc | 19 | ||||
-rw-r--r-- | ld/scripttempl/elfm68hc12.sc | 19 |
3 files changed, 14 insertions, 30 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 34c8f30..eee8e54 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2003-07-23 Stephane Carrez <stcarrez@nerim.fr> + + * scripttempl/elfm68hc11.sc: Keep ctor/dtor sections; Take into + account .tramp sections; + * scripttempl/elfm68hc12.sc: Likewise. + 2003-07-17 Charles Wilson <cwilson@ece.gatech.edu> * ld/pe-dll.c: Add libcygwin to autofilter_liblist[] diff --git a/ld/scripttempl/elfm68hc11.sc b/ld/scripttempl/elfm68hc11.sc index 0883b97..5188982 100644 --- a/ld/scripttempl/elfm68hc11.sc +++ b/ld/scripttempl/elfm68hc11.sc @@ -28,15 +28,7 @@ CTOR=".ctors ${CONSTRUCTING-0} : { ${CONSTRUCTING+ PROVIDE (__CTOR_LIST__ = .); } ${CONSTRUCTING+${CTOR_START}} - *(.ctors) - /* We don't want to include the .ctor section from - from the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last - - KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) */ + KEEP (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} ${CONSTRUCTING+ PROVIDE(__CTOR_END__ = .); } @@ -45,12 +37,7 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=" .dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+ PROVIDE(__DTOR_LIST__ = .); } - *(.dtors) - /* - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) */ + KEEP (*(.dtors)) ${CONSTRUCTING+ PROVIDE(__DTOR_END__ = .); } } ${RELOCATING+ > ${TEXT_MEMORY}}" @@ -326,6 +313,8 @@ SECTIONS /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) ${RELOCATING+*(.gnu.linkonce.t.*)} + ${RELOCATING+*(.tramp)} + ${RELOCATING+*(.tramp.*)} ${RELOCATING+${FINISH_CODE}} diff --git a/ld/scripttempl/elfm68hc12.sc b/ld/scripttempl/elfm68hc12.sc index d9a41fd..94f10c9 100644 --- a/ld/scripttempl/elfm68hc12.sc +++ b/ld/scripttempl/elfm68hc12.sc @@ -28,15 +28,7 @@ CTOR=".ctors ${CONSTRUCTING-0} : { ${CONSTRUCTING+ PROVIDE (__CTOR_LIST__ = .); } ${CONSTRUCTING+${CTOR_START}} - *(.ctors) - /* We don't want to include the .ctor section from - from the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last - - KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) */ + KEEP (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} ${CONSTRUCTING+ PROVIDE(__CTOR_END__ = .); } @@ -45,12 +37,7 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=" .dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+ PROVIDE(__DTOR_LIST__ = .); } - *(.dtors) - /* - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) */ + KEEP (*(.dtors)) ${CONSTRUCTING+ PROVIDE(__DTOR_END__ = .); } } ${RELOCATING+ > ${TEXT_MEMORY}}" @@ -324,6 +311,8 @@ SECTIONS /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) ${RELOCATING+*(.gnu.linkonce.t.*)} + ${RELOCATING+*(.tramp)} + ${RELOCATING+*(.tramp.*)} ${RELOCATING+${FINISH_CODE}} |