aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/m68kcoff.sc-sh12
-rwxr-xr-xld/sa29200.sc-sh10
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 . :