From a0f7e4e2da6b9139fb5dcad4415ee23715a034f8 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Mon, 5 Dec 2016 10:14:02 +0000 Subject: [PATCH] still need .init section --- dkarm-eabi/crtls/ds_arm9.ld | 5 +++++ dkarm-eabi/crtls/ds_cart.ld | 6 ++++++ dkarm-eabi/crtls/gba_cart.ld | 5 +++++ dkarm-eabi/crtls/gba_crt0.s | 7 +++++-- dkarm-eabi/crtls/gba_mb.ld | 12 +++++++++--- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/dkarm-eabi/crtls/ds_arm9.ld b/dkarm-eabi/crtls/ds_arm9.ld index f7f22f0..447fa75 100644 --- a/dkarm-eabi/crtls/ds_arm9.ld +++ b/dkarm-eabi/crtls/ds_arm9.ld @@ -26,6 +26,11 @@ SECTIONS .plt : { *(.plt) } >ewram = 0xff + .init : + { + KEEP (*(SORT_NONE(.init))) + } >ewram + .text : /* ALIGN (4): */ { *(EXCLUDE_FILE (*.itcm*) .text) diff --git a/dkarm-eabi/crtls/ds_cart.ld b/dkarm-eabi/crtls/ds_cart.ld index 09fd56e..46f7c85 100644 --- a/dkarm-eabi/crtls/ds_cart.ld +++ b/dkarm-eabi/crtls/ds_cart.ld @@ -28,8 +28,14 @@ SECTIONS KEEP (*(.crt0)) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >rom = 0xff + .plt : { *(.plt) } >rom = 0xff + .init : + { + KEEP (*(SORT_NONE(.init))) + } >ewram + .text : /* ALIGN (4): */ { *(EXCLUDE_FILE (*.iwram*) .text) diff --git a/dkarm-eabi/crtls/gba_cart.ld b/dkarm-eabi/crtls/gba_cart.ld index a93e6c1..0c85e42 100644 --- a/dkarm-eabi/crtls/gba_cart.ld +++ b/dkarm-eabi/crtls/gba_cart.ld @@ -79,6 +79,11 @@ SECTIONS . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >rom + .init : + { + KEEP (*(SORT_NONE(.init))) + } >rom + .text : /* ALIGN (4): */ { *(EXCLUDE_FILE (*.iwram*) .text) diff --git a/dkarm-eabi/crtls/gba_crt0.s b/dkarm-eabi/crtls/gba_crt0.s index bac33df..a561751 100644 --- a/dkarm-eabi/crtls/gba_crt0.s +++ b/dkarm-eabi/crtls/gba_crt0.s @@ -1,7 +1,10 @@ .section ".crt0","ax" .global _start .align + .arm + .cpu arm7tdmi + @--------------------------------------------------------------------------------- _start: @--------------------------------------------------------------------------------- @@ -43,8 +46,8 @@ __slave_number: .word 0 @ reserved .word 0 @ reserved - .global start_vector - .align + .global start_vector + .align @--------------------------------------------------------------------------------- start_vector: @--------------------------------------------------------------------------------- diff --git a/dkarm-eabi/crtls/gba_mb.ld b/dkarm-eabi/crtls/gba_mb.ld index 102cb42..6580182 100644 --- a/dkarm-eabi/crtls/gba_mb.ld +++ b/dkarm-eabi/crtls/gba_mb.ld @@ -61,18 +61,24 @@ __irq_flags = 0x03007ff8; SECTIONS { . = __text_start; - .init : + . = __text_start; + .crt0 : { - KEEP (*(.init)) + KEEP (*(.crt0)) . = ALIGN(4); } >ewram =0xff .plt : - { + { *(.plt) . = ALIGN(4); /* REQUIRED. LD is flaky without it. */ } >ewram + .init : + { + KEEP (*(SORT_NONE(.init))) + } >ewram + .text ALIGN (4): { *(EXCLUDE_FILE (*.iwram*) .text)