option to rdi_from_pdb for deterministic generation; omits non-intrinsic, build-dependent information

This commit is contained in:
Ryan Fleury
2024-10-16 12:47:10 -07:00
parent 2edb65b5bd
commit 74ee3b9850
3 changed files with 16 additions and 4 deletions
+14 -3
View File
@@ -95,7 +95,7 @@ p2r_user2convert_from_cmdln(Arena *arena, CmdLine *cmdline)
}
}
//- rjf: define string -> flag bits
//- rjf: define string -> section flag bits
#define FlagNameMapXList \
Case("sections", BinarySections)\
Case("units", Units)\
@@ -114,7 +114,7 @@ Case("type_name_map", TypeNameMap)\
Case("link_name_map", LinkNameProcedureNameMap)\
Case("source_path_name_map",NormalSourcePathNameMap)\
//- rjf: get flags
//- rjf: get section flags
{
result->flags = P2R_ConvertFlag_All;
String8List only_names = cmd_line_strings(cmdline, str8_lit("only"));
@@ -142,6 +142,14 @@ Case("source_path_name_map",NormalSourcePathNameMap)\
}
}
//- rjf: get other flags
{
if(cmd_line_has_flag(cmdline, str8_lit("deterministic")))
{
result->flags |= P2R_ConvertFlag_Deterministic;
}
}
#undef FlagNameMapXList
return result;
}
@@ -3349,7 +3357,10 @@ p2r_convert(Arena *arena, P2R_User2Convert *in)
top_level_info.exe_name = str8_skip_last_slash(in->input_exe_name);
top_level_info.exe_hash = exe_hash;
top_level_info.voff_max = exe_voff_max;
top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL);
if(!(in->flags & P2R_ConvertFlag_Deterministic))
{
top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL);
}
}
//////////////////////////////////////////////////////////////
+1
View File
@@ -28,6 +28,7 @@ enum
P2R_ConvertFlag_TypeNameMap = (1<<15),
P2R_ConvertFlag_LinkNameProcedureNameMap= (1<<16),
P2R_ConvertFlag_NormalSourcePathNameMap = (1<<17),
P2R_ConvertFlag_Deterministic = (1<<18),
P2R_ConvertFlag_All = 0xffffffff,
};
+1 -1
View File
@@ -68,7 +68,7 @@ entry_point(CmdLine *cmdline)
{
String8 rdi_path = push_str8f(arena, "%S/repeat_%I64u.rdi", repeat_folder, repeat_idx);
str8_list_push(arena, &rdi_paths, rdi_path);
os_handle_list_push(arena, &processes, os_cmd_line_launchf("rdi_from_pdb --pdb:%S --out:%S > %S/repeat_%I64u.dump", pdb_path, rdi_path, repeat_folder, repeat_idx));
os_handle_list_push(arena, &processes, os_cmd_line_launchf("rdi_from_pdb --deterministic --pdb:%S --out:%S", pdb_path, rdi_path));
}
for(OS_HandleNode *n = processes.first; n != 0; n = n->next)
{