diff --git a/dkarm-eabi/crtls/ds_arm7.ld b/dkarm-eabi/crtls/ds_arm7.ld index 5c369b8..1b2e914 100644 --- a/dkarm-eabi/crtls/ds_arm7.ld +++ b/dkarm-eabi/crtls/ds_arm7.ld @@ -29,14 +29,11 @@ SECTIONS .text : /* ALIGN (4): */ { - - *(.text.*) - *(.stub) + *(.text .stub .text.* .gnu.linkonce.t.*) + KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) - *(.glue_7) - *(.glue_7t) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >iwram = 0xff diff --git a/dkarm-eabi/crtls/ds_arm7.specs b/dkarm-eabi/crtls/ds_arm7.specs index e5cb3c1..eb605fd 100644 --- a/dkarm-eabi/crtls/ds_arm7.specs +++ b/dkarm-eabi/crtls/ds_arm7.specs @@ -1,8 +1,4 @@ %rename link old_link -%rename link_gcc_c_sequence old_gcc_c_sequence - -*link_gcc_c_sequence: -%(old_gcc_c_sequence) --start-group -lsysbase -lc --end-group *link: %(old_link) -T ds_arm7.ld%s diff --git a/dkarm-eabi/crtls/ds_arm9.specs b/dkarm-eabi/crtls/ds_arm9.specs index 3d3e7da..016f977 100644 --- a/dkarm-eabi/crtls/ds_arm9.specs +++ b/dkarm-eabi/crtls/ds_arm9.specs @@ -1,8 +1,4 @@ %rename link old_link -%rename link_gcc_c_sequence old_gcc_c_sequence - -*link_gcc_c_sequence: -%(old_gcc_c_sequence) --start-group -lsysbase -lc --end-group *link: %(old_link) -T ds_arm9.ld%s diff --git a/dkarm-eabi/crtls/ds_cart.ld b/dkarm-eabi/crtls/ds_cart.ld index 2b19497..15db3ee 100644 --- a/dkarm-eabi/crtls/ds_cart.ld +++ b/dkarm-eabi/crtls/ds_cart.ld @@ -32,15 +32,12 @@ SECTIONS .text : /* ALIGN (4): */ { - - *(EXCLUDE_FILE (*text.iwram*) .text) - *(.text.*) - *(.stub) + *(EXCLUDE_FILE (*.iwram*) .text) + *(.text .stub .text.* .gnu.linkonce.t.*) + KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) - *(.glue_7) - *(.glue_7t) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >rom = 0xff diff --git a/dkarm-eabi/crtls/ds_cart.specs b/dkarm-eabi/crtls/ds_cart.specs index 8bd5778..f3a6ff4 100644 --- a/dkarm-eabi/crtls/ds_cart.specs +++ b/dkarm-eabi/crtls/ds_cart.specs @@ -1,8 +1,4 @@ %rename link old_link -%rename link_gcc_c_sequence old_gcc_c_sequence - -*link_gcc_c_sequence: -%(old_gcc_c_sequence) --start-group -lsysbase -lc --end-group *link: %(old_link) -T ds_cart.ld%s diff --git a/dkarm-eabi/crtls/gba.specs b/dkarm-eabi/crtls/gba.specs index 84b9dff..8d99583 100644 --- a/dkarm-eabi/crtls/gba.specs +++ b/dkarm-eabi/crtls/gba.specs @@ -1,8 +1,4 @@ %rename link old_link -%rename link_gcc_c_sequence old_gcc_c_sequence - -*link_gcc_c_sequence: -%(old_gcc_c_sequence) --start-group -lsysbase -lc --end-group *link: %(old_link) -T gba_cart.ld%s diff --git a/dkarm-eabi/crtls/gba_cart.ld b/dkarm-eabi/crtls/gba_cart.ld index 500a2b7..81119d1 100644 --- a/dkarm-eabi/crtls/gba_cart.ld +++ b/dkarm-eabi/crtls/gba_cart.ld @@ -82,13 +82,11 @@ SECTIONS .text : /* ALIGN (4): */ { *(EXCLUDE_FILE (*.iwram*) .text) - *(.text.*) - *(.stub) + *(.text .stub .text.* .gnu.linkonce.t.*) + KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) - *(.glue_7) - *(.glue_7t) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >rom = 0xff diff --git a/dkarm-eabi/crtls/gba_mb.ld b/dkarm-eabi/crtls/gba_mb.ld index f06e9a4..b47cc4c 100644 --- a/dkarm-eabi/crtls/gba_mb.ld +++ b/dkarm-eabi/crtls/gba_mb.ld @@ -76,13 +76,11 @@ SECTIONS .text ALIGN (4): { *(EXCLUDE_FILE (*.iwram*) .text) - *(.text.*) - *(.stub) + *(.text .stub .text.* .gnu.linkonce.t.*) + KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) - *(.glue_7) - *(.glue_7t) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >ewram = 0xff diff --git a/dkarm-eabi/crtls/gba_mb.specs b/dkarm-eabi/crtls/gba_mb.specs index b5a364f..cda74a5 100644 --- a/dkarm-eabi/crtls/gba_mb.specs +++ b/dkarm-eabi/crtls/gba_mb.specs @@ -1,8 +1,4 @@ %rename link old_link -%rename link_gcc_c_sequence old_gcc_c_sequence - -*link_gcc_c_sequence: -%(old_gcc_c_sequence) --start-group -lsysbase -lc --end-group *link: -T gba_mb.ld%s %(old_link) diff --git a/dkarm-eabi/crtls/gp32.ld b/dkarm-eabi/crtls/gp32.ld index 1ba8641..6c4c627 100644 --- a/dkarm-eabi/crtls/gp32.ld +++ b/dkarm-eabi/crtls/gp32.ld @@ -17,18 +17,15 @@ SECTIONS } >ram = 0xff .plt : { *(.plt) } >ram = 0xff - .text : /* ALIGN (4): */ - { - - *(EXCLUDE_FILE (*text.iwram*) .text) - *(.text.*) - *(.stub) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - *(.gnu.linkonce.t*) - *(.glue_7) - *(.glue_7t) - . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ + + .text : /* ALIGN (4): */ + { + *(.text .stub .text.* .gnu.linkonce.t.*) + KEEP (*(.text.*personality*)) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >ram = 0xff .fini : { diff --git a/dkarm-eabi/crtls/gp32.specs b/dkarm-eabi/crtls/gp32.specs index 4484877..a15e5b0 100644 --- a/dkarm-eabi/crtls/gp32.specs +++ b/dkarm-eabi/crtls/gp32.specs @@ -1,8 +1,4 @@ %rename link old_link -%rename link_gcc_c_sequence old_gcc_c_sequence - -*link_gcc_c_sequence: -%(old_gcc_c_sequence) --start-group -lsysbase -lc --end-group *link: %(old_link) -T gp32.ld%s diff --git a/dkarm-eabi/crtls/gp32_gpsdk.specs b/dkarm-eabi/crtls/gp32_gpsdk.specs index 239e773..014c55e 100644 --- a/dkarm-eabi/crtls/gp32_gpsdk.specs +++ b/dkarm-eabi/crtls/gp32_gpsdk.specs @@ -1,8 +1,4 @@ %rename link old_link -%rename link_gcc_c_sequence old_gcc_c_sequence - -*link_gcc_c_sequence: -%(old_gcc_c_sequence) --start-group -lsysbase -lc --end-group *link: %(old_link) -T gp32_gpsdk.ld%s