diff options
-rw-r--r-- | ld/m68kcoff.sc-sh | 12 | ||||
-rwxr-xr-x | ld/sa29200.sc-sh | 10 |
2 files changed, 21 insertions, 1 deletions
diff --git a/ld/m68kcoff.sc-sh b/ld/m68kcoff.sc-sh index 1ef0265..519791c 100644 --- a/ld/m68kcoff.sc-sh +++ b/ld/m68kcoff.sc-sh @@ -15,7 +15,17 @@ SECTIONS { .text : { *(.text) - ${RELOCATING+ etext = .}; + ${RELOCATING+ etext = .;} + ${CONSTRUCTING+ __CTOR_LIST__ = .;} + ${CONSTRUCTING+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)} + *(.ctors) + ${CONSTRUCTING+ LONG(0)} + ${CONSTRUCTING+ __CTOR_END__ = .;} + ${CONSTRUCTING+ __DTOR_LIST__ = .;} + ${CONSTRUCTING+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)} + *(.dtors) + ${CONSTRUCTING+ LONG(0)} + ${CONSTRUCTING+ __DTOR_END__ = .;} *(.lit) *(.shdata) } ${RELOCATING+ > text} diff --git a/ld/sa29200.sc-sh b/ld/sa29200.sc-sh index d0a395b..6526614 100755 --- a/ld/sa29200.sc-sh +++ b/ld/sa29200.sc-sh @@ -22,6 +22,16 @@ SECTIONS { *(.data2); ${RELOCATING+_edata = .}; ${CONSTRUCTING+CONSTRUCTORS} + ${CONSTRUCTING+ ___CTOR_LIST__ = .;} + ${CONSTRUCTING+ LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)} + *(.ctors) + ${CONSTRUCTING+ LONG(0)} + ${CONSTRUCTING+ ___CTOR_END__ = .;} + ${CONSTRUCTING+ ___DTOR_LIST__ = .;} + ${CONSTRUCTING+ LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)} + *(.dtors) + ${CONSTRUCTING+ LONG(0)} + ${CONSTRUCTING+ ___DTOR_END__ = .;} } .bss . : |