Skip to content

Commit 74ee3b9

Browse files
committed
option to rdi_from_pdb for deterministic generation; omits non-intrinsic, build-dependent information
1 parent 2edb65b commit 74ee3b9

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

src/rdi_from_pdb/rdi_from_pdb.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ p2r_user2convert_from_cmdln(Arena *arena, CmdLine *cmdline)
9595
}
9696
}
9797

98-
//- rjf: define string -> flag bits
98+
//- rjf: define string -> section flag bits
9999
#define FlagNameMapXList \
100100
Case("sections", BinarySections)\
101101
Case("units", Units)\
@@ -114,7 +114,7 @@ Case("type_name_map", TypeNameMap)\
114114
Case("link_name_map", LinkNameProcedureNameMap)\
115115
Case("source_path_name_map",NormalSourcePathNameMap)\
116116

117-
//- rjf: get flags
117+
//- rjf: get section flags
118118
{
119119
result->flags = P2R_ConvertFlag_All;
120120
String8List only_names = cmd_line_strings(cmdline, str8_lit("only"));
@@ -142,6 +142,14 @@ Case("source_path_name_map",NormalSourcePathNameMap)\
142142
}
143143
}
144144

145+
//- rjf: get other flags
146+
{
147+
if(cmd_line_has_flag(cmdline, str8_lit("deterministic")))
148+
{
149+
result->flags |= P2R_ConvertFlag_Deterministic;
150+
}
151+
}
152+
145153
#undef FlagNameMapXList
146154
return result;
147155
}
@@ -3349,7 +3357,10 @@ p2r_convert(Arena *arena, P2R_User2Convert *in)
33493357
top_level_info.exe_name = str8_skip_last_slash(in->input_exe_name);
33503358
top_level_info.exe_hash = exe_hash;
33513359
top_level_info.voff_max = exe_voff_max;
3352-
top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL);
3360+
if(!(in->flags & P2R_ConvertFlag_Deterministic))
3361+
{
3362+
top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL);
3363+
}
33533364
}
33543365

33553366
//////////////////////////////////////////////////////////////

src/rdi_from_pdb/rdi_from_pdb.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ enum
2828
P2R_ConvertFlag_TypeNameMap = (1<<15),
2929
P2R_ConvertFlag_LinkNameProcedureNameMap= (1<<16),
3030
P2R_ConvertFlag_NormalSourcePathNameMap = (1<<17),
31+
P2R_ConvertFlag_Deterministic = (1<<18),
3132
P2R_ConvertFlag_All = 0xffffffff,
3233
};
3334

src/tester/tester_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ entry_point(CmdLine *cmdline)
6868
{
6969
String8 rdi_path = push_str8f(arena, "%S/repeat_%I64u.rdi", repeat_folder, repeat_idx);
7070
str8_list_push(arena, &rdi_paths, rdi_path);
71-
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));
71+
os_handle_list_push(arena, &processes, os_cmd_line_launchf("rdi_from_pdb --deterministic --pdb:%S --out:%S", pdb_path, rdi_path));
7272
}
7373
for(OS_HandleNode *n = processes.first; n != 0; n = n->next)
7474
{

0 commit comments

Comments
 (0)