From edd17e566c3baad1c194cf308ec626e88277d70d Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Tue, 7 Jul 2026 13:54:11 -0400 Subject: [PATCH] libcmt: Map out rtti.obj a little better --- config/BW1W120/splits.txt | 6 +++++- config/BW1W120/symbols.txt | 24 +++++++++++------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/config/BW1W120/splits.txt b/config/BW1W120/splits.txt index a4d9b08c..694165bc 100644 --- a/config/BW1W120/splits.txt +++ b/config/BW1W120/splits.txt @@ -2670,7 +2670,11 @@ lib/libcmt/sprintf.obj: .text start:0x007C57D2 end:0x007C5824 align:1 lib/libcmt/rtti.obj: - .text start:0x007C5824 end:0x007C5874 align:1 + .text start:0x007C5824 end:0x007C5E49 align:1 + .rdata start:0x009A05C8 end:0x009A0698 align:4 + .rdata$r start:0x009BB898 end:0x009BB984 align:4 + .xdata$x start:0x009BE430 end:0x009BE4F0 align:4 + .data start:0x00C2D3C0 end:0x00C2D41C align:4 lib/libcmt/toupper.obj: .text start:0x007C5E49 end:0x007C5F8C align:1 diff --git a/config/BW1W120/symbols.txt b/config/BW1W120/symbols.txt index 36649002..db07844d 100644 --- a/config/BW1W120/symbols.txt +++ b/config/BW1W120/symbols.txt @@ -18251,7 +18251,7 @@ ___Wcrtomb_lk = .text:0x007B302F; // type:function scope:global __Getcoll = .text:0x007B30A2; // type:function scope:global _wctob = .text:0x007B327D; // type:function scope:global ?_Nomemory@std@@YAXXZ = .text:0x007B32AB; // type:function scope:global -??0bad_typeid@@QAE@PBD@Z = .text:0x007B32F6; // type:function scope:global +??0bad_typeid@@QAE@PBD@Z = .text:0x007B32F6; // type:function scope:global comdat fn_007B330F = .text:0x007B330F; // type:function size:0xB bad_alloc_std_vfunc2 = .text:0x007B331A; // type:function bad_alloc_std_vfunc0 = .text:0x007B3337; // type:function @@ -18885,14 +18885,13 @@ ___RTCastToVoid = .text:0x007C5824; // type:function scope:global fn_007C5874 = .text:0x007C5874; // type:function size:0x14 fn_007C5888 = .text:0x007C5888; // type:function size:0x1E ??0__non_rtti_object@@QAE@PBD@Z = .text:0x007C58A6; // type:function scope:global -??_E__non_rtti_object@@UAEPAXI@Z = .text:0x007C58C8; // type:function size:0x1C scope:global +??_G__non_rtti_object@@UAEPAXI@Z = .text:0x007C58C8; // type:function size:0x1C scope:global ??1__non_rtti_object@@UAE@XZ = .text:0x007C58E4; // type:function size:0x5 scope:global ??0__non_rtti_object@@QAE@ABV0@@Z = .text:0x007C58E9; // type:function size:0x18 scope:global ??0bad_typeid@@QAE@ABV0@@Z = .text:0x007C5901; // type:function size:0x18 scope:global -??_Ebad_typeid@@UAEPAXI@Z = .text:0x007C5919; // type:function size:0x1C scope:global +??_Gbad_typeid@@UAEPAXI@Z = .text:0x007C5919; // type:function size:0x1C scope:global ??1bad_typeid@@UAE@XZ = .text:0x007C5935; // type:function size:0x5 scope:global -___RTtypeid = .text:0x007C593A; // type:function size:0x94 scope:global -fn_007C59CE = .text:0x007C59CE; // type:function size:0x14 +___RTtypeid = .text:0x007C593A; // type:function scope:global fn_007C59E2 = .text:0x007C59E2; // type:function size:0x1E fn_0x007c5a00 = .text:0x007C5A00; // type:function scope:global ___RTDynamicCast = .text:0x007C5A19; // type:function scope:global @@ -18901,7 +18900,7 @@ fn_007C5B12 = .text:0x007C5B12; // type:function size:0x1E ??_Ebad_cast@@UAEPAXI@Z = .text:0x007C5B48; // type:function size:0x1C scope:global ??1bad_cast@@UAE@XZ = .text:0x007C5B64; // type:function size:0x5 scope:global ??0bad_cast@@QAE@ABV0@@Z = .text:0x007C5B69; // type:function size:0x18 scope:global -?FindCompleteObject@@YAPAXPAPAX@Z = .text:0x007C5B81; // type:function scope:local +?FindCompleteObject@@YAPAXPAPAX@Z = .text:0x007C5B81; // type:function scope:global ?FindSITargetTypeInstance@@YAPBU_s_RTTIBaseClassDescriptor@@PAXPBU_s_RTTICompleteObjectLocator@@PAUTypeDescriptor@@H2@Z = .text:0x007C5B9B; // type:function scope:local ?FindMITargetTypeInstance@@YAPBU_s_RTTIBaseClassDescriptor@@PAXPBU_s_RTTICompleteObjectLocator@@PAUTypeDescriptor@@H2@Z = .text:0x007C5BF5; // type:function scope:local ?FindVITargetTypeInstance@@YAPBU_s_RTTIBaseClassDescriptor@@PAXPBU_s_RTTICompleteObjectLocator@@PAUTypeDescriptor@@H2@Z = .text:0x007C5CEE; // type:function scope:local @@ -24493,12 +24492,12 @@ lbl_009A05C0 = .rdata:0x009A05C0; // type:object size:0x4 lbl_009A05C4 = .rdata:0x009A05C4; // type:object size:0x4 ??_C@_0CB@FCJM@Access?5violation?5?9?5no?5RTTI?5data?$CB@ = .rdata:0x009A05C8; // type:object size:0x28 scope:global data:string $T17004 = .rdata:0x009A05F0; // type:object size:0x10 scope:local -lbl_009A0600 = .rdata:0x009A0600; // type:object size:0xC +??_7__non_rtti_object@@6B@ = .rdata:0x009A0600; // type:object size:0xC ??_7bad_typeid@@6B@ = .rdata:0x009A060C; // type:object size:0x8 ??_C@_0CB@OFOA@Bad?5read?5pointer?5?9?5no?5RTTI?5data?$CB@ = .rdata:0x009A0614; // type:object size:0x24 scope:global data:string ??_C@_0CE@DOMJ@Attempted?5a?5typeid?5of?5NULL?5point@ = .rdata:0x009A0638; // type:object size:0x28 scope:global data:string $T17039 = .rdata:0x009A0660; // type:object size:0xC -lbl_009A066C = .rdata:0x009A066C; // type:object size:0x14 data:string +??_C@_0BC@OEMP@Bad?5dynamic_cast?$CB?$AA@ = .rdata:0x009A066C; // type:object size:0x14 data:string $T17057 = .rdata:0x009A0680; // type:object size:0x10 ??_7bad_cast@@6B@ = .rdata:0x009A0690; // type:object size:0x8 $T16962 = .rdata:0x009A0698; // type:object size:0x18 @@ -29873,7 +29872,7 @@ lbl_009BBC6C = .rdata:0x009BBC6C; // type:object size:0x3C ??_R4ostream_withassign@@6B@ = .rdata:0x009BBCA8; // type:object size:0x14 lbl_009BBCBC = .rdata:0x009BBCBC; // type:object size:0x104 data_0x009bbdc0 = .rdata:0x009BBDC0; // type:object size:0x8 -__CT??_R0?AVexception@@@8??0exception@@QAE@ABV0@@Z12 = .rdata:0x009BBDC8; // type:object size:0xC scope:global +__CT??_R0?AVexception@@@8??0exception@@QAE@ABV0@@Z12 = .rdata:0x009BBDC8; // type:object size:0xC scope:global comdat lbl_009BBDD4 = .rdata:0x009BBDD4; // type:object size:0x654 __CT??_R0?AVlogic_error@std@@@8??0logic_error@std@@QAE@ABV01@@Z28 = .rdata:0x009BC428; // type:object size:0x20 scope:global __CT??_R0?AVlength_error@std@@@8??0length_error@std@@QAE@ABV01@@Z28 = .rdata:0x009BC448; // type:object size:0x20 scope:global @@ -29889,10 +29888,9 @@ __CTA3?AV__non_rtti_object@@ = .rdata:0x009BE470; // type:object size:0x10 scope __TI3?AV__non_rtti_object@@ = .rdata:0x009BE480; // type:object size:0x10 scope:global __CTA2?AVbad_typeid@@ = .rdata:0x009BE490; // type:object size:0x10 scope:global __TI2?AVbad_typeid@@ = .rdata:0x009BE4A0; // type:object size:0x10 scope:global -__CT??_R0?AVbad_cast@@@8??0bad_cast@@QAE@ABV0@@Z12 = .rdata:0x009BE4B0; // type:object size:0xC scope:global -lbl_009BE4BC = .rdata:0x009BE4BC; // type:object size:0x14 +__CT??_R0?AVbad_cast@@@8??0bad_cast@@QAE@ABV0@@Z12 = .rdata:0x009BE4B0; // type:object size:0x20 scope:global __CTA2?AVbad_cast@@ = .rdata:0x009BE4D0; // type:object size:0x10 scope:global -lbl_009BE4E0 = .rdata:0x009BE4E0; // type:object size:0x7084 +__TI2?AVbad_cast@@ = .rdata:0x009BE4E0; // type:object size:0x10 ___xc_a = .data:0x009C6000; // type:object size:0x4 scope:global ___xc_z = .data:0x009C7E3C; // type:object size:0x4 scope:global ___xi_a = .data:0x009C7E40; // type:object size:0x4 scope:global @@ -31521,7 +31519,7 @@ lbl_00C2D3A0 = .data:0x00C2D3A0; // type:object size:0x8 ??_R0?AVbad_typeid@@@8 = .data:0x00C2D3C0; // type:object size:0x19 ??_R0?AV__non_rtti_object@@@8 = .data:0x00C2D3E0; // type:object size:0x20 ??_R0?AVbad_cast@@@8 = .data:0x00C2D400; // type:object size:0x17 -lbl_00C2D417 = .data:0x00C2D417; // type:object size:0x89 +lbl_00C2D417 = .data:0x00C2D417; // type:object size:0x5 __NLG_Destination = .data:0x00C2D4A4; // type:object size:0x10 scope:global _errtable = .data:0x00C2D668; // type:object size:0x8 scope:local lbl_00C2D670 = .data:0x00C2D670; // type:object size:0x4