From 654bf5e42c58bfd3137ca605f868b9da9905c05f Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Fri, 29 Dec 2023 15:54:26 -0600 Subject: [PATCH] Split MSL and PPCEABI --- config/GMPE01_00/splits.txt | 217 ++++++++++++++++++++++++++++++++++- config/GMPE01_00/symbols.txt | 96 ++++++++-------- configure.py | 69 +++++++++++ 3 files changed, 333 insertions(+), 49 deletions(-) diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 870ef2e3..13d1fade 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -529,7 +529,7 @@ game/board/start.c: game/board/last5.c: .text start:0x800A9708 end:0x800ADB84 - .rodata start:0x8011E410 end:0x8011E430 + .rodata start:0x8011E3F0 end:0x8011E430 .data start:0x8013B1F8 end:0x8013B3F0 .bss start:0x801A4CF0 end:0x801A4D38 .sdata start:0x801D3850 end:0x801D38B8 @@ -815,7 +815,7 @@ dolphin/gx/GXLight.c: dolphin/gx/GXTexture.c: .text start:0x800CC5C0 end:0x800CD618 .data start:0x8013DB30 end:0x8013DD58 - .sdata start:0x801D3950 end:0x801D3958 + .sdata start:0x801D3950 end:0x801D3990 .sdata2 start:0x801D6460 end:0x801D6488 dolphin/gx/GXBump.c: @@ -855,6 +855,7 @@ dolphin/card/CARDBios.c: dolphin/card/CARDUnlock.c: .text start:0x800D1CC4 end:0x800D2F24 .data start:0x8013DF00 end:0x8013E060 + .sdata start:0x801D3990 end:0x801D3998 dolphin/card/CARDRdwr.c: .text start:0x800D2F24 end:0x800D31A4 @@ -895,6 +896,7 @@ dolphin/card/CARDStat.c: dolphin/card/CARDNet.c: .text start:0x800D70E0 end:0x800D71A4 + .sdata start:0x801D3998 end:0x801D39A0 dolphin/exi/EXIBios.c: .text start:0x800D71A4 end:0x800D8A78 @@ -925,11 +927,38 @@ dolphin/thp/THPDec.c: dolphin/thp/THPAudio.c: .text start:0x800E1A10 end:0x800E1F40 +Runtime.PPCEABI.H/__va_arg.c: + .text start:0x800E1F40 end:0x800E2008 + Runtime.PPCEABI.H/global_destructor_chain.c: .text start:0x800E2008 end:0x800E2068 .dtors start:0x8011DCE8 end:0x8011DCEC .sbss start:0x801D4758 end:0x801D4760 +Runtime.PPCEABI.H/__mem.c: + .init start:0x800033A8 end:0x800034E0 + +Runtime.PPCEABI.H/New.cp: + extab start:0x80005620 end:0x80005648 + extabindex start:0x80005700 end:0x8000570C + .text start:0x800E2068 end:0x800E20B4 + +Runtime.PPCEABI.H/NewMore.cp: + extab start:0x80005648 end:0x80005650 + extabindex start:0x8000570C end:0x80005718 + .text start:0x800E20B4 end:0x800E2108 + .rodata start:0x8011E4D0 end:0x8011E4F0 + .data start:0x8013E208 end:0x8013E218 + .sdata start:0x801D39A0 end:0x801D39A8 + +Runtime.PPCEABI.H/NMWException.cp: + extab start:0x80005650 end:0x80005670 + extabindex start:0x80005718 end:0x80005748 + .text start:0x800E2108 end:0x800E23CC + .text start:0x800E23CC end:0x800E2AA8 + .rodata start:0x8011E4F0 end:0x8011E508 + .sdata start:0x801D39A8 end:0x801D39B0 + Runtime.PPCEABI.H/__init_cpp_exceptions.cpp: .text start:0x800E2AA8 end:0x800E2B24 .ctors start:0x8011DCC0 end:0x8011DCC4 @@ -940,10 +969,192 @@ Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp: extab start:0x80005670 end:0x800056E4 extabindex start:0x80005748 end:0x8000579C .text start:0x800E2B24 end:0x800E3F5C - .rodata start:0x8011E4D0 end:0x8011E5A0 + .rodata start:0x8011E508 end:0x8011E5A0 .data start:0x8013E218 end:0x8013E300 .bss start:0x801A72D0 end:0x801A72E0 .sdata start:0x801D39B8 end:0x801D39C8 +Runtime.PPCEABI.H/GCN_mem_alloc.c: + .text start:0x800E3F5C end:0x800E4014 + .rodata start:0x8011E5A0 end:0x8011E618 + +MSL_C.PPCEABI.bare.H/abort_exit.c: + .text start:0x800E4014 end:0x800E4168 + .bss start:0x801A72E0 end:0x801A73E0 + .sbss start:0x801D4760 end:0x801D4770 + +MSL_C.PPCEABI.bare.H/alloc.c: + .text start:0x800E4168 end:0x800E46D0 + .rodata start:0x8011E618 end:0x8011E630 + .bss start:0x801A73E0 end:0x801A7418 + .sbss start:0x801D4770 end:0x801D4778 + +MSL_C.PPCEABI.bare.H/errno.c: + .sbss start:0x801D4778 end:0x801D4780 + +MSL_C.PPCEABI.bare.H/ansi_files.c: + .text start:0x800E46D0 end:0x800E47D8 + .data start:0x8013E300 end:0x8013E440 + .bss start:0x801A7418 end:0x801A7718 + +MSL_C.PPCEABI.bare.H/ansi_fp.c: + .text start:0x800E47D8 end:0x800E53F0 + .rodata start:0x8011E630 end:0x8011E710 + .data start:0x8013E440 end:0x8013E568 + .sdata2 start:0x801D6510 end:0x801D6518 + +MSL_C.PPCEABI.bare.H/arith.c: + .text start:0x800E53F0 end:0x800E5400 + +MSL_C.PPCEABI.bare.H/buffer_io.c: + .text start:0x800E5400 end:0x800E54F8 + +MSL_C.PPCEABI.bare.H/ctype.c: + .text start:0x800E54F8 end:0x800E5534 + .data start:0x8013E568 end:0x8013E768 + +MSL_C.PPCEABI.bare.H/direct_io.c: + .text start:0x800E5534 end:0x800E5860 + +MSL_C.PPCEABI.bare.H/file_io.c: + .text start:0x800E5860 end:0x800E5A58 + +MSL_C.PPCEABI.bare.H/FILE_POS.c: + .text start:0x800E5A58 end:0x800E5D24 + +MSL_C.PPCEABI.bare.H/mbstring.c: + .text start:0x800E5D24 end:0x800E5E68 + .sdata2 start:0x801D6518 end:0x801D6520 + +MSL_C.PPCEABI.bare.H/mem.c: + .text start:0x800E5E68 end:0x800E5FD8 + +MSL_C.PPCEABI.bare.H/mem_funcs.c: + .text start:0x800E5FD8 end:0x800E62B8 + +MSL_C.PPCEABI.bare.H/misc_io.c: + .text start:0x800E62B8 end:0x800E62C8 + +MSL_C.PPCEABI.bare.H/printf.c: + .text start:0x800E62C8 end:0x800E8364 + .rodata start:0x8011E710 end:0x8011E738 + .data start:0x8013E768 end:0x8013E998 + .sdata start:0x801D39C8 end:0x801D39D0 + .sdata2 start:0x801D6520 end:0x801D6528 + +MSL_C.PPCEABI.bare.H/float.c: + .sdata start:0x801D39D0 end:0x801D39D8 + +MSL_C.PPCEABI.bare.H/signal.c: + .text start:0x800E8364 end:0x800E8414 + .bss start:0x801A7718 end:0x801A7730 + +MSL_C.PPCEABI.bare.H/string.c: + .text start:0x800E8414 end:0x800E86C4 + +MSL_C.PPCEABI.bare.H/uart_console_io.c: + .text start:0x800E86C4 end:0x800E8790 + .sbss start:0x801D4780 end:0x801D4788 + +MSL_C.PPCEABI.bare.H/wchar_io.c: + .text start:0x800E8790 end:0x800E8818 + +MSL_C.PPCEABI.bare.H/e_acos.c: + .text start:0x800E8818 end:0x800E8B28 + .sdata2 start:0x801D6528 end:0x801D65B8 + +MSL_C.PPCEABI.bare.H/e_asin.c: + .text start:0x800E8B28 end:0x800E8D8C + .sdata2 start:0x801D65B8 end:0x801D6650 + +MSL_C.PPCEABI.bare.H/e_atan2.c: + .text start:0x800E8D8C end:0x800E901C + .sdata2 start:0x801D6650 end:0x801D66A8 + +MSL_C.PPCEABI.bare.H/e_fmod.c: + .text start:0x800E901C end:0x800E9358 + .rodata start:0x8011E738 end:0x8011E748 + +MSL_C.PPCEABI.bare.H/e_pow.c: + .text start:0x800E9358 end:0x800E9BE4 + .rodata start:0x8011E748 end:0x8011E778 + .sdata2 start:0x801D66A8 end:0x801D67B8 + +MSL_C.PPCEABI.bare.H/e_rem_pio2.c: + .text start:0x800E9BE4 end:0x800E9F84 + .rodata start:0x8011E778 end:0x8011E900 + .sdata2 start:0x801D67B8 end:0x801D6810 + +MSL_C.PPCEABI.bare.H/k_cos.c: + .text start:0x800E9F84 end:0x800EA078 + .sdata2 start:0x801D6810 end:0x801D6858 + +MSL_C.PPCEABI.bare.H/k_rem_pio2.c: + .text start:0x800EA078 end:0x800EAECC + .rodata start:0x8011E900 end:0x8011E950 + .sdata2 start:0x801D6858 end:0x801D6898 + +MSL_C.PPCEABI.bare.H/k_sin.c: + .text start:0x800EAECC end:0x800EAF6C + .sdata2 start:0x801D6898 end:0x801D68D0 + +MSL_C.PPCEABI.bare.H/k_tan.c: + .text start:0x800EAF6C end:0x800EB180 + .rodata start:0x8011E950 end:0x8011E9B8 + .sdata2 start:0x801D68D0 end:0x801D6908 + +MSL_C.PPCEABI.bare.H/s_atan.c: + .text start:0x800EB180 end:0x800EB380 + .rodata start:0x8011E9B8 end:0x8011EA50 + .sdata2 start:0x801D6908 end:0x801D6930 + +MSL_C.PPCEABI.bare.H/s_copysign.c: + .text start:0x800EB380 end:0x800EB3A8 + +MSL_C.PPCEABI.bare.H/s_cos.c: + .text start:0x800EB3A8 end:0x800EB47C + .sdata2 start:0x801D6930 end:0x801D6938 + +MSL_C.PPCEABI.bare.H/s_floor.c: + .text start:0x800EB47C end:0x800EB5C4 + .sdata2 start:0x801D6938 end:0x801D6948 + +MSL_C.PPCEABI.bare.H/s_frexp.c: + .text start:0x800EB5C4 end:0x800EB650 + .sdata2 start:0x801D6948 end:0x801D6950 + +MSL_C.PPCEABI.bare.H/s_ldexp.c: + .text start:0x800EB650 end:0x800EB814 + .sdata2 start:0x801D6950 end:0x801D6978 + +MSL_C.PPCEABI.bare.H/s_modf.c: + .text start:0x800EB814 end:0x800EB910 + +MSL_C.PPCEABI.bare.H/s_sin.c: + .text start:0x800EB910 end:0x800EB9E8 + .sdata2 start:0x801D6978 end:0x801D6980 + +MSL_C.PPCEABI.bare.H/s_tan.c: + .text start:0x800EB9E8 end:0x800EBA60 + .sdata2 start:0x801D6980 end:0x801D6988 + +MSL_C.PPCEABI.bare.H/w_acos.c: + .text start:0x800EBA60 end:0x800EBA80 + +MSL_C.PPCEABI.bare.H/w_asin.c: + .text start:0x800EBA80 end:0x800EBAA0 + +MSL_C.PPCEABI.bare.H/w_atan2.c: + .text start:0x800EBAA0 end:0x800EBAC0 + +MSL_C.PPCEABI.bare.H/w_fmod.c: + .text start:0x800EBAC0 end:0x800EBAE0 + +MSL_C.PPCEABI.bare.H/w_pow.c: + .text start:0x800EBAE0 end:0x800EBB00 + +MSL_C.PPCEABI.bare.H/math_ppc.c: + .text start:0x800EBB00 end:0x800EBBB4 + game/kerent.c: .text start:0x8011CCC4 end:0x8011DCA8 diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index dddeabfd..176c715a 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -7,8 +7,8 @@ __flush_cache = .init:0x80003374; // type:function size:0x34 scope:global memset = .init:0x800033A8; // type:function size:0x30 scope:global __fill_mem = .init:0x800033D8; // type:function size:0xB8 scope:global memcpy = .init:0x80003490; // type:function size:0x50 scope:global -fn_800034E0 = .init:0x800034E0; // type:function size:0x30 -fn_80003510 = .init:0x80003510; // type:function size:0x24 +TRK_memset = .init:0x800034E0; // type:function size:0x30 +TRK_memcpy = .init:0x80003510; // type:function size:0x24 gTRKInterruptVectorTable = .init:0x80003534; // type:label scope:global lbl_8000387C = .init:0x8000387C; // type:label lbl_800038E0 = .init:0x800038E0; // type:label @@ -2954,12 +2954,12 @@ acos = .text:0x800EBA60; // type:function size:0x20 asin = .text:0x800EBA80; // type:function size:0x20 atan2 = .text:0x800EBAA0; // type:function size:0x20 fmod = .text:0x800EBAC0; // type:function size:0x20 -log = .text:0x800EBAE0; // type:function size:0x20 -tanf = .text:0x800EBB00; // type:function size:0x24 -sinf = .text:0x800EBB24; // type:function size:0x24 -cosf = .text:0x800EBB48; // type:function size:0x24 -atan2f = .text:0x800EBB6C; // type:function size:0x24 -acosf = .text:0x800EBB90; // type:function size:0x24 +pow = .text:0x800EBAE0; // type:function size:0x20 +tanf = .text:0x800EBB00; // type:function size:0x24 scope:weak +sinf = .text:0x800EBB24; // type:function size:0x24 scope:weak +cosf = .text:0x800EBB48; // type:function size:0x24 scope:weak +atan2f = .text:0x800EBB6C; // type:function size:0x24 scope:weak +acosf = .text:0x800EBB90; // type:function size:0x24 scope:weak TRKNubMainLoop = .text:0x800EBBB4; // type:function size:0xF8 scope:global TRKDestructEvent = .text:0x800EBCAC; // type:function size:0x24 scope:global TRKConstructEvent = .text:0x800EBCD0; // type:function size:0x18 @@ -4656,24 +4656,28 @@ __THPJpegNaturalOrder = .rodata:0x8011E440; // type:object size:0x50 data:byte __THPAANScaleFactor = .rodata:0x8011E490; // type:object size:0x40 data:byte lbl_8011E4D0 = .rodata:0x8011E4D0; // type:object size:0x10 lbl_8011E4E0 = .rodata:0x8011E4E0; // type:object size:0x10 -lbl_8011E4F0 = .rodata:0x8011E4F0; // type:object size:0x18 data:double +__constants = .rodata:0x8011E4F0; // type:object size:0x18 scope:local data:double lbl_8011E508 = .rodata:0x8011E508; // type:object size:0x54 lbl_8011E55C = .rodata:0x8011E55C; // type:object size:0x14 lbl_8011E570 = .rodata:0x8011E570; // type:object size:0x10 lbl_8011E580 = .rodata:0x8011E580; // type:object size:0x20 lbl_8011E5A0 = .rodata:0x8011E5A0; // type:object size:0x38 lbl_8011E5D8 = .rodata:0x8011E5D8; // type:object size:0x40 -lbl_8011E618 = .rodata:0x8011E618; // type:object size:0x18 data:4byte +fix_pool_sizes = .rodata:0x8011E618; // type:object size:0x18 scope:local data:4byte lbl_8011E630 = .rodata:0x8011E630; // type:object size:0xE0 @stringBase0 = .rodata:0x8011E710; // type:object size:0x25 scope:local data:string_table -lbl_8011E738 = .rodata:0x8011E738; // type:object size:0x10 -lbl_8011E748 = .rodata:0x8011E748; // type:object size:0x30 data:double -lbl_8011E778 = .rodata:0x8011E778; // type:object size:0x108 -lbl_8011E880 = .rodata:0x8011E880; // type:object size:0x80 -lbl_8011E900 = .rodata:0x8011E900; // type:object size:0x10 -lbl_8011E910 = .rodata:0x8011E910; // type:object size:0x40 data:double -lbl_8011E950 = .rodata:0x8011E950; // type:object size:0x68 data:double -lbl_8011E9B8 = .rodata:0x8011E9B8; // type:object size:0x98 +Zero = .rodata:0x8011E738; // type:object size:0x10 scope:local +bp = .rodata:0x8011E748; // type:object size:0x10 scope:local data:double +dp_h = .rodata:0x8011E758; // type:object size:0x10 scope:local +dp_l = .rodata:0x8011E768; // type:object size:0x10 scope:local +two_over_pi = .rodata:0x8011E778; // type:object size:0x108 scope:local +npio2_hw = .rodata:0x8011E880; // type:object size:0x80 scope:local +init_jk = .rodata:0x8011E900; // type:object size:0x10 scope:local +PIo2 = .rodata:0x8011E910; // type:object size:0x40 scope:local data:double +T = .rodata:0x8011E950; // type:object size:0x68 scope:local data:double +atanhi = .rodata:0x8011E9B8; // type:object size:0x20 scope:local +atanlo = .rodata:0x8011E9D8; // type:object size:0x20 scope:local +aT = .rodata:0x8011E9F8; // type:object size:0x58 scope:local @62 = .rodata:0x8011EA50; // type:object size:0x1B scope:local data:string lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x20 lbl_8011EA90 = .rodata:0x8011EA90; // type:object size:0x10 data:4byte @@ -5350,16 +5354,16 @@ Si = .data:0x8013E0A0; // type:object size:0x14 scope:local data:4byte Type = .data:0x8013E0B4; // type:object size:0x10 scope:local XYNTSC = .data:0x8013E170; // type:object size:0x30 scope:local XYPAL = .data:0x8013E1A0; // type:object size:0x30 scope:local -lbl_8013E208 = .data:0x8013E208; // type:object size:0x10 +__vt__Q23std9exception = .data:0x8013E208; // type:object size:0x10 scope:weak jumptable_8013E218 = .data:0x8013E218; // type:object size:0x44 scope:local jumptable_8013E25C = .data:0x8013E25C; // type:object size:0x44 scope:local jumptable_8013E2A0 = .data:0x8013E2A0; // type:object size:0x44 scope:local lbl_8013E2E4 = .data:0x8013E2E4; // type:object size:0xC -lbl_8013E2F0 = .data:0x8013E2F0; // type:object size:0x10 +__vt__Q23std13bad_exception = .data:0x8013E2F0; // type:object size:0x10 scope:weak __files = .data:0x8013E300; // type:object size:0x140 scope:global jumptable_8013E440 = .data:0x8013E440; // type:object size:0x124 scope:local -lbl_8013E568 = .data:0x8013E568; // type:object size:0x100 -lbl_8013E668 = .data:0x8013E668; // type:object size:0x100 +__ctype_map = .data:0x8013E568; // type:object size:0x100 +__lower_map = .data:0x8013E668; // type:object size:0x100 @1249 = .data:0x8013E768; // type:object size:0x84 scope:local jumptable_8013E7EC = .data:0x8013E7EC; // type:object size:0x84 scope:local jumptable_8013E870 = .data:0x8013E870; // type:object size:0xE0 scope:local @@ -5606,12 +5610,12 @@ __THPLCWork640 = .bss:0x801A72AC; // type:object size:0xC scope:local __THPMCUBuffer = .bss:0x801A72B8; // type:object size:0x18 scope:local data:4byte fragmentinfo = .bss:0x801A72D0; // type:object size:0xC scope:local data:4byte __atexit_funcs = .bss:0x801A72E0; // type:object size:0x100 scope:local -stderr_buff = .bss:0x801A73E0; // type:object size:0x38 data:4byte -stdout_buff = .bss:0x801A7418; // type:object size:0x100 -stdin_buff = .bss:0x801A7518; // type:object size:0x100 -lbl_801A7618 = .bss:0x801A7618; // type:object size:0x100 -lbl_801A7718 = .bss:0x801A7718; // type:object size:0x18 -lbl_801A7730 = .bss:0x801A7730; // type:object size:0x28 +protopool$192 = .bss:0x801A73E0; // type:object size:0x38 scope:local data:4byte +stderr_buff = .bss:0x801A7418; // type:object size:0x100 scope:local +stdout_buff = .bss:0x801A7518; // type:object size:0x100 scope:local +stdin_buff = .bss:0x801A7618; // type:object size:0x100 scope:local +signal_funcs = .bss:0x801A7718; // type:object size:0x18 scope:local +gTRKEventQueue = .bss:0x801A7730; // type:object size:0x28 gTRKBigEndian = .bss:0x801A7758; // type:object size:0x4 scope:global data:4byte gTRKMsgBufs = .bss:0x801A7760; // type:object size:0x19B0 gTRKInputPendingPtr = .bss:0x801A9110; // type:object size:0x4 scope:global data:4byte @@ -5932,25 +5936,25 @@ gx = .sdata:0x801D3938; // type:object size:0x4 scope:global data:4byte tbl1$215 = .sdata:0x801D3940; // type:object size:0x4 scope:local tbl2$216 = .sdata:0x801D3944; // type:object size:0x4 scope:local tbl3$217 = .sdata:0x801D3948; // type:object size:0x4 scope:local -GX2HWFiltConv = .sdata:0x801D3950; // type:object size:0x6 -lbl_801D3958 = .sdata:0x801D3958; // type:object size:0x8 -lbl_801D3960 = .sdata:0x801D3960; // type:object size:0x8 -lbl_801D3968 = .sdata:0x801D3968; // type:object size:0x8 -lbl_801D3970 = .sdata:0x801D3970; // type:object size:0x8 -lbl_801D3978 = .sdata:0x801D3978; // type:object size:0x8 -lbl_801D3980 = .sdata:0x801D3980; // type:object size:0x8 -lbl_801D3988 = .sdata:0x801D3988; // type:object size:0x8 -lbl_801D3990 = .sdata:0x801D3990; // type:object size:0x8 data:4byte -lbl_801D3998 = .sdata:0x801D3998; // type:object size:0x8 data:2byte -lbl_801D39A0 = .sdata:0x801D39A0; // type:object size:0x8 -lbl_801D39A8 = .sdata:0x801D39A8; // type:object size:0x4 data:4byte -lbl_801D39AC = .sdata:0x801D39AC; // type:object size:0x4 data:4byte +GXTexMode0Ids = .sdata:0x801D3950; // type:object size:0x8 scope:local +GXTexMode1Ids = .sdata:0x801D3958; // type:object size:0x8 scope:local +GXTexImage0Ids = .sdata:0x801D3960; // type:object size:0x8 scope:local +GXTexImage1Ids = .sdata:0x801D3968; // type:object size:0x8 scope:local +GXTexImage2Ids = .sdata:0x801D3970; // type:object size:0x8 scope:local +GXTexImage3Ids = .sdata:0x801D3978; // type:object size:0x8 scope:local +GXTexTlutIds = .sdata:0x801D3980; // type:object size:0x8 scope:local +GX2HWFiltConv = .sdata:0x801D3988; // type:object size:0x6 scope:local +next = .sdata:0x801D3990; // type:object size:0x4 scope:local data:4byte +__CARDVendorID = .sdata:0x801D3998; // type:object size:0x2 data:2byte +__RTTI__Q23std9exception = .sdata:0x801D39A0; // type:object size:0x8 scope:local +thandler__3std = .sdata:0x801D39A8; // type:object size:0x4 scope:local data:4byte +uhandler__3std = .sdata:0x801D39AC; // type:object size:0x4 scope:local data:4byte fragmentID = .sdata:0x801D39B0; // type:object size:0x4 scope:local data:4byte __RTTI__Q23std9exception = .sdata:0x801D39B8; // type:object size:0x8 scope:local __RTTI__Q23std13bad_exception = .sdata:0x801D39C0; // type:object size:0x8 scope:local @wstringBase0 = .sdata:0x801D39C8; // type:object size:0x2 scope:local -lbl_801D39D0 = .sdata:0x801D39D0; // type:object size:0x4 data:float -lbl_801D39D4 = .sdata:0x801D39D4; // type:object size:0x4 data:float +__float_nan = .sdata:0x801D39D0; // type:object size:0x4 data:float +__float_huge = .sdata:0x801D39D4; // type:object size:0x4 data:float lbl_801D39D8 = .sdata:0x801D39D8; // type:object size:0x8 data:4byte lbl_801D39E0 = .sdata:0x801D39E0; // type:object size:0x8 lbl_801D39E8 = .sdata:0x801D39E8; // type:object size:0x8 @@ -6745,9 +6749,9 @@ __aborting = .sbss:0x801D4760; // type:object size:0x4 scope:global data:4byte __atexit_curr_func = .sbss:0x801D4764; // type:object size:0x4 scope:local data:4byte __stdio_exit = .sbss:0x801D4768; // type:object size:0x4 scope:global data:4byte __console_exit = .sbss:0x801D476C; // type:object size:0x4 scope:global data:4byte -lbl_801D4770 = .sbss:0x801D4770; // type:object size:0x8 data:byte -lbl_801D4778 = .sbss:0x801D4778; // type:object size:0x8 data:4byte -lbl_801D4780 = .sbss:0x801D4780; // type:object size:0x8 data:4byte +init$193 = .sbss:0x801D4770; // type:object size:0x1 scope:local data:byte +errno = .sbss:0x801D4778; // type:object size:0x4 data:4byte +initialized$16 = .sbss:0x801D4780; // type:object size:0x4 scope:local data:4byte lbl_801D4788 = .sbss:0x801D4788; // type:object size:0x4 data:4byte lbl_801D478C = .sbss:0x801D478C; // type:object size:0x1 data:byte lbl_801D4790 = .sbss:0x801D4790; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 798511c3..348d18a2 100644 --- a/configure.py +++ b/configure.py @@ -170,6 +170,15 @@ cflags_runtime = [ "-inline auto,deferred", ] +# Metrowerks library flags +cflags_msl = [ + *cflags_base, + "-use_lmw_stmw on", + "-str reuse,pool,readonly", + "-common off", + "-inline auto,deferred", +] + # REL flags cflags_rel = [ *cflags_base, @@ -485,9 +494,69 @@ config.libs = [ "cflags": cflags_runtime, "host": False, "objects": [ + Object(NonMatching, "Runtime.PPCEABI.H/__va_arg.c"), Object(Matching, "Runtime.PPCEABI.H/global_destructor_chain.c"), + Object(NonMatching, "Runtime.PPCEABI.H/__mem.c"), + Object(NonMatching, "Runtime.PPCEABI.H/New.cp"), + Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"), + Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cp"), Object(Matching, "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"), + Object(NonMatching, "Runtime.PPCEABI.H/GCN_mem_alloc.c"), + ], + }, + { + "lib": "MSL_C.PPCEABI.bare.H", + "mw_version": config.linker_version, + "cflags": cflags_msl, + "host": False, + "objects": [ + Object(NonMatching, "MSL_C.PPCEABI.bare.H/abort_exit.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/alloc.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/errno.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_files.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_fp.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/arith.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/buffer_io.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/ctype.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/direct_io.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/file_io.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/FILE_POS.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/mbstring.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem_funcs.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/misc_io.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/float.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/signal.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/string.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/uart_console_io.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/wchar_io.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_acos.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_asin.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_atan2.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_fmod.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_pow.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_rem_pio2.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_cos.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_rem_pio2.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_sin.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_tan.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_atan.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_copysign.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_cos.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_floor.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_frexp.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_ldexp.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_modf.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_sin.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_tan.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_acos.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_asin.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_atan2.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_fmod.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_pow.c"), + Object(NonMatching, "MSL_C.PPCEABI.bare.H/math_ppc.c"), ], }, {