Begin Fixing files for -sym on (#1952)

This commit is contained in:
jdflyer 2023-09-30 15:49:49 -06:00 committed by GitHub
parent 02e093fc76
commit c1a622058e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 19 additions and 135 deletions

1
.gitignore vendored
View File

@ -28,6 +28,7 @@ docs/doxygen/
# Python
__pycache__/
venv/
m2ctx.py
ctx.c

View File

@ -103,6 +103,8 @@ $(BUILD_DIR)/src/__start.o: CFLAGS := -Cpp_exceptions off -proc gekko -fp har
$(BUILD_DIR)/src/__start.o: MWCC_VERSION := 1.2.5
$(BUILD_DIR)/src/__start.o: CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc.exe
$(O_FILES_SYM_ON): CFLAGS += -sym on
# elf2dol needs to know these in order to calculate sbss correctly.
SDATA_PDHR := 9
SBSS_PDHR := 10

View File

@ -17,16 +17,16 @@ struct DynamicModuleControlBase {
/* 0x0C */ /*vtable*/
/* 802621CC */ virtual ~DynamicModuleControlBase();
/* 800188DC */ virtual const char* getModuleName() const { return NULL; };
/* 80263210 */ virtual int getModuleSize() const;
/* 80263200 */ virtual const char* getModuleTypeString() const;
/* 80263210 */ virtual int getModuleSize() const { return 0; };
/* 80263200 */ virtual const char* getModuleTypeString() const {return "Base";};
virtual void dump();
/* 80262470 */ static void dump();
/* 802631FC */ virtual void dump2();
/* 802631DC */ virtual bool do_load();
/* 802631F4 */ virtual BOOL do_load_async();
/* 802631E4 */ virtual bool do_unload();
/* 802631D4 */ virtual BOOL do_link();
/* 802631EC */ virtual bool do_unlink();
/* 802631FC */ virtual void dump2() {};
/* 802631DC */ virtual bool do_load() {return true;};
/* 802631F4 */ virtual BOOL do_load_async() {return true;};
/* 802631E4 */ virtual bool do_unload() {return true;};
/* 802631D4 */ virtual BOOL do_link() {return TRUE;};
/* 802631EC */ virtual bool do_unlink() {return true; };
/* 80262284 */ DynamicModuleControlBase();
/* 802622D0 */ BOOL link();
/* 80262364 */ BOOL unlink();
@ -42,8 +42,8 @@ struct DynamicModuleControlBase {
};
struct DynamicModuleControl : DynamicModuleControlBase {
/* 80263218 */ virtual const char* getModuleName() const { return mName; };
/* 800188E4 */ virtual ~DynamicModuleControl() {}
/* 80263218 */ virtual const char* getModuleName() const;
/* 80263000 */ virtual int getModuleSize() const;
/* 80263070 */ virtual const char* getModuleTypeString() const;
// virtual void dump();

View File

@ -1045,3 +1045,7 @@ RELS := \
$(BUILD_DIR)/rel/d/a/d_a_tboxSw.plf \
$(BUILD_DIR)/rel/d/a/d_a_title.plf \
$(BUILD_DIR)/rel/d/a/d_a_warp_bug.plf \
O_FILES_SYM_ON := \
$(BUILD_DIR)/src/c/c_dylink.o \
$(BUILD_DIR)/src/DynamicLink.o \

View File

@ -537,83 +537,23 @@ extern "C" void ModuleDestructorsX(void (**dtors)()) {
}
/* 802631D4-802631DC 25DB14 0008+00 1/0 0/0 0/0 .text do_link__24DynamicModuleControlBaseFv */
BOOL DynamicModuleControlBase::do_link() {
return TRUE;
}
/* 802631DC-802631E4 25DB1C 0008+00 1/0 0/0 0/0 .text do_load__24DynamicModuleControlBaseFv */
bool DynamicModuleControlBase::do_load() {
return true;
}
/* 802631E4-802631EC 25DB24 0008+00 1/0 0/0 0/0 .text do_unload__24DynamicModuleControlBaseFv */
bool DynamicModuleControlBase::do_unload() {
return true;
}
/* 802631EC-802631F4 25DB2C 0008+00 1/0 0/0 0/0 .text do_unlink__24DynamicModuleControlBaseFv */
bool DynamicModuleControlBase::do_unlink() {
return true;
}
/* 802631F4-802631FC 25DB34 0008+00 1/0 0/0 0/0 .text do_load_async__24DynamicModuleControlBaseFv
*/
BOOL DynamicModuleControlBase::do_load_async() {
return true;
}
/* 802631FC-80263200 25DB3C 0004+00 1/0 0/0 0/0 .text dump2__24DynamicModuleControlBaseFv
*/
void DynamicModuleControlBase::dump2() {
/* empty function */
}
/* 80263200-80263210 25DB40 0010+00 1/0 0/0 0/0 .text
* getModuleTypeString__24DynamicModuleControlBaseCFv */
const char* DynamicModuleControlBase::getModuleTypeString() const {
return "Base";
}
/* 80263210-80263218 25DB50 0008+00 1/0 0/0 0/0 .text getModuleSize__24DynamicModuleControlBaseCFv
*/
int DynamicModuleControlBase::getModuleSize() const {
return 0;
}
/* 80263218-80263220 25DB58 0008+00 1/0 0/0 0/0 .text getModuleName__20DynamicModuleControlCFv */
const char* DynamicModuleControl::getModuleName() const {
return mName;
}
extern "C" void dump__24DynamicModuleControlBaseFv();
extern "C" void __ct__20DynamicModuleControlFPCc();
extern "C" void mountCallback__20DynamicModuleControlFPv();
extern "C" void initialize__20DynamicModuleControlFv();
extern "C" void callback__20DynamicModuleControlFPv();
extern "C" void do_load__20DynamicModuleControlFv();
extern "C" void do_load_async__20DynamicModuleControlFv();
extern "C" void do_unload__20DynamicModuleControlFv();
extern "C" void dump2__20DynamicModuleControlFv();
extern "C" void do_link__20DynamicModuleControlFv();
extern "C" void do_unlink__20DynamicModuleControlFv();
extern "C" void getModuleSize__20DynamicModuleControlCFv();
extern "C" void getModuleTypeString__20DynamicModuleControlCFv();
extern "C" void getModuleName__20DynamicModuleControlCFv();
extern "C" void __dt__20DynamicModuleControlFv();
/* 803C34C0-803C34F4 0205E0 0034+00 1/1 2/2 0/0 .data __vt__20DynamicModuleControl */
SECTION_DATA extern void* __vt__20DynamicModuleControl[13] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__20DynamicModuleControlFv,
(void*)getModuleName__20DynamicModuleControlCFv,
(void*)getModuleSize__20DynamicModuleControlCFv,
(void*)getModuleTypeString__20DynamicModuleControlCFv,
(void*)dump__24DynamicModuleControlBaseFv,
(void*)dump2__20DynamicModuleControlFv,
(void*)do_load__20DynamicModuleControlFv,
(void*)do_load_async__20DynamicModuleControlFv,
(void*)do_unload__20DynamicModuleControlFv,
(void*)do_link__20DynamicModuleControlFv,
(void*)do_unlink__20DynamicModuleControlFv,
};

View File

@ -14,57 +14,6 @@
#include "global.h"
#include "m_Do/m_Do_ext.h"
//
// Forward References:
//
extern "C" static void cCc_Init__Fv();
extern "C" void cDyl_IsLinked__Fs();
extern "C" void cDyl_Unlink__Fs();
extern "C" void cDyl_LinkASync__Fs();
extern "C" static void cDyl_InitCallback__FPv();
extern "C" void cDyl_InitAsync__Fv();
extern "C" void cDyl_InitAsyncIsDone__Fv();
extern "C" s32 phase_01__7cDylPhsFPv();
extern "C" void phase_02__7cDylPhsFPs();
extern "C" bool phase_03__7cDylPhsFPv();
extern "C" void Link__7cDylPhsFP30request_of_phase_process_classs();
extern "C" void Unlink__7cDylPhsFP30request_of_phase_process_classs();
extern "C" bool getModuleName__24DynamicModuleControlBaseCFv();
extern "C" void __dt__20DynamicModuleControlFv();
extern "C" extern char const* const c_c_dylink__stringBase0;
//
// External References:
//
extern "C" void mDoExt_getArchiveHeap__Fv();
extern "C" void create__20mDoDvdThd_callback_cFPFPv_PvPv();
extern "C" void fopScnM_CreateReq__FssUsUl();
extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv();
extern "C" void __dt__24DynamicModuleControlBaseFv();
extern "C" void link__24DynamicModuleControlBaseFv();
extern "C" void unlink__24DynamicModuleControlBaseFv();
extern "C" void load_async__24DynamicModuleControlBaseFv();
extern "C" void __ct__20DynamicModuleControlFPCc();
extern "C" void initialize__20DynamicModuleControlFv();
extern "C" void becomeCurrentHeap__7JKRHeapFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void create__12JKRSolidHeapFUlP7JKRHeapb();
extern "C" void adjustSize__12JKRSolidHeapFv();
extern "C" void getGlbResource__13JKRFileLoaderFPCc();
extern "C" void detachResource__13JKRFileLoaderFPvP13JKRFileLoader();
extern "C" void mount__12JKRFileCacheFPCcP7JKRHeapPCc();
extern "C" void OSSetStringTable(void*);
extern "C" void _savegpr_23();
extern "C" void _restgpr_23();
extern "C" extern void* __vt__20DynamicModuleControl[13];
//
// Declarations:
//
/* 80374640-80375DE8 -00001 17A8+00 1/1 0/0 0/0 .rodata DynamicNameTable */
static DynamicNameTableEntry const DynamicNameTable[757] = {
{PROC_ALLDIE, "d_a_alldie"},
@ -827,7 +776,7 @@ static DynamicNameTableEntry const DynamicNameTable[757] = {
};
/* 803F0F50-803F1BB0 01DC70 0C60+00 4/4 0/0 0/0 .bss DMC */
static DynamicModuleControl* DMC[0x318];
static DynamicModuleControlBase* DMC[0x318];
/* 80450CA8-80450CAC 0001A8 0004+00 1/1 0/0 0/0 .sbss None */
static bool DMC_initialized;
@ -894,7 +843,7 @@ int cDyl_LinkASync(s16 i_ProfName) {
return cPhs_ERROR_e;
}
DynamicModuleControl* d = DMC[i_ProfName];
DynamicModuleControlBase* d = DMC[i_ProfName];
if (d != NULL) {
if (d->load_async()) {
if (d->link()) {
@ -1009,20 +958,8 @@ int cDylPhs::Unlink(request_of_phase_process_class* i_phase, s16 i_ProfName) {
/* 800188DC-800188E4 01321C 0008+00 0/0 1/0 0/0 .text getModuleName__24DynamicModuleControlBaseCFv
*/
// const char* DynamicModuleControlBase::getModuleName() const {
extern "C" bool getModuleName__24DynamicModuleControlBaseCFv() {
return false;
}
/* 800188E4-80018944 013224 0060+00 0/0 1/0 0/0 .text __dt__20DynamicModuleControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm DynamicModuleControl::~DynamicModuleControl() {
extern "C" asm void __dt__20DynamicModuleControlFv() {
nofralloc
#include "asm/c/c_dylink/__dt__20DynamicModuleControlFv.s"
}
#pragma pop
/* 80375DE8-80375DE8 002448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */