From 5c281ec6619f3e25d5e9f456b9a1c2eb42ff6713 Mon Sep 17 00:00:00 2001 From: Maschell Date: Sun, 8 May 2022 14:56:29 +0200 Subject: [PATCH] Increase maximum size of wumsloader --- wumsloader/src/globals.h | 2 +- wumsloader/src/link.ld | 142 +++++++++++++++++++-------------------- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/wumsloader/src/globals.h b/wumsloader/src/globals.h index ff521b8..345fa1f 100644 --- a/wumsloader/src/globals.h +++ b/wumsloader/src/globals.h @@ -15,7 +15,7 @@ extern std::unique_ptr gModuleDataInfo; #define MEMORY_REGION_SIZE 0x00800000 #define CUSTOM_RPX_LOADER_RETURN_CODE 0x00009000 // We have to skip the first 0x00009000 bytes because it's still used -#define RELOCATOR_SIZE 0x0D0000 // Maximum size of the wumsloader, needs to match the one defined in link.ld +#define RELOCATOR_SIZE 0x0E0000 // Maximum size of the wumsloader, needs to match the one defined in link.ld #define ENVIRONMENT_PATH_LENGTH 0x100 // Length of the EnvironmentPath. #define MEMORY_REGION_ENVIRONMENT_STRING_ADRR (MEMORY_REGION_START + CUSTOM_RPX_LOADER_RETURN_CODE + RELOCATOR_SIZE) diff --git a/wumsloader/src/link.ld b/wumsloader/src/link.ld index 1517857..9daff6b 100644 --- a/wumsloader/src/link.ld +++ b/wumsloader/src/link.ld @@ -4,92 +4,92 @@ ENTRY(_start); SECTIONS { . = 0x00809000; - .text ALIGN(32) : { - KEEP (*(.crt0)) - KEEP (*(SORT_NONE(.init))) + .text ALIGN(32) : { + KEEP (*(.crt0)) + KEEP (*(SORT_NONE(.init))) - *(.text.unlikely .text.*_unlikely .text.unlikely.*) - *(.text.exit .text.exit.*) - *(.text.startup .text.startup.*) - *(.text.hot .text.hot.*) - *(SORT(.text.sorted.*)) - *(.text .stub .text.* .gnu.linkonce.t.*) - *(.gnu.warning) - *(.glink) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) + *(SORT(.text.sorted.*)) + *(.text .stub .text.* .gnu.linkonce.t.*) + *(.gnu.warning) + *(.glink) - KEEP (*(SORT_NONE(.fini))) - } + KEEP (*(SORT_NONE(.fini))) + } - .rodata : { - *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) - *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + .rodata : { + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) - *(.rodata .rodata.* .gnu.linkonce.r.*) - *(.rodata1) + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) - *(.gcc_except_table .gcc_except_table.*) - *(.gnu_extab*) + *(.gcc_except_table .gcc_except_table.*) + *(.gnu_extab*) - . = ALIGN(4); - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array)) - PROVIDE_HIDDEN (__preinit_array_end = .); + . = ALIGN(4); + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) - KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - PROVIDE_HIDDEN (__init_array_end = .); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin?.o(.ctors)) + KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) + KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + PROVIDE_HIDDEN (__init_array_end = .); - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) - KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - PROVIDE_HIDDEN (__fini_array_end = .); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*crtbegin.o(.dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) + KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + PROVIDE_HIDDEN (__fini_array_end = .); - KEEP (*(.jcr)) - *(.fixup) - *(.got1) - *(.got2) - *(.branch_lt) - *(.got) - *(.plt) - *(.tm_clone_table) - } + KEEP (*(.jcr)) + *(.fixup) + *(.got1) + *(.got2) + *(.branch_lt) + *(.got) + *(.plt) + *(.tm_clone_table) + } - .eh_frame : { - *(.eh_frame_hdr) - *(.eh_frame_entry .eh_frame_entry.*) + .eh_frame : { + *(.eh_frame_hdr) + *(.eh_frame_entry .eh_frame_entry.*) - KEEP (*(.eh_frame)) - *(.eh_frame.*) - } + KEEP (*(.eh_frame)) + *(.eh_frame.*) + } - .data : { - *(.data .data.* .gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - *(.data1) - *(.sdata .sdata.* .gnu.linkonce.s.*) - } + .data : { + *(.data .data.* .gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + *(.data1) + *(.sdata .sdata.* .gnu.linkonce.s.*) + } - .bss (NOLOAD) : { - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.scommon) + .bss (NOLOAD) : { + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.scommon) - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - } + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + } /DISCARD/ : { - *(*); + *(*); } } -ASSERT((SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.rodata) + SIZEOF(.eh_frame) + SIZEOF(.bss)) < 0x0D0000, "Memory overlapping with modules."); +ASSERT((SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.rodata) + SIZEOF(.eh_frame) + SIZEOF(.bss)) < 0x0E0000, "Memory overlapping with modules.");