move delay load helper to mscrt layer

This commit is contained in:
Nikita Smith
2025-07-25 16:05:04 -07:00
parent 0e9f2ee03c
commit 0b37fac81c
3 changed files with 18 additions and 7 deletions
+1 -7
View File
@@ -1729,13 +1729,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config)
} break;
case State_PushDllHelperUndefSymbol: {
ProfBegin("Push Dll Helper Undef Symbol");
switch (config->machine) {
case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break;
case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME); break;
default: { NotImplemented; } break;
}
delay_load_helper_name = mscrt_delay_load_helper_name_from_machine(config->machine);
str8_list_push(scratch.arena, &include_symbol_list, delay_load_helper_name);
ProfEnd();
} break;
+13
View File
@@ -1,6 +1,19 @@
// Copyright (c) Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/)
internal String8
mscrt_delay_load_helper_name_from_machine(COFF_MachineType machine)
{
String8 delay_load_helper_name = str8_zero();
switch (machine) {
case COFF_MachineType_Unknown: break;
case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break;
case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME); break;
default: { NotImplemented; } break;
}
return delay_load_helper_name;
}
internal U64
mscrt_parse_func_info(Arena *arena,
String8 raw_data,
+4
View File
@@ -343,6 +343,10 @@ typedef struct MSCRT_ParsedFuncInfoV4
MSCRT_IP2State32V4 ip2state_map;
} MSCRT_ParsedFuncInfoV4;
//- Delay Load Helper
internal String8 mscrt_delay_load_helper_name_from_machine(COFF_MachineType machine);
//- Exception info < v4
internal U64 mscrt_parse_func_info(Arena *arena, String8 raw_data, U64 section_count, COFF_SectionHeader *sections, U64 off, MSCRT_FuncInfo *func_info);