From 42bed0e5c621929e8048a3d9ac0c13657d55a96d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 14:00:21 -0700 Subject: [PATCH] merge delayed data section with .data --- src/linker/lnk.c | 2 +- src/linker/lnk_debug_info.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 0e4d4f3d..a7a2cdab 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -216,7 +216,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DIR=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DATA=.rdata"); diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 81659304..1d0341ec 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -3001,6 +3001,7 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) } else { sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); Assert(sect_number < task->image_section_file_ranges.count); + sect_data = str8_substr(task->image_data, rng_1u64(obj_sect_header->foff, obj_sect_header->foff + obj_sect_header->fsize)); sect_off = obj_sect_header->foff - task->image_section_file_ranges.v[sect_number].min; data_crc = update_crc32(0, sect_data.str, sect_data.size); }