From 0b904f4e241c5c0b337a43f5a0e6b4d5f449a98c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 17:50:37 -0700 Subject: [PATCH] extract function size infer logic into its own block --- src/linker/lnk.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 9bd70879..c4df04e7 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1470,23 +1470,22 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, tp_arena, &obj_list, config->machine, unique_obj_input_list.count, input_obj_arr); - // // if the machine was omitted on the command line, derive machine from obj - // if (config->machine == COFF_MachineType_Unknown) { for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; obj_idx += 1) { if (obj_node_arr.v[obj_idx].data.header.machine != COFF_MachineType_Unknown) { config->machine = obj_node_arr.v[obj_idx].data.header.machine; - - if (config->infer_function_pad_min) { - config->function_pad_min = lnk_get_default_function_pad_min(config->machine); - } - break; } } } + // infer minimal padding size for functions from the target machine + if (config->machine != COFF_MachineType_Unknown && config->infer_function_pad_min) { + config->function_pad_min = lnk_get_default_function_pad_min(config->machine); + config->infer_function_pad_min = 0; + } + ProfBegin("Handle Directives"); for EachIndex(obj_idx, obj_node_arr.count) { LNK_Obj *obj = &obj_node_arr.v[obj_idx].data;