From df172df11c6e4c909e863c82f1bfa677b86b42f1 Mon Sep 17 00:00:00 2001 From: LunarLambda Date: Wed, 8 Feb 2023 19:12:38 +0100 Subject: [PATCH] minrt: add ELF pheaders to link script --- dist.sh | 2 +- meson.build | 2 +- minrt/lib/ldscripts/gba.x | 29 +++++++++++++++++++---------- minrt/meson.build | 2 +- minrt/src/gba/crt0.s | 2 +- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/dist.sh b/dist.sh index ef5b6d1..34c55ba 100755 --- a/dist.sh +++ b/dist.sh @@ -13,4 +13,4 @@ make_dist() { [ ! -d "$DIST" ] && mkdir "$DIST" || rm "$DIST"/* (PROJECT=libseven VERSION=0.17.0 make_dist) -(PROJECT=minrt VERSION=0.7.0 make_dist) +(PROJECT=minrt VERSION=0.7.1 make_dist) diff --git a/meson.build b/meson.build index 4cbdfac..3df5bb0 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('sdk-seven', 'c', - version: '0.19.0', + version: '0.19.1', license: 'Zlib', meson_version: '>=0.59.0', default_options: ['warning_level=2', 'c_std=c99']) diff --git a/minrt/lib/ldscripts/gba.x b/minrt/lib/ldscripts/gba.x index 921ebf4..09d22a4 100644 --- a/minrt/lib/ldscripts/gba.x +++ b/minrt/lib/ldscripts/gba.x @@ -9,6 +9,15 @@ OUTPUT_ARCH(arm) ENTRY(_start) EXTERN(_header) +PHDRS +{ + LOAD PT_LOAD; + IWRAM PT_LOAD; + EWRAM PT_LOAD; + DATA PT_LOAD; + PERSISTENT PT_LOAD; +} + SECTIONS { /* GBA ROM header */ @@ -19,7 +28,7 @@ SECTIONS __boot_type = 0xC4; __boot_client = 0xC5; KEEP(*(.header_pad .header_pad.*)) - } >LOAD_REGION + } >LOAD_REGION :LOAD /* Standard code */ @@ -44,7 +53,7 @@ SECTIONS { *(SORT(.iwram.sorted.*)) *(.iwram .iwram.*) - } >IWRAM AT>LOAD_REGION + } >IWRAM AT>LOAD_REGION :IWRAM OVERLAY : NOCROSSREFS { @@ -72,7 +81,7 @@ SECTIONS { *(SORT(.ewram.sorted.*)) *(.ewram .ewram.*) - } >EWRAM AT>LOAD_REGION + } >EWRAM AT>LOAD_REGION :EWRAM OVERLAY : NOCROSSREFS { @@ -99,21 +108,21 @@ SECTIONS .data : { *(.data .data.* .gnu.linkonce.d.*) - } >DATA_REGION AT>LOAD_REGION + } >DATA_REGION AT>LOAD_REGION :DATA /* Persistent data */ .persistent : { *(.persistent .persistent.* .gnu.linkonce.p.*) - } >PERSISTENT_REGION AT>LOAD_REGION + } >PERSISTENT_REGION AT>LOAD_REGION :PERSISTENT /* IWRAM zero-initialized data */ .iwram_bss (NOLOAD) : { *(.iwram_bss .iwram_bss.*) - } >IWRAM + } >IWRAM :NONE /* EWRAM zero-initialized data */ @@ -122,7 +131,7 @@ SECTIONS *(.ewram_bss .ewram_bss.*) /* devkitARM compatibility */ *(.sbss .sbss.*) - } >EWRAM + } >EWRAM :NONE /* Standard zero-initialized data */ @@ -130,21 +139,21 @@ SECTIONS { *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) - } >BSS_REGION + } >BSS_REGION :NONE /* Persistent zero-initialized data */ .noinit (NOLOAD) : { *(.noinit .noinit.* .gnu.linkonce.n.*) - } >NOINIT_REGION + } >NOINIT_REGION :NONE /* Exception handling and unwinding */ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) - } >LOAD_REGION + } >LOAD_REGION :LOAD .ARM.exidx : { diff --git a/minrt/meson.build b/minrt/meson.build index fc0e1d1..ed547ba 100644 --- a/minrt/meson.build +++ b/minrt/meson.build @@ -1,4 +1,4 @@ -version = '0.7.0' +version = '0.7.1' sources = [ 'src/gba/crt0.s', diff --git a/minrt/src/gba/crt0.s b/minrt/src/gba/crt0.s index 6c496d5..2b0a52f 100644 --- a/minrt/src/gba/crt0.s +++ b/minrt/src/gba/crt0.s @@ -134,7 +134,7 @@ _exit: init: .byte 0 .section .pad,"aR",%progbits -.string "minrt 0.5.1" +.string "minrt 0.7.1" .equiv REG_IME, 0x04000208