@@ -40,6 +40,7 @@ typedef enum
40
40
LNK_CmdSwitch_ManifestFile ,
41
41
LNK_CmdSwitch_ManifestInput ,
42
42
LNK_CmdSwitch_ManifestUac ,
43
+ LNK_CmdSwitch_Merge ,
43
44
LNK_CmdSwitch_Natvis ,
44
45
LNK_CmdSwitch_NoDefaultLib ,
45
46
LNK_CmdSwitch_NoExp ,
@@ -73,18 +74,23 @@ typedef enum
73
74
LNK_CmdSwitch_DependentLoadFlag ,
74
75
LNK_CmdSwitch_Driver ,
75
76
LNK_CmdSwitch_DisallowLib ,
77
+ LNK_CmdSwitch_EditAndContinue ,
76
78
LNK_CmdSwitch_EmitVolatileMetadata ,
77
79
LNK_CmdSwitch_ErrorReport ,
78
80
LNK_CmdSwitch_Export ,
79
81
LNK_CmdSwitch_ExportAdmin ,
80
82
LNK_CmdSwitch_FastGenProfile ,
83
+ LNK_CmdSwitch_FailIfMismatch ,
81
84
LNK_CmdSwitch_Force ,
82
85
LNK_CmdSwitch_Guard ,
86
+ LNK_CmdSwitch_GuardSym ,
83
87
LNK_CmdSwitch_GenProfile ,
84
88
LNK_CmdSwitch_IdlOut ,
85
89
LNK_CmdSwitch_IgnoreIdl ,
86
90
LNK_CmdSwitch_Ilk ,
87
91
LNK_CmdSwitch_IntegrityCheck ,
92
+ LNK_CmdSwitch_InferAsanLibs ,
93
+ LNK_CmdSwitch_InferAsanLibsNo ,
88
94
LNK_CmdSwitch_Kernel ,
89
95
LNK_CmdSwitch_KeyContainer ,
90
96
LNK_CmdSwitch_KeyFile ,
@@ -94,7 +100,6 @@ typedef enum
94
100
LNK_CmdSwitch_LtcgOut ,
95
101
LNK_CmdSwitch_Map ,
96
102
LNK_CmdSwitch_MapInfo ,
97
- LNK_CmdSwitch_Merge ,
98
103
LNK_CmdSwitch_Midl ,
99
104
LNK_CmdSwitch_NoAssembly ,
100
105
LNK_CmdSwitch_NoEntry ,
@@ -108,6 +113,7 @@ typedef enum
108
113
LNK_CmdSwitch_Stub ,
109
114
LNK_CmdSwitch_SwapRun ,
110
115
LNK_CmdSwitch_TlbId ,
116
+ LNK_CmdSwitch_ThrowingNew ,
111
117
LNK_CmdSwitch_UserProfile ,
112
118
LNK_CmdSwitch_Verbose ,
113
119
LNK_CmdSwitch_Version ,
@@ -281,7 +287,6 @@ typedef struct LNK_Config
281
287
Version subsystem_ver ;
282
288
PE_ImageFileCharacteristics file_characteristics ;
283
289
PE_DllCharacteristics dll_characteristics ;
284
- String8 user_entry_point_name ;
285
290
String8 entry_point_name ;
286
291
String8List lib_dir_list ;
287
292
PathStyle path_style ;
@@ -471,9 +476,9 @@ internal B32 lnk_cmd_line_has_switch(LNK_CmdLine cmd_line, LNK_CmdSw
471
476
////////////////////////////////
472
477
// Errors
473
478
474
- internal void lnk_error_cmd_switch (LNK_ErrorCode code , LNK_CmdSwitchType cmd_switch , char * fmt , ...);
475
- internal void lnk_error_cmd_switch_invalid_param_count (LNK_ErrorCode code , LNK_CmdSwitchType cmd_switch );
476
- internal void lnk_error_cmd_switch_invalid_param (LNK_ErrorCode code , LNK_CmdSwitchType cmd_switch , String8 param );
479
+ internal void lnk_error_cmd_switch (LNK_ErrorCode code , String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , char * fmt , ...);
480
+ internal void lnk_error_cmd_switch_invalid_param_count (LNK_ErrorCode code , String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch );
481
+ internal void lnk_error_cmd_switch_invalid_param (LNK_ErrorCode code , String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8 param );
477
482
478
483
////////////////////////////////
479
484
// Getters
@@ -488,24 +493,26 @@ internal B32 lnk_do_debug_info(LNK_Config *config);
488
493
////////////////////////////////
489
494
// Specialized Parsers
490
495
491
- internal B32 lnk_cmd_switch_parse_version (String8List value_strings , LNK_CmdSwitchType cmd_switch , Version * ver_out );
492
- internal B32 lnk_cmd_switch_parse_tuple (String8List value_strings , LNK_CmdSwitchType cmd_switch , Rng1U64 * tuple_out );
493
- internal B32 lnk_cmd_switch_parse_u64 (String8List value_strings , LNK_CmdSwitchType cmd_switch , U64 * value_out , LNK_ParseU64Flags flags );
494
- internal B32 lnk_cmd_switch_parse_u32 (String8List value_strings , LNK_CmdSwitchType cmd_switch , U32 * value_out , LNK_ParseU64Flags flags );
495
- internal B32 lnk_cmd_switch_parse_flag (String8List value_strings , LNK_CmdSwitchType cmd_switch , LNK_SwitchState * value_out );
496
- internal void lnk_cmd_switch_set_flag_inv_16 (String8List value_strings , LNK_CmdSwitchType cmd_switch , U16 * flags , U16 bits );
497
- internal void lnk_cmd_switch_set_flag_inv_64 (String8List value_strings , LNK_CmdSwitchType cmd_switch , U64 * flags , U64 bits );
498
- internal void lnk_cmd_switch_set_flag_16 (String8List value_strings , LNK_CmdSwitchType cmd_switch , U16 * flags , U16 bits );
499
- internal void lnk_cmd_switch_set_flag_32 (String8List value_strings , LNK_CmdSwitchType cmd_switch , U32 * flags , U32 bits );
500
- internal void lnk_cmd_switch_set_flag_64 (String8List value_strings , LNK_CmdSwitchType cmd_switch , U64 * flags , U64 bits );
501
- internal B32 lnk_cmd_switch_parse_string (String8List value_strings , LNK_CmdSwitchType cmd_switch , String8 * string_out );
502
- internal void lnk_cmd_switch_parse_string_copy (Arena * arena , String8List value_strings , LNK_CmdSwitchType cmd_switch , String8 * string_out );
496
+ internal B32 lnk_cmd_switch_parse_version (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , Version * ver_out );
497
+ internal B32 lnk_cmd_switch_parse_tuple (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , Rng1U64 * tuple_out );
498
+ internal B32 lnk_cmd_switch_parse_u64 (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , U64 * value_out , LNK_ParseU64Flags flags );
499
+ internal B32 lnk_cmd_switch_parse_u32 (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , U32 * value_out , LNK_ParseU64Flags flags );
500
+ internal B32 lnk_cmd_switch_parse_flag (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , LNK_SwitchState * value_out );
501
+ internal void lnk_cmd_switch_set_flag_inv_16 (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , U16 * flags , U16 bits );
502
+ internal void lnk_cmd_switch_set_flag_inv_64 (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , U64 * flags , U64 bits );
503
+ internal void lnk_cmd_switch_set_flag_16 (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , U16 * flags , U16 bits );
504
+ internal void lnk_cmd_switch_set_flag_32 (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , U32 * flags , U32 bits );
505
+ internal void lnk_cmd_switch_set_flag_64 (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , U64 * flags , U64 bits );
506
+ internal B32 lnk_cmd_switch_parse_string (String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , String8 * string_out );
507
+ internal void lnk_cmd_switch_parse_string_copy (Arena * arena , String8 obj_path , String8 lib_path , LNK_CmdSwitchType cmd_switch , String8List value_strings , String8 * string_out );
503
508
504
509
internal B32 lnk_parse_alt_name_directive (Arena * arena , String8 input , LNK_AltNameList * list_out );
505
510
internal String8 * lnk_parse_alt_name_directive_list (Arena * arena , String8List list , LNK_AltNameList * list_out );
506
511
507
512
////////////////////////////////
508
513
514
+ internal void lnk_apply_cmd_option_to_config (Arena * arena , LNK_Config * config , String8 name , String8List value_list , String8 obj_path , String8 lib_path );
515
+
509
516
internal LNK_Config * lnk_config_from_raw_cmd_line (Arena * arena , String8List raw_cmd_line );
510
517
internal LNK_Config * lnk_build_config (Arena * arena , int argc , char * * argv );
511
518
0 commit comments