Modified how patch elf is linked to prevent address conflicts with vanilla symbols, update RT64
This commit is contained in:
parent
40d0b20939
commit
8db2c655c3
2
lib/rt64
2
lib/rt64
|
@ -1 +1 @@
|
||||||
Subproject commit a14ada8fd7c8a9c93c896ee594fbaca583c02d17
|
Subproject commit 482b9c9e48e97627b374a997dc8e21116af712e7
|
|
@ -7,7 +7,7 @@ OBJCOPY := llvm-objcopy
|
||||||
CFLAGS := -target mips -mips2 -mabi=32 -O2 -mno-abicalls -mno-odd-spreg -fomit-frame-pointer -ffast-math -fno-unsafe-math-optimizations -mno-check-zero-division -G0 -Wall -Wextra -Wno-incompatible-library-redeclaration -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-variable -Wno-missing-braces -Wno-unsupported-floating-point-opt
|
CFLAGS := -target mips -mips2 -mabi=32 -O2 -mno-abicalls -mno-odd-spreg -fomit-frame-pointer -ffast-math -fno-unsafe-math-optimizations -mno-check-zero-division -G0 -Wall -Wextra -Wno-incompatible-library-redeclaration -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-variable -Wno-missing-braces -Wno-unsupported-floating-point-opt
|
||||||
CPPFLAGS := -nostdinc -D_LANGUAGE_C -DMIPS -I. -I ../lib/mm-decomp/include -I ../lib/mm-decomp/src -I ../lib/mm-decomp/assets -I../lib/rt64/include
|
CPPFLAGS := -nostdinc -D_LANGUAGE_C -DMIPS -I. -I ../lib/mm-decomp/include -I ../lib/mm-decomp/src -I ../lib/mm-decomp/assets -I../lib/rt64/include
|
||||||
LDFLAGS := -nostdlib -T patches.ld -T syms.ld --just-symbols=../mm.us.rev1.elf --allow-multiple-definition
|
LDFLAGS := -nostdlib -T patches.ld -T syms.ld --just-symbols=../mm.us.rev1.elf --allow-multiple-definition
|
||||||
BINFLAGS := -O binary
|
BINFLAGS := -O binary --remove-section=.bss --remove-section=.pad --remove-section=.text
|
||||||
|
|
||||||
C_SRCS := $(wildcard *.c)
|
C_SRCS := $(wildcard *.c)
|
||||||
C_OBJS := $(C_SRCS:.c=.o)
|
C_OBJS := $(C_SRCS:.c=.o)
|
||||||
|
|
|
@ -1,17 +1,24 @@
|
||||||
RAMBASE = 0x80800100; /* Used to hold any new symbols */
|
RAMBASE = 0x80800100; /* Used to hold any new symbols */
|
||||||
|
EXTRA_RAM_SIZE = 0x01000000; /* Amount of extra ram allocated by recomp */
|
||||||
|
|
||||||
MEMORY {
|
MEMORY {
|
||||||
extram : ORIGIN = RAMBASE, LENGTH = 8M
|
extram : ORIGIN = RAMBASE, LENGTH = 64M
|
||||||
rom : ORIGIN = 0, LENGTH = 1M
|
rom : ORIGIN = 0, LENGTH = 64M
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTIONS {
|
SECTIONS {
|
||||||
.text : { *(.text*) } >extram AT >rom
|
|
||||||
.ctors : { *(.ctors*) *(.init_array*) } >extram AT >rom
|
.ctors : { *(.ctors*) *(.init_array*) } >extram AT >rom
|
||||||
.dtors : { *(.dtors*) } >extram AT >rom
|
.dtors : { *(.dtors*) } >extram AT >rom
|
||||||
.rodata : { *(.rodata*) } >extram AT >rom
|
.rodata : { *(.rodata*) } >extram AT >rom
|
||||||
.data : { *(.data*) } >extram AT >rom
|
.data : { *(.data*) } >extram AT >rom
|
||||||
.bss (NOLOAD) : { *(.bss*) *(COMMON) } >extram
|
|
||||||
|
/* The following sections will be removed from the objcopy */
|
||||||
|
/* bss isn't noload to make .text rom addresses valid for the recompiler */
|
||||||
|
.bss : { *(.bss*) *(COMMON) } >extram AT >rom
|
||||||
|
ASSERT(. < RAMBASE + EXTRA_RAM_SIZE, "Maxed out recomp extra ram")
|
||||||
|
/* Padding to push .text to avoid conflicts with original function addresses */
|
||||||
|
.pad : { . += 0x1000000; } >extram AT >rom
|
||||||
|
.text : { *(.text*) } >extram AT >rom
|
||||||
|
|
||||||
.symtab 0 : { *(.symtab) }
|
.symtab 0 : { *(.symtab) }
|
||||||
.strtab 0 : { *(.strtab) }
|
.strtab 0 : { *(.strtab) }
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include "nfd.h"
|
#include "nfd.h"
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
|
||||||
std::string version_number = "v0.9.0";
|
std::string version_number = "v0.9.0-dirty";
|
||||||
|
|
||||||
Rml::DataModelHandle model_handle;
|
Rml::DataModelHandle model_handle;
|
||||||
bool mm_rom_valid = false;
|
bool mm_rom_valid = false;
|
||||||
|
|
Loading…
Reference in New Issue