[Dexter][NFC] Add Missing Commands to Commands.md Contents
[llvm-project.git] / lld / MachO / Options.td
blob353ef03455bfdf85f2ff0d1ab5004a432b031c2d
1 include "llvm/Option/OptParser.td"
3 def help : Flag<["-", "--"], "help">;
4 def help_hidden : Flag<["--"], "help-hidden">,
5   HelpText<"Display help for hidden options">;
7 // This is a complete Options.td compiled from Apple's ld(1) manpage
8 // dated 2018-03-07 and cross checked with ld64 source code in repo
9 // https://github.com/apple-opensource/ld64 at git tag "512.4" dated
10 // 2018-03-18.
12 // Flags<[HelpHidden]> marks options that are not yet ported to lld,
13 // and serve as a scoreboard for annotating our progress toward
14 // implementing ld64 options in lld. As you add implementions to
15 // Driver.cpp, please remove the hidden flag here.
17 def grp_kind : OptionGroup<"kind">, HelpText<"OUTPUT KIND">;
19 def execute : Flag<["-"], "execute">,
20      HelpText<"Produce a main executable (default)">,
21      Flags<[HelpHidden]>,
22      Group<grp_kind>;
23 def dylib : Flag<["-"], "dylib">,
24      HelpText<"Produce a shared library">,
25      Group<grp_kind>;
26 def bundle : Flag<["-"], "bundle">,
27      HelpText<"Produce a bundle">,
28      Flags<[HelpHidden]>,
29      Group<grp_kind>;
30 def r : Flag<["-"], "r">,
31      HelpText<"Merge multiple object files into one, retaining relocations">,
32      Flags<[HelpHidden]>,
33      Group<grp_kind>;
34 def dylinker : Flag<["-"], "dylinker">,
35      HelpText<"Produce a dylinker only used when building dyld">,
36      Flags<[HelpHidden]>,
37      Group<grp_kind>;
38 def dynamic : Flag<["-"], "dynamic">,
39      HelpText<"Link dynamically (default)">,
40      Group<grp_kind>;
41 def static : Flag<["-"], "static">,
42      HelpText<"Link statically">,
43      Flags<[HelpHidden]>,
44      Group<grp_kind>;
45 def preload : Flag<["-"], "preload">,
46      HelpText<"Produce an unsegmented binary for embedded systems">,
47      Flags<[HelpHidden]>,
48      Group<grp_kind>;
49 def arch : Separate<["-"], "arch">,
50      MetaVarName<"<arch_name>">,
51      HelpText<"The architecture (e.g. ppc, ppc64, i386, x86_64)">,
52      Group<grp_kind>;
53 def o : Separate<["-"], "o">,
54      MetaVarName<"<path>">,
55      HelpText<"The name of the output file (default: `a.out')">,
56      Group<grp_kind>;
58 def grp_libs : OptionGroup<"libs">, HelpText<"LIBRARIES">;
60 def l : Joined<["-"], "l">,
61      MetaVarName<"<name>">,
62      HelpText<"Search for lib<name>.dylib or lib<name>.a on the library search path">,
63      Group<grp_libs>;
64 def weak_l : Joined<["-"], "weak-l">,
65      MetaVarName<"<name>">,
66      HelpText<"Like -l<name>, but mark library and its references as weak imports">,
67      Group<grp_libs>;
68 def weak_library : Separate<["-"], "weak_library">,
69      MetaVarName<"<path>">,
70      HelpText<"Like bare <path>, but mark library and its references as weak imports">,
71      Group<grp_libs>;
72 def reexport_l : Joined<["-"], "reexport-l">,
73      MetaVarName<"<name>">,
74      HelpText<"Like -l<name>, but export all symbols of <name> from newly created library">,
75      Flags<[HelpHidden]>,
76      Group<grp_libs>;
77 def reexport_library : Separate<["-"], "reexport_library">,
78      MetaVarName<"<path>">,
79      HelpText<"Like bare <path>, but export all symbols of <path> from newly created library">,
80      Flags<[HelpHidden]>,
81      Group<grp_libs>;
82 def upward_l : Joined<["-"], "upward-l">,
83      MetaVarName<"<name>">,
84      HelpText<"Like -l<name>, but specify dylib as an upward dependency">,
85      Flags<[HelpHidden]>,
86      Group<grp_libs>;
87 def upward_library : Separate<["-"], "upward_library">,
88      MetaVarName<"<path>">,
89      HelpText<"Like bare <path>, but specify dylib as an upward dependency">,
90      Flags<[HelpHidden]>,
91      Group<grp_libs>;
92 def L : JoinedOrSeparate<["-"], "L">,
93      MetaVarName<"<dir>">,
94      HelpText<"Add dir to the library search path">,
95      Group<grp_libs>;
96 def Z : Flag<["-"], "Z">,
97      HelpText<"Remove standard directories from the library and framework search paths">,
98      Group<grp_libs>;
99 def syslibroot : Separate<["-"], "syslibroot">,
100      MetaVarName<"<rootdir>">,
101      HelpText<"Prepend <rootdir> to all library and framework search paths">,
102      Group<grp_libs>;
103 def search_paths_first : Flag<["-"], "search_paths_first">,
104      HelpText<"Search for lib<name>.dylib and lib<name>.a at each step in traversing search path (default for Xcode 4 and later)">,
105      Group<grp_libs>;
106 def search_dylibs_first : Flag<["-"], "search_dylibs_first">,
107      HelpText<"Search for lib<name>.dylib on first pass, then for lib<name>.a on second pass through search path (default for Xcode 3 and earlier)">,
108      Group<grp_libs>;
109 def framework : Separate<["-"], "framework">,
110      MetaVarName<"<name>">,
111      HelpText<"Search for <name>.framework/<name> on the framework search path">,
112      Group<grp_libs>;
113 def weak_framework : Separate<["-"], "weak_framework">,
114      MetaVarName<"<name>">,
115      HelpText<"Like -framework <name>, but mark framework and its references as weak imports">,
116      Group<grp_libs>;
117 def reexport_framework : Separate<["-"], "reexport_framework">,
118      MetaVarName<"<name>">,
119      HelpText<"Like -framework <name>, but export all symbols of <name> from the newly created library">,
120      Flags<[HelpHidden]>,
121      Group<grp_libs>;
122 def upward_framework : Separate<["-"], "upward_framework">,
123      MetaVarName<"<name>">,
124      HelpText<"Like -framework <name>, but specify the framework as an upward dependency">,
125      Flags<[HelpHidden]>,
126      Group<grp_libs>;
127 def F : JoinedOrSeparate<["-"], "F">,
128      MetaVarName<"<dir>">,
129      HelpText<"Add dir to the framework search path">,
130      Group<grp_libs>;
131 def all_load : Flag<["-"], "all_load">,
132      HelpText<"Load all members of all static archive libraries">,
133      Group<grp_libs>;
134 def ObjC : Flag<["-"], "ObjC">,
135      HelpText<"Load all members of static archives that are an Objective-C class or category.">,
136      Group<grp_libs>;
137 def force_load : Separate<["-"], "force_load">,
138      MetaVarName<"<path>">,
139      HelpText<"Load all members static archive library at <path>">,
140      Group<grp_libs>;
142 def grp_content : OptionGroup<"content">, HelpText<"ADDITIONAL CONTENT">;
144 def sectcreate : MultiArg<["-"], "sectcreate", 3>,
145      MetaVarName<"<segment> <section> <file>">,
146      HelpText<"Create <section> in <segment> from the contents of <file>">,
147      Group<grp_content>;
148 def segcreate : MultiArg<["-"], "segcreate", 3>,
149      MetaVarName<"<segment> <section> <file>">,
150      Alias<sectcreate>,
151      HelpText<"Alias for -sectcreate">,
152      Flags<[HelpHidden]>,
153      Group<grp_content>;
154 def filelist : Separate<["-"], "filelist">,
155      MetaVarName<"<file>">,
156      HelpText<"Read names of files to link from <file>">,
157      Group<grp_content>;
158 def dtrace : Separate<["-"], "dtrace">,
159      MetaVarName<"<script>">,
160      HelpText<"Enable DTrace static probes according to declarations in <script>">,
161      Flags<[HelpHidden]>,
162      Group<grp_content>;
164 def grp_opts : OptionGroup<"opts">, HelpText<"OPTIMIZATIONS">;
166 def dead_strip : Flag<["-"], "dead_strip">,
167      HelpText<"Remove unreachable functions and data">,
168      Flags<[HelpHidden]>,
169      Group<grp_opts>;
170 def order_file : Separate<["-"], "order_file">,
171      MetaVarName<"<file>">,
172      HelpText<"Layout functions and data according to specification in <file>">,
173      Group<grp_opts>;
174 def sectorder : MultiArg<["-"], "sectorder", 3>,
175      MetaVarName<"<segname> <sectname> <orderfile>">,
176      HelpText<"Replaced by more general -order_file option">,
177      Flags<[HelpHidden]>,
178      Group<grp_opts>;
179 def no_order_inits : Flag<["-"], "no_order_inits">,
180      HelpText<"Disable default reordering of initializer and terminator functions">,
181      Flags<[HelpHidden]>,
182      Group<grp_opts>;
183 def no_order_data : Flag<["-"], "no_order_data">,
184      HelpText<"Disable default reordering of global data accessed at launch time">,
185      Flags<[HelpHidden]>,
186      Group<grp_opts>;
187 def platform_version : MultiArg<["-"], "platform_version", 3>,
188      MetaVarName<"<platform> <min_version> <sdk_version>">,
189      HelpText<"Platform (e.g., macos, ios, tvos, watchos, bridgeos, mac-catalyst, ios-sim, tvos-sim, watchos-sim, driverkit) and version numbers">,
190      Group<grp_opts>;
191 def sdk_version : Separate<["-"], "sdk_version">,
192      HelpText<"This option is undocumented in ld64">,
193      Flags<[HelpHidden]>,
194      Group<grp_opts>;
195 def macos_version_min : Separate<["-"], "macos_version_min">,
196      MetaVarName<"<version>">,
197      HelpText<"Oldest macOS version for which linked output is useable">,
198      Flags<[HelpHidden]>,
199      Group<grp_opts>;
200 def macosx_version_min : Separate<["-"], "macosx_version_min">,
201      MetaVarName<"<version>">,
202      Alias<macos_version_min>,
203      HelpText<"Alias for -macos_version_min">,
204      Flags<[HelpHidden]>,
205      Group<grp_opts>;
206 def ios_version_min : Separate<["-"], "ios_version_min">,
207      MetaVarName<"<version>">,
208      HelpText<"Oldest iOS version for which linked output is useable">,
209      Flags<[HelpHidden]>,
210      Group<grp_opts>;
211 def ios_simulator_version_min : Separate<["-"], "ios_simulator_version_min">,
212      MetaVarName<"<version>">,
213      HelpText<"Oldest iOS simulator version for which linked output is useable">,
214      Flags<[HelpHidden]>,
215      Group<grp_opts>;
216 def iphoneos_version_min : Separate<["-"], "iphoneos_version_min">,
217      MetaVarName<"<version>">,
218      Alias<ios_version_min>,
219      HelpText<"Alias for -ios_version_min">,
220      Flags<[HelpHidden]>,
221      Group<grp_opts>;
222 def image_base : Separate<["-"], "image_base">,
223      MetaVarName<"<address>">,
224      HelpText<"Preferred hex load address for a dylib or bundle.">,
225      Flags<[HelpHidden]>,
226      Group<grp_opts>;
227 def seg1addr : Separate<["-"], "seg1addr">,
228      MetaVarName<"<address>">,
229      Alias<image_base>,
230      HelpText<"Alias for -image_base">,
231      Flags<[HelpHidden]>,
232      Group<grp_opts>;
233 def no_implicit_dylibs : Flag<["-"], "no_implicit_dylibs">,
234      HelpText<"Do not optimize public dylib transitive symbol references">,
235      Flags<[HelpHidden]>,
236      Group<grp_opts>;
237 def exported_symbols_order : Separate<["-"], "exported_symbols_order">,
238      MetaVarName<"<file>">,
239      HelpText<"Specify frequently-used symbols in <file> to optimize symbol exports">,
240      Flags<[HelpHidden]>,
241      Group<grp_opts>;
242 def no_zero_fill_sections : Flag<["-"], "no_zero_fill_sections">,
243      HelpText<"Explicitly store zeroed data in the final image">,
244      Flags<[HelpHidden]>,
245      Group<grp_opts>;
246 def merge_zero_fill_sections : Flag<["-"], "merge_zero_fill_sections">,
247      HelpText<"Merge all zeroed data into the __zerofill section">,
248      Flags<[HelpHidden]>,
249      Group<grp_opts>;
250 def no_branch_islands : Flag<["-"], "no_branch_islands">,
251      HelpText<"Disable infra for branches beyond the maximum branch distance.">,
252      Flags<[HelpHidden]>,
253      Group<grp_opts>;
255 def grp_dylib : OptionGroup<"dylib">, HelpText<"DYNAMIC LIBRARIES (DYLIB)">;
257 def install_name : Separate<["-"], "install_name">,
258      MetaVarName<"<name>">,
259      HelpText<"Set an internal install path in a dylib">,
260      Group<grp_dylib>;
261 def dylib_install_name : Separate<["-"], "dylib_install_name">,
262      MetaVarName<"<name>">,
263      Alias<install_name>,
264      HelpText<"Alias for -install_name">,
265      Flags<[HelpHidden]>,
266      Group<grp_dylib>;
267 def dylinker_install_name : Separate<["-"], "dylinker_install_name">,
268      MetaVarName<"<name>">,
269      Alias<install_name>,
270      HelpText<"Alias for -install_name">,
271      Flags<[HelpHidden]>,
272      Group<grp_dylib>;
273 def mark_dead_strippable_dylib : Flag<["-"], "mark_dead_strippable_dylib">,
274      HelpText<"Clients can discard this dylib if it is unreferenced">,
275      Flags<[HelpHidden]>,
276      Group<grp_dylib>;
277 def compatibility_version : Separate<["-"], "compatibility_version">,
278      MetaVarName<"<version>">,
279      HelpText<"Compatibility <version> of this library">,
280      Flags<[HelpHidden]>,
281      Group<grp_dylib>;
282 def dylib_compatibility_version : Separate<["-"], "dylib_compatibility_version">,
283      MetaVarName<"<version>">,
284      Alias<compatibility_version>,
285      HelpText<"Alias for -compatibility_version">,
286      Flags<[HelpHidden]>,
287      Group<grp_dylib>;
288 def current_version : Separate<["-"], "current_version">,
289      MetaVarName<"<version>">,
290      HelpText<"Current <version> of this library">,
291      Flags<[HelpHidden]>,
292      Group<grp_dylib>;
293 def dylib_current_version : Separate<["-"], "dylib_current_version">,
294      MetaVarName<"<version>">,
295      Alias<current_version>,
296      HelpText<"Alias for -current_version">,
297      Flags<[HelpHidden]>,
298      Group<grp_dylib>;
300 def grp_main : OptionGroup<"main">, HelpText<"MAIN EXECUTABLE">;
302 def pie : Flag<["-"], "pie">,
303      HelpText<"Build a position independent executable (default for macOS 10.7 and later)">,
304      Flags<[HelpHidden]>,
305      Group<grp_main>;
306 def no_pie : Flag<["-"], "no_pie">,
307      HelpText<"Do not build a position independent executable (default for macOS 10.6 and earlier)">,
308      Flags<[HelpHidden]>,
309      Group<grp_main>;
310 def pagezero_size : Separate<["-"], "pagezero_size">,
311      MetaVarName<"<size>">,
312      HelpText<"Size of unreadable segment at address zero is hex <size> (default is 4KB on 32-bit and 4GB on 64-bit)">,
313      Flags<[HelpHidden]>,
314      Group<grp_main>;
315 def stack_size : Separate<["-"], "stack_size">,
316      MetaVarName<"<size>">,
317      HelpText<"Maximum hex stack size for the main thread in a program. (default is 8MB)">,
318      Flags<[HelpHidden]>,
319      Group<grp_main>;
320 def allow_stack_execute : Flag<["-"], "allow_stack_execute">,
321      HelpText<"Mark stack segment as executable">,
322      Flags<[HelpHidden]>,
323      Group<grp_main>;
324 def export_dynamic : Flag<["-"], "export_dynamic">,
325      HelpText<"Preserve all global symbols during LTO">,
326      Flags<[HelpHidden]>,
327      Group<grp_main>;
329 def grp_bundle : OptionGroup<"bundle">, HelpText<"CREATING A BUNDLE">;
331 def bundle_loader : Separate<["-"], "bundle_loader">,
332      MetaVarName<"<executable>">,
333      HelpText<"Resolve undefined symbols from <executable>">,
334      Flags<[HelpHidden]>,
335      Group<grp_bundle>;
337 def grp_object : OptionGroup<"object">, HelpText<"CREATING AN OBJECT FILE">;
339 def keep_private_externs : Flag<["-"], "keep_private_externs">,
340      HelpText<"Do not convert private external symbols to static symbols">,
341      Flags<[HelpHidden]>,
342      Group<grp_object>;
343 def d : Flag<["-"], "d">,
344      HelpText<"Force tentative into real definitions for common symbols">,
345      Flags<[HelpHidden]>,
346      Group<grp_object>;
348 def grp_resolve : OptionGroup<"resolve">, HelpText<"SYMBOL RESOLUTION">;
350 def exported_symbols_list : Separate<["-"], "exported_symbols_list">,
351      MetaVarName<"<file>">,
352      HelpText<"Symbols specified in <file> remain global, while others become private externs">,
353      Flags<[HelpHidden]>,
354      Group<grp_resolve>;
355 def exported_symbol : Separate<["-"], "exported_symbol">,
356      MetaVarName<"<symbol>">,
357      HelpText<"<symbol> remains global, while others become private externs">,
358      Flags<[HelpHidden]>,
359      Group<grp_resolve>;
360 def unexported_symbols_list : Separate<["-"], "unexported_symbols_list">,
361      MetaVarName<"<file>">,
362      HelpText<"Global symbols specified in <file> become private externs">,
363      Flags<[HelpHidden]>,
364      Group<grp_resolve>;
365 def unexported_symbol : Separate<["-"], "unexported_symbol">,
366      MetaVarName<"<symbol>">,
367      HelpText<"Global <symbol> becomes private extern">,
368      Flags<[HelpHidden]>,
369      Group<grp_resolve>;
370 def reexported_symbols_list : Separate<["-"], "reexported_symbols_list">,
371      MetaVarName<"<file>">,
372      HelpText<"Symbols from dependent dylibs specified in <file> are reexported by this dylib">,
373      Flags<[HelpHidden]>,
374      Group<grp_resolve>;
375 def alias : MultiArg<["-"], "alias", 2>,
376      MetaVarName<"<symbol_name> <alternate_name>">,
377      HelpText<"Create a symbol alias with default global visibility">,
378      Flags<[HelpHidden]>,
379      Group<grp_resolve>;
380 def alias_list : Separate<["-"], "alias_list">,
381      MetaVarName<"<file>">,
382      HelpText<"Create symbol aliases specified in <file>">,
383      Flags<[HelpHidden]>,
384      Group<grp_resolve>;
385 def flat_namespace : Flag<["-"], "flat_namespace">,
386      HelpText<"Resolve symbols from all dylibs, both direct & transitive. Do not record source libraries: dyld must re-search at runtime and use the first definition found">,
387      Flags<[HelpHidden]>,
388      Group<grp_resolve>;
389 def u : Separate<["-"], "u">,
390      MetaVarName<"<symbol>">,
391      HelpText<"Require that <symbol> be defined for the link to succeed">,
392      Flags<[HelpHidden]>,
393      Group<grp_resolve>;
394 def U : Separate<["-"], "U">,
395      MetaVarName<"<symbol>">,
396      HelpText<"Allow <symbol> to have no definition">,
397      Flags<[HelpHidden]>,
398      Group<grp_resolve>;
399 def undefined : Separate<["-"], "undefined">,
400      MetaVarName<"<treatment>">,
401      HelpText<"Handle undefined symbols according to <treatment>: error, warning, suppress, or dynamic_lookup (default is error)">,
402      Flags<[HelpHidden]>,
403      Group<grp_resolve>;
404 def rpath : Separate<["-"], "rpath">,
405      MetaVarName<"<path>">,
406      HelpText<"Add <path> to dyld search list for dylibs with load path prefix `@rpath/'">,
407      Group<grp_resolve>;
408 def commons : Separate<["-"], "commons">,
409      MetaVarName<"<treatment>">,
410      HelpText<"Resolve tentative definitions in dylibs according to <treatment>: ignore_dylibs, use_dylibs, error (default is ignore_dylibs)">,
411      Flags<[HelpHidden]>,
412      Group<grp_resolve>;
414 def grp_introspect : OptionGroup<"introspect">, HelpText<"INTROSPECTING THE LINKER">;
416 def why_load : Flag<["-"], "why_load">,
417      HelpText<"Log the symbol that compels loading of each object file from a static library">,
418      Flags<[HelpHidden]>,
419      Group<grp_introspect>;
420 def whyload : Flag<["-"], "whyload">,
421      Alias<why_load>,
422      HelpText<"Alias for -why_load">,
423      Flags<[HelpHidden]>,
424      Group<grp_introspect>;
425 def why_live : Separate<["-"], "why_live">,
426      MetaVarName<"<symbol>">,
427      HelpText<"Log a chain of references to <symbol>, for use with -dead_strip">,
428      Flags<[HelpHidden]>,
429      Group<grp_introspect>;
430 def print_statistics : Flag<["-"], "print_statistics">,
431      HelpText<"Log the linker's memory and CPU usage">,
432      Flags<[HelpHidden]>,
433      Group<grp_introspect>;
434 def t : Flag<["-"], "t">,
435      HelpText<"Log every file the linker loads: object, archive, and dylib">,
436      Flags<[HelpHidden]>,
437      Group<grp_introspect>;
438 def whatsloaded : Flag<["-"], "whatsloaded">,
439      HelpText<"Logs only the object files the linker loads">,
440      Flags<[HelpHidden]>,
441      Group<grp_introspect>;
442 def order_file_statistics : Flag<["-"], "order_file_statistics">,
443      HelpText<"Logs information about -order_file">,
444      Flags<[HelpHidden]>,
445      Group<grp_introspect>;
446 def map : Separate<["-"], "map">,
447      MetaVarName<"<path>">,
448      HelpText<"Writes all symbols and their addresses to <path>">,
449      Flags<[HelpHidden]>,
450      Group<grp_introspect>;
451 def dependency_info : Separate<["-"], "dependency_info">,
452      MetaVarName<"<path>">,
453      HelpText<"Dump dependency info">,
454      Flags<[HelpHidden]>,
455      Group<grp_introspect>;
457 def grp_symtab : OptionGroup<"symtab">, HelpText<"SYMBOL TABLE OPTIMIZATIONS">;
459 def S : Flag<["-"], "S">,
460      HelpText<"Strip debug information (STABS or DWARF) from the output">,
461      Flags<[HelpHidden]>,
462      Group<grp_symtab>;
463 def x : Flag<["-"], "x">,
464      HelpText<"Exclude non-global symbols from the output symbol table">,
465      Flags<[HelpHidden]>,
466      Group<grp_symtab>;
467 def non_global_symbols_strip_list : Separate<["-"], "non_global_symbols_strip_list">,
468      MetaVarName<"<path>">,
469      HelpText<"Specify in <path> the non-global symbols that should be removed from the output symbol table">,
470      Flags<[HelpHidden]>,
471      Group<grp_symtab>;
472 def non_global_symbols_no_strip_list : Separate<["-"], "non_global_symbols_no_strip_list">,
473      MetaVarName<"<path>">,
474      HelpText<"Specify in <path> the non-global symbols that should remain in the output symbol table">,
475      Flags<[HelpHidden]>,
476      Group<grp_symtab>;
477 def oso_prefix : Separate<["-"], "oso_prefix">,
478      MetaVarName<"<path>">,
479      HelpText<"Remove the prefix <path> from OSO symbols in the debug map">,
480      Flags<[HelpHidden]>,
481      Group<grp_symtab>;
483 def grp_bitcode : OptionGroup<"bitcode">, HelpText<"BITCODE BUILD FLOW">;
485 def bitcode_bundle : Flag<["-"], "bitcode_bundle">,
486      HelpText<"Generate an embedded bitcode bundle in the __LLVM,__bundle section of the output">,
487      Flags<[HelpHidden]>,
488      Group<grp_bitcode>;
489 def bitcode_hide_symbols : Flag<["-"], "bitcode_hide_symbols">,
490      HelpText<"With -bitcode_bundle, hide all non-exported symbols from output bitcode bundle.">,
491      Flags<[HelpHidden]>,
492      Group<grp_bitcode>;
493 def bitcode_symbol_map : Separate<["-"], "bitcode_symbol_map">,
494      MetaVarName<"<path>">,
495      HelpText<"Write the bitcode symbol reverse mapping to file <path>, or if a directory, to <path>/UUID.bcsymbolmap">,
496      Flags<[HelpHidden]>,
497      Group<grp_bitcode>;
499 def grp_rare : OptionGroup<"rare">, HelpText<"RARELY USED">;
501 def v : Flag<["-"], "v">,
502      HelpText<"Print the linker version">,
503      Group<grp_rare>;
504 def version_details : Flag<["-"], "version_details">,
505      HelpText<"Print the linker version in JSON form">,
506      Flags<[HelpHidden]>,
507      Group<grp_rare>;
508 def no_weak_imports : Flag<["-"], "no_weak_imports">,
509      HelpText<"Fail if any symbols are weak imports, allowed to be NULL at runtime">,
510      Flags<[HelpHidden]>,
511      Group<grp_rare>;
512 def no_deduplicate : Flag<["-"], "no_deduplicate">,
513      HelpText<"Omit the deduplication pass">,
514      Flags<[HelpHidden]>,
515      Group<grp_rare>;
516 def verbose_deduplicate : Flag<["-"], "verbose_deduplicate">,
517      HelpText<"Print function names eliminated by deduplication and the total size of code savings">,
518      Flags<[HelpHidden]>,
519      Group<grp_rare>;
520 def no_inits : Flag<["-"], "no_inits">,
521      HelpText<"Fail if the output contains static initializers">,
522      Flags<[HelpHidden]>,
523      Group<grp_rare>;
524 def no_warn_inits : Flag<["-"], "no_warn_inits">,
525      HelpText<"Suppress warnings for static initializers in the output">,
526      Flags<[HelpHidden]>,
527      Group<grp_rare>;
528 def debug_variant : Flag<["-"], "debug_variant">,
529      HelpText<"Suppress warnings germane to binaries shipping to customers">,
530      Flags<[HelpHidden]>,
531      Group<grp_rare>;
532 def unaligned_pointers : Separate<["-"], "unaligned_pointers">,
533      MetaVarName<"<treatment>">,
534      HelpText<"Handle unaligned pointers in __DATA segments according to <treatment>: warning, error, or suppress (default for arm64e is error, otherwise suppress)">,
535      Flags<[HelpHidden]>,
536      Group<grp_rare>;
537 def dirty_data_list : Separate<["-"], "dirty_data_list">,
538      MetaVarName<"<path>">,
539      HelpText<"Specify data symbols in <path> destined for the __DATA_DIRTY segment">,
540      Flags<[HelpHidden]>,
541      Group<grp_rare>;
542 def max_default_common_align : Separate<["-"], "max_default_common_align">,
543      MetaVarName<"<boundary>">,
544      HelpText<"Reduce maximum alignment for common symbols to a hex power-of-2 <boundary>">,
545      Flags<[HelpHidden]>,
546      Group<grp_rare>;
547 def move_to_rw_segment : MultiArg<["-"], "move_to_rw_segment", 2>,
548      MetaVarName<"<segment> <path>">,
549      HelpText<"Move data symbols listed in <path> to another <segment>">,
550      Flags<[HelpHidden]>,
551      Group<grp_rare>;
552 def move_to_ro_segment : MultiArg<["-"], "move_to_ro_segment", 2>,
553      MetaVarName<"<segment> <path>">,
554      HelpText<"Move code symbols listed in <path> to another <segment>">,
555      Flags<[HelpHidden]>,
556      Group<grp_rare>;
557 def rename_section : MultiArg<["-"], "rename_section", 4>,
558      MetaVarName<"<from_segment> <from_section> <to_segment> <to_section>">,
559      HelpText<"Rename <from_segment>/<from_section> as <to_segment>/<to_section>">,
560      Flags<[HelpHidden]>,
561      Group<grp_rare>;
562 def rename_segment : MultiArg<["-"], "rename_segment", 2>,
563      MetaVarName<"<from_segment> <to_segment>">,
564      HelpText<"Rename <from_segment> as <to_segment>">,
565      Flags<[HelpHidden]>,
566      Group<grp_rare>;
567 def trace_symbol_layout : Flag<["-"], "trace_symbol_layout">,
568      HelpText<"Show where and why symbols move, as specified by -move_to_ro_segment, -move_to_rw_segment, -rename_section, and -rename_segment">,
569      Flags<[HelpHidden]>,
570      Group<grp_rare>;
571 def section_order : MultiArg<["-"], "section_order", 2>,
572      MetaVarName<"<segment> <sections>">,
573      HelpText<"With -preload, specify layout sequence of colon-separated <sections> in <segment>">,
574      Flags<[HelpHidden]>,
575      Group<grp_rare>;
576 def segment_order : Separate<["-"], "segment_order">,
577      MetaVarName<"<colon_separated_segment_list>">,
578      HelpText<"With -preload, specify layout sequence of colon-separated <segments>">,
579      Flags<[HelpHidden]>,
580      Group<grp_rare>;
581 def allow_heap_execute : Flag<["-"], "allow_heap_execute">,
582      HelpText<"On i386, allow any page to execute code">,
583      Flags<[HelpHidden]>,
584      Group<grp_rare>;
585 def application_extension : Flag<["-"], "application_extension">,
586      HelpText<"Designate the linker output as safe for use in an application extension">,
587      Flags<[HelpHidden]>,
588      Group<grp_rare>;
589 def no_application_extension : Flag<["-"], "no_application_extension">,
590      HelpText<"Designate the linker output as unsafe for use in an application extension">,
591      Flags<[HelpHidden]>,
592      Group<grp_rare>;
593 def fatal_warnings : Flag<["-"], "fatal_warnings">,
594      HelpText<"Escalate warnings as errors">,
595      Flags<[HelpHidden]>,
596      Group<grp_rare>;
597 def no_eh_labels : Flag<["-"], "no_eh_labels">,
598      HelpText<"In -r mode, suppress .eh labels in the __eh_frame section">,
599      Flags<[HelpHidden]>,
600      Group<grp_rare>;
601 def warn_compact_unwind : Flag<["-"], "warn_compact_unwind">,
602      HelpText<"Warn for each FDE that cannot compact into the __unwind_info section and must remain in the __eh_frame section">,
603      Flags<[HelpHidden]>,
604      Group<grp_rare>;
605 def warn_weak_exports : Flag<["-"], "warn_weak_exports">,
606      HelpText<"Warn if the linked image contains weak external symbols">,
607      Flags<[HelpHidden]>,
608      Group<grp_rare>;
609 def no_weak_exports : Flag<["-"], "no_weak_exports">,
610      HelpText<"Fail if the linked image contains weak external symbols">,
611      Flags<[HelpHidden]>,
612      Group<grp_rare>;
613 def objc_gc_compaction : Flag<["-"], "objc_gc_compaction">,
614      HelpText<"Mark the Objective-C image as compatible with compacting garbage collection">,
615      Flags<[HelpHidden]>,
616      Group<grp_rare>;
617 def objc_gc : Flag<["-"], "objc_gc">,
618      HelpText<"Verify that all code was compiled with -fobjc-gc or -fobjc-gc-only">,
619      Flags<[HelpHidden]>,
620      Group<grp_rare>;
621 def objc_gc_only : Flag<["-"], "objc_gc_only">,
622      HelpText<"Verify that all code was compiled with -fobjc-gc-only">,
623      Flags<[HelpHidden]>,
624      Group<grp_rare>;
625 def dead_strip_dylibs : Flag<["-"], "dead_strip_dylibs">,
626      HelpText<"Remove dylibs that are unreachable by the entry point or exported symbols">,
627      Flags<[HelpHidden]>,
628      Group<grp_rare>;
629 def allow_sub_type_mismatches : Flag<["-"], "allow_sub_type_mismatches">,
630      HelpText<"Permit mixing objects compiled for different ARM CPU subtypes">,
631      Flags<[HelpHidden]>,
632      Group<grp_rare>;
633 def no_uuid : Flag<["-"], "no_uuid">,
634      HelpText<"Do not generate the LC_UUID load command">,
635      Flags<[HelpHidden]>,
636      Group<grp_rare>;
637 def root_safe : Flag<["-"], "root_safe">,
638      HelpText<"Set the MH_ROOT_SAFE bit in the mach-o header">,
639      Flags<[HelpHidden]>,
640      Group<grp_rare>;
641 def setuid_safe : Flag<["-"], "setuid_safe">,
642      HelpText<"Set the MH_SETUID_SAFE bit in the mach-o header">,
643      Flags<[HelpHidden]>,
644      Group<grp_rare>;
645 def interposable : Flag<["-"], "interposable">,
646      HelpText<"Indirects access to all to exported symbols in a dylib">,
647      Flags<[HelpHidden]>,
648      Group<grp_rare>;
649 def multi_module : Flag<["-"], "multi_module">,
650      Alias<interposable>,
651      HelpText<"Alias for -interposable">,
652      Flags<[HelpHidden]>,
653      Group<grp_rare>;
654 def init : Separate<["-"], "init">,
655      MetaVarName<"<symbol>">,
656      HelpText<"Run <symbol> as the first initializer in a dylib">,
657      Flags<[HelpHidden]>,
658      Group<grp_rare>;
659 def sub_library : Separate<["-"], "sub_library">,
660      MetaVarName<"<name>">,
661      HelpText<"Re-export the dylib as <name>">,
662      Group<grp_rare>;
663 def sub_umbrella : Separate<["-"], "sub_umbrella">,
664      MetaVarName<"<name>">,
665      HelpText<"Re-export the framework as <name>">,
666      Flags<[HelpHidden]>,
667      Group<grp_rare>;
668 def allowable_client : Separate<["-"], "allowable_client">,
669      MetaVarName<"<name>">,
670      HelpText<"Specify <name> of a dylib or framework that is allowed to link to this dylib">,
671      Flags<[HelpHidden]>,
672      Group<grp_rare>;
673 def client_name : Separate<["-"], "client_name">,
674      MetaVarName<"<name>">,
675      HelpText<"Specifies a <name> this client should match with the -allowable_client <name> in a dependent dylib">,
676      Flags<[HelpHidden]>,
677      Group<grp_rare>;
678 def umbrella : Separate<["-"], "umbrella">,
679      MetaVarName<"<<name>>">,
680      HelpText<"Re-export this dylib through the umbrella framework <name>a">,
681      Flags<[HelpHidden]>,
682      Group<grp_rare>;
683 def headerpad : Separate<["-"], "headerpad">,
684      MetaVarName<"<size>">,
685      HelpText<"Allocate hex <size> extra space for future expansion of the load commands via install_name_tool (default is 0x20)">,
686      Group<grp_rare>;
687 def headerpad_max_install_names : Flag<["-"], "headerpad_max_install_names">,
688      HelpText<"Allocate extra space so all load-command paths can expand to MAXPATHLEN via install_name_tool">,
689      Group<grp_rare>;
690 def bind_at_load : Flag<["-"], "bind_at_load">,
691      HelpText<"Tell dyld to bind all symbols at load time, rather than lazily">,
692      Flags<[HelpHidden]>,
693      Group<grp_rare>;
694 def force_flat_namespace : Flag<["-"], "force_flat_namespace">,
695      HelpText<"Tell dyld to use a flat namespace on this executable and all its dependent dylibs & bundles">,
696      Flags<[HelpHidden]>,
697      Group<grp_rare>;
698 def segalign : Separate<["-"], "segalign">,
699      MetaVarName<"<boundary>">,
700      HelpText<"Align all segments to hex power-of-2 <boundary>">,
701      Flags<[HelpHidden]>,
702      Group<grp_rare>;
703 def sectalign : MultiArg<["-"], "sectalign", 3>,
704      MetaVarName<"<segment> <section> <boundary>">,
705      HelpText<"Align <section> within <segment> to hex power-of-2 <boundary>">,
706      Flags<[HelpHidden]>,
707      Group<grp_rare>;
708 def stack_addr : Separate<["-"], "stack_addr">,
709      MetaVarName<"<address>">,
710      HelpText<"Initialize stack pointer to hex <address> rounded to a page boundary">,
711      Flags<[HelpHidden]>,
712      Group<grp_rare>;
713 def segprot : MultiArg<["-"], "segprot", 3>,
714      MetaVarName<"<segment> <max> <init>">,
715      HelpText<"Specifies the <max> and <init> virtual memory protection of <segment> as r/w/x/-seg_addr_table path Specify hex base addresses and dylib install names on successive lines in <path>. This option is obsolete">,
716      Flags<[HelpHidden]>,
717      Group<grp_rare>;
718 def segs_read_write_addr : Separate<["-"], "segs_read_write_addr">,
719      MetaVarName<"<address>">,
720      HelpText<"This option is obsolete">,
721      Flags<[HelpHidden]>,
722      Group<grp_rare>;
723 def segs_read_only_addr : Separate<["-"], "segs_read_only_addr">,
724      MetaVarName<"<address>">,
725      HelpText<"This option is obsolete">,
726      Flags<[HelpHidden]>,
727      Group<grp_rare>;
728 def segaddr : MultiArg<["-"], "segaddr", 2>,
729      MetaVarName<"<segment> <address>">,
730      HelpText<"Specify the starting hex <address> at a 4KiB page boundary for <segment>">,
731      Flags<[HelpHidden]>,
732      Group<grp_rare>;
733 def seg_page_size : MultiArg<["-"], "seg_page_size", 2>,
734      MetaVarName<"<segment> <size>">,
735      HelpText<"Specifies the page <size> for <segment>. Segment size will be a multiple of its page size">,
736      Flags<[HelpHidden]>,
737      Group<grp_rare>;
738 def dylib_file : Separate<["-"], "dylib_file">,
739      MetaVarName<"<install_path:current_path>">,
740      HelpText<"Specify <current_path> as different from where a dylib normally resides at <install_path>">,
741      Flags<[HelpHidden]>,
742      Group<grp_rare>;
743 def prebind : Flag<["-"], "prebind">,
744      HelpText<"This option is obsolete">,
745      Flags<[HelpHidden]>,
746      Group<grp_rare>;
747 def weak_reference_mismatches : Separate<["-"], "weak_reference_mismatches">,
748      MetaVarName<"<treatment>">,
749      HelpText<"Resolve symbol imports of conflicting weakness according to <treatment> as weak, non-weak, or error (default is non-weak)">,
750      Flags<[HelpHidden]>,
751      Group<grp_rare>;
752 def read_only_relocs : Separate<["-"], "read_only_relocs">,
753      MetaVarName<"<treatment>">,
754      HelpText<"Handle relocations that modify read-only pages according to <treatment> of warning, error, or suppress (i.e., allow)">,
755      Flags<[HelpHidden]>,
756      Group<grp_rare>;
757 def force_cpusubtype_ALL : Flag<["-"], "force_cpusubtype_ALL">,
758      HelpText<"Mark binary as runnable on any PowerPC, ignoring any PowerPC cpu requirements encoded in the object files">,
759      Flags<[HelpHidden]>,
760      Group<grp_rare>;
761 def no_arch_warnings : Flag<["-"], "no_arch_warnings">,
762      HelpText<"Suppresses warnings about inputs whose architecture does not match the -arch option">,
763      Flags<[HelpHidden]>,
764      Group<grp_rare>;
765 def arch_errors_fatal : Flag<["-"], "arch_errors_fatal">,
766      HelpText<"Escalate to errors any warnings about inputs whose architecture does not match the -arch option">,
767      Flags<[HelpHidden]>,
768      Group<grp_rare>;
769 def e : Separate<["-"], "e">,
770      MetaVarName<"<symbol>">,
771      HelpText<"Make <symbol> the entry point of an executable (default is \"start\" from crt1.o)">,
772      Group<grp_rare>;
773 def w : Flag<["-"], "w">,
774      HelpText<"Suppress all warnings">,
775      Flags<[HelpHidden]>,
776      Group<grp_rare>;
777 def final_output : Separate<["-"], "final_output">,
778      MetaVarName<"<name>">,
779      HelpText<"Specify the dylib install name if -install_name is not used--used by compiler driver for multiple -arch arguments">,
780      Flags<[HelpHidden]>,
781      Group<grp_rare>;
782 def arch_multiple : Flag<["-"], "arch_multiple">,
783      HelpText<"Augment error and warning messages with the architecture name">,
784      Flags<[HelpHidden]>,
785      Group<grp_rare>;
786 def twolevel_namespace_hints : Flag<["-"], "twolevel_namespace_hints">,
787      HelpText<"This option is obsolete">,
788      Flags<[HelpHidden]>,
789      Group<grp_rare>;
790 def dot : Separate<["-"], "dot">,
791      MetaVarName<"<path>">,
792      HelpText<"Write a graph of symbol dependencies to <path> as a .dot file viewable with GraphViz">,
793      Flags<[HelpHidden]>,
794      Group<grp_rare>;
795 def keep_relocs : Flag<["-"], "keep_relocs">,
796      HelpText<"Retain section-based relocation records in the output, which are ignored at runtime by dyld">,
797      Flags<[HelpHidden]>,
798      Group<grp_rare>;
799 def warn_stabs : Flag<["-"], "warn_stabs">,
800      HelpText<"Warn when bad stab symbols inside a BINCL/EINCL prevent optimization">,
801      Flags<[HelpHidden]>,
802      Group<grp_rare>;
803 def warn_commons : Flag<["-"], "warn_commons">,
804      HelpText<"Warn when a tentative definition in an object file matches an external symbol in a dylib, which often means \"extern\" is missing from a variable declaration in a header file">,
805      Flags<[HelpHidden]>,
806      Group<grp_rare>;
807 def read_only_stubs : Flag<["-"], "read_only_stubs">,
808      HelpText<"On i386, make the __IMPORT segment of a final linked image read-only">,
809      Flags<[HelpHidden]>,
810      Group<grp_rare>;
811 def slow_stubs : Flag<["-"], "slow_stubs">,
812      HelpText<"This option is obsolete">,
813      Flags<[HelpHidden]>,
814      Group<grp_rare>;
815 def interposable_list : Separate<["-"], "interposable_list">,
816      MetaVarName<"<path>">,
817      HelpText<"Access global symbols listed in <path> indirectly">,
818      Flags<[HelpHidden]>,
819      Group<grp_rare>;
820 def no_function_starts : Flag<["-"], "no_function_starts">,
821      HelpText<"Do not creates a compressed table of function start addresses">,
822      Flags<[HelpHidden]>,
823      Group<grp_rare>;
824 def no_objc_category_merging : Flag<["-"], "no_objc_category_merging">,
825      HelpText<"Do not merge Objective-C categories into their classes">,
826      Flags<[HelpHidden]>,
827      Group<grp_rare>;
828 def object_path_lto : Separate<["-"], "object_path_lto">,
829      MetaVarName<"<path>">,
830      HelpText<"Retain any temporary mach-o file in <path> that would otherwise be deleted during LTO">,
831      Flags<[HelpHidden]>,
832      Group<grp_rare>;
833 def lto_library : Separate<["-"], "lto_library">,
834      MetaVarName<"<path>">,
835      HelpText<"Override the default ../lib/libLTO.dylib as <path>">,
836      Flags<[HelpHidden]>,
837      Group<grp_rare>;
838 def cache_path_lto : Separate<["-"], "cache_path_lto">,
839      MetaVarName<"<path>">,
840      HelpText<"Use <path> as a directory for the incremental LTO cache">,
841      Flags<[HelpHidden]>,
842      Group<grp_rare>;
843 def prune_interval_lto : Separate<["-"], "prune_interval_lto">,
844      MetaVarName<"<seconds>">,
845      HelpText<"Prune the incremental LTO cache after <seconds> (-1 disables pruning)">,
846      Flags<[HelpHidden]>,
847      Group<grp_rare>;
848 def prune_after_lto : Separate<["-"], "prune_after_lto">,
849      MetaVarName<"<seconds>">,
850      HelpText<"Remove LTO cache entries after <seconds>">,
851      Flags<[HelpHidden]>,
852      Group<grp_rare>;
853 def max_relative_cache_size_lto : Separate<["-"], "max_relative_cache_size_lto">,
854      MetaVarName<"<percent>">,
855      HelpText<"Limit the incremental LTO cache growth to <percent> of free disk, space">,
856      Flags<[HelpHidden]>,
857      Group<grp_rare>;
858 def page_align_data_atoms : Flag<["-"], "page_align_data_atoms">,
859      HelpText<"Distribute global variables on separate pages so page used/dirty status can guide creation of an order file to cluster commonly used/dirty globals">,
860      Flags<[HelpHidden]>,
861      Group<grp_rare>;
862 def not_for_dyld_shared_cache : Flag<["-"], "not_for_dyld_shared_cache">,
863      HelpText<"Prevent system dylibs from being placed into the dylib shared cache">,
864      Flags<[HelpHidden]>,
865      Group<grp_rare>;
866 def mllvm : Separate<["-"], "mllvm">,
867      HelpText<"Options to pass to LLVM">,
868      Flags<[HelpHidden]>,
869      Group<grp_rare>;
871 def grp_deprecated : OptionGroup<"deprecated">, HelpText<"DEPRECATED">;
873 def lazy_framework : Separate<["-"], "lazy_framework">,
874      MetaVarName<"<name>">,
875      HelpText<"This option is deprecated and is now an alias for -framework.">,
876      Flags<[HelpHidden]>,
877      Group<grp_deprecated>;
878 def lazy_library : Separate<["-"], "lazy_library">,
879      MetaVarName<"<path>">,
880      HelpText<"This option is deprecated and is now an alias for regular linking">,
881      Flags<[HelpHidden]>,
882      Group<grp_deprecated>;
883 def lazy_l : Joined<["-"], "lazy-l">,
884      MetaVarName<"<name>">,
885      HelpText<"This option is deprecated and is now an alias for -l<path>.">,
886      Flags<[HelpHidden]>,
887      Group<grp_deprecated>;
888 def single_module : Flag<["-"], "single_module">,
889      HelpText<"Unnecessary option: this is already the default">,
890      Flags<[HelpHidden]>,
891      Group<grp_deprecated>;
892 def no_dead_strip_inits_and_terms : Flag<["-"], "no_dead_strip_inits_and_terms">,
893      HelpText<"Unnecessary option: initialization and termination are roots of the dead strip graph, so never dead stripped">,
894      Flags<[HelpHidden]>,
895      Group<grp_deprecated>;
896 def noall_load : Flag<["-"], "noall_load">,
897      HelpText<"Unnecessary option: this is already the default">,
898      Flags<[HelpHidden]>,
899      Group<grp_deprecated>;
901 def grp_obsolete : OptionGroup<"obsolete">, HelpText<"OBSOLETE">;
903 def y : Joined<["-"], "y">,
904      MetaVarName<"<symbol>">,
905      HelpText<"This option is obsolete in ld64">,
906      Flags<[HelpHidden]>,
907      Group<grp_obsolete>;
908 def sectobjectsymbols : MultiArg<["-"], "sectobjectsymbols", 2>,
909      MetaVarName<"<segname> <sectname>">,
910      HelpText<"This option is obsolete in ld64">,
911      Flags<[HelpHidden]>,
912      Group<grp_obsolete>;
913 def nofixprebinding : Flag<["-"], "nofixprebinding">,
914      HelpText<"This option is obsolete in ld64">,
915      Flags<[HelpHidden]>,
916      Group<grp_obsolete>;
917 def noprebind_all_twolevel_modules : Flag<["-"], "noprebind_all_twolevel_modules">,
918      HelpText<"This option is obsolete in ld64">,
919      Flags<[HelpHidden]>,
920      Group<grp_obsolete>;
921 def prebind_all_twolevel_modules : Flag<["-"], "prebind_all_twolevel_modules">,
922      HelpText<"This option is obsolete in ld64">,
923      Flags<[HelpHidden]>,
924      Group<grp_obsolete>;
925 def prebind_allow_overlap : Flag<["-"], "prebind_allow_overlap">,
926      HelpText<"This option is obsolete in ld64">,
927      Flags<[HelpHidden]>,
928      Group<grp_obsolete>;
929 def noprebind : Flag<["-"], "noprebind">,
930      HelpText<"This option is obsolete in ld64">,
931      Flags<[HelpHidden]>,
932      Group<grp_obsolete>;
933 def sect_diff_relocs : Separate<["-"], "sect_diff_relocs">,
934      MetaVarName<"<treatment>">,
935      HelpText<"This option is obsolete in ld64">,
936      Flags<[HelpHidden]>,
937      Group<grp_obsolete>;
938 def A : Separate<["-"], "A">,
939      MetaVarName<"<basefile>">,
940      HelpText<"This option is obsolete in ld64">,
941      Flags<[HelpHidden]>,
942      Group<grp_obsolete>;
943 def b : Flag<["-"], "b">,
944      HelpText<"This option is obsolete in ld64">,
945      Flags<[HelpHidden]>,
946      Group<grp_obsolete>;
947 def Sn : Flag<["-"], "Sn">,
948      HelpText<"This option is obsolete in ld64">,
949      Flags<[HelpHidden]>,
950      Group<grp_obsolete>;
951 def Si : Flag<["-"], "Si">,
952      HelpText<"This option is obsolete in ld64">,
953      Flags<[HelpHidden]>,
954      Group<grp_obsolete>;
955 def Sp : Flag<["-"], "Sp">,
956      HelpText<"This option is obsolete in ld64">,
957      Flags<[HelpHidden]>,
958      Group<grp_obsolete>;
959 def X : Flag<["-"], "X">,
960      HelpText<"This option is obsolete in ld64">,
961      Flags<[HelpHidden]>,
962      Group<grp_obsolete>;
963 def s : Flag<["-"], "s">,
964      HelpText<"This option is obsolete in ld64">,
965      Flags<[HelpHidden]>,
966      Group<grp_obsolete>;
967 def m : Flag<["-"], "m">,
968      HelpText<"This option is obsolete in ld64">,
969      Flags<[HelpHidden]>,
970      Group<grp_obsolete>;
971 def Y : Separate<["-"], "Y">,
972      MetaVarName<"<number>">,
973      HelpText<"This option is obsolete in ld64">,
974      Flags<[HelpHidden]>,
975      Group<grp_obsolete>;
976 def nomultidefs : Flag<["-"], "nomultidefs">,
977      HelpText<"This option is obsolete in ld64">,
978      Flags<[HelpHidden]>,
979      Group<grp_obsolete>;
980 def multiply_defined_unused : Separate<["-"], "multiply_defined_unused">,
981      MetaVarName<"<treatment>">,
982      HelpText<"This option is obsolete in ld64">,
983      Flags<[HelpHidden]>,
984      Group<grp_obsolete>;
985 def multiply_defined : Separate<["-"], "multiply_defined">,
986      MetaVarName<"<treatment>">,
987      HelpText<"This option is obsolete in ld64">,
988      Flags<[HelpHidden]>,
989      Group<grp_obsolete>;
990 def private_bundle : Flag<["-"], "private_bundle">,
991      HelpText<"This option is obsolete in ld64">,
992      Flags<[HelpHidden]>,
993      Group<grp_obsolete>;
994 def seg_addr_table_filename : Separate<["-"], "seg_addr_table_filename">,
995      MetaVarName<"<path>">,
996      HelpText<"This option is obsolete in ld64">,
997      Flags<[HelpHidden]>,
998      Group<grp_obsolete>;
999 def sectorder_detail : Flag<["-"], "sectorder_detail">,
1000      HelpText<"This option is obsolete in ld64">,
1001      Flags<[HelpHidden]>,
1002      Group<grp_obsolete>;
1003 def no_compact_linkedit : Flag<["-"], "no_compact_linkedit">,
1004      HelpText<"This option is obsolete in ld64">,
1005      Flags<[HelpHidden]>,
1006      Group<grp_obsolete>;
1007 def dependent_dr_info : Flag<["-"], "dependent_dr_info">,
1008      HelpText<"This option is obsolete in ld64">,
1009      Flags<[HelpHidden]>,
1010      Group<grp_obsolete>;
1011 def no_dependent_dr_info : Flag<["-"], "no_dependent_dr_info">,
1012      HelpText<"This option is obsolete in ld64">,
1013      Flags<[HelpHidden]>,
1014      Group<grp_obsolete>;
1015 def seglinkedit : Flag<["-"], "seglinkedit">,
1016      HelpText<"This option is obsolete in ld64">,
1017      Flags<[HelpHidden]>,
1018      Group<grp_obsolete>;
1019 def noseglinkedit : Flag<["-"], "noseglinkedit">,
1020      HelpText<"This option is obsolete in ld64">,
1021      Flags<[HelpHidden]>,
1022      Group<grp_obsolete>;
1023 def fvmlib : Flag<["-"], "fvmlib">,
1024      HelpText<"This option is obsolete in ld64">,
1025      Flags<[HelpHidden]>,
1026      Group<grp_obsolete>;
1027 def run_init_lazily : Flag<["-"], "run_init_lazily">,
1028      HelpText<"This option is obsolete in ld64">,
1029      Flags<[HelpHidden]>,
1030      Group<grp_obsolete>;
1032 def grp_undocumented : OptionGroup<"undocumented">, HelpText<"UNDOCUMENTED">;
1034 def add_ast_path : Flag<["-"], "add_ast_path">,
1035      HelpText<"This option is undocumented in ld64">,
1036      Flags<[HelpHidden]>,
1037      Group<grp_undocumented>;
1038 def add_linker_option : Flag<["-"], "add_linker_option">,
1039      HelpText<"This option is undocumented in ld64">,
1040      Flags<[HelpHidden]>,
1041      Group<grp_undocumented>;
1042 def add_source_version : Flag<["-"], "add_source_version">,
1043      HelpText<"This option is undocumented in ld64">,
1044      Flags<[HelpHidden]>,
1045      Group<grp_undocumented>;
1046 def no_source_version : Flag<["-"], "no_source_version">,
1047      HelpText<"This option is undocumented in ld64">,
1048      Flags<[HelpHidden]>,
1049      Group<grp_undocumented>;
1050 def add_split_seg_info : Flag<["-"], "add_split_seg_info">,
1051      HelpText<"This option is undocumented in ld64">,
1052      Flags<[HelpHidden]>,
1053      Group<grp_undocumented>;
1054 def allow_dead_duplicates : Flag<["-"], "allow_dead_duplicates">,
1055      HelpText<"This option is undocumented in ld64">,
1056      Flags<[HelpHidden]>,
1057      Group<grp_undocumented>;
1058 def allow_simulator_linking_to_macosx_dylibs : Flag<["-"], "allow_simulator_linking_to_macosx_dylibs">,
1059      HelpText<"This option is undocumented in ld64">,
1060      Flags<[HelpHidden]>,
1061      Group<grp_undocumented>;
1062 def bitcode_process_mode : Flag<["-"], "bitcode_process_mode">,
1063      HelpText<"This option is undocumented in ld64">,
1064      Flags<[HelpHidden]>,
1065      Group<grp_undocumented>;
1066 def bitcode_verify : Flag<["-"], "bitcode_verify">,
1067      HelpText<"This option is undocumented in ld64">,
1068      Flags<[HelpHidden]>,
1069      Group<grp_undocumented>;
1070 def classic_linker : Flag<["-"], "classic_linker">,
1071      HelpText<"This option is undocumented in ld64">,
1072      Flags<[HelpHidden]>,
1073      Group<grp_undocumented>;
1074 def data_const : Flag<["-"], "data_const">,
1075      HelpText<"This option is undocumented in ld64">,
1076      Flags<[HelpHidden]>,
1077      Group<grp_undocumented>;
1078 def no_data_const : Flag<["-"], "no_data_const">,
1079      HelpText<"This option is undocumented in ld64">,
1080      Flags<[HelpHidden]>,
1081      Group<grp_undocumented>;
1082 def data_in_code_info : Flag<["-"], "data_in_code_info">,
1083      HelpText<"This option is undocumented in ld64">,
1084      Flags<[HelpHidden]>,
1085      Group<grp_undocumented>;
1086 def no_data_in_code_info : Flag<["-"], "no_data_in_code_info">,
1087      HelpText<"This option is undocumented in ld64">,
1088      Flags<[HelpHidden]>,
1089      Group<grp_undocumented>;
1090 def debug_snapshot : Flag<["-"], "debug_snapshot">,
1091      HelpText<"This option is undocumented in ld64">,
1092      Flags<[HelpHidden]>,
1093      Group<grp_undocumented>;
1094 def demangle : Flag<["-"], "demangle">,
1095      HelpText<"This option is undocumented in ld64">,
1096      Flags<[HelpHidden]>,
1097      Group<grp_undocumented>;
1098 def dyld_env : Flag<["-"], "dyld_env">,
1099      HelpText<"This option is undocumented in ld64">,
1100      Flags<[HelpHidden]>,
1101      Group<grp_undocumented>;
1102 def encryptable : Flag<["-"], "encryptable">,
1103      HelpText<"This option is undocumented in ld64">,
1104      Flags<[HelpHidden]>,
1105      Group<grp_undocumented>;
1106 def executable_path : Flag<["-"], "executable_path">,
1107      HelpText<"This option is undocumented in ld64">,
1108      Flags<[HelpHidden]>,
1109      Group<grp_undocumented>;
1110 def fixup_chains : Flag<["-"], "fixup_chains">,
1111      HelpText<"This option is undocumented in ld64">,
1112      Flags<[HelpHidden]>,
1113      Group<grp_undocumented>;
1114 def fixup_chains_section : Flag<["-"], "fixup_chains_section">,
1115      HelpText<"This option is undocumented in ld64">,
1116      Flags<[HelpHidden]>,
1117      Group<grp_undocumented>;
1118 def flto_codegen_only : Flag<["-"], "flto-codegen-only">,
1119      HelpText<"This option is undocumented in ld64">,
1120      Flags<[HelpHidden]>,
1121      Group<grp_undocumented>;
1122 def force_load_swift_libs : Flag<["-"], "force_load_swift_libs">,
1123      HelpText<"This option is undocumented in ld64">,
1124      Flags<[HelpHidden]>,
1125      Group<grp_undocumented>;
1126 def force_symbol_not_weak : Flag<["-"], "force_symbol_not_weak">,
1127      HelpText<"This option is undocumented in ld64">,
1128      Flags<[HelpHidden]>,
1129      Group<grp_undocumented>;
1130 def force_symbols_coalesce_list : Flag<["-"], "force_symbols_coalesce_list">,
1131      HelpText<"This option is undocumented in ld64">,
1132      Flags<[HelpHidden]>,
1133      Group<grp_undocumented>;
1134 def force_symbols_not_weak_list : Flag<["-"], "force_symbols_not_weak_list">,
1135      HelpText<"This option is undocumented in ld64">,
1136      Flags<[HelpHidden]>,
1137      Group<grp_undocumented>;
1138 def force_symbols_weak_list : Flag<["-"], "force_symbols_weak_list">,
1139      HelpText<"This option is undocumented in ld64">,
1140      Flags<[HelpHidden]>,
1141      Group<grp_undocumented>;
1142 def force_symbol_weak : Flag<["-"], "force_symbol_weak">,
1143      HelpText<"This option is undocumented in ld64">,
1144      Flags<[HelpHidden]>,
1145      Group<grp_undocumented>;
1146 def function_starts : Flag<["-"], "function_starts">,
1147      HelpText<"This option is undocumented in ld64">,
1148      Flags<[HelpHidden]>,
1149      Group<grp_undocumented>;
1150 def i : Flag<["-"], "i">,
1151      HelpText<"This option is undocumented in ld64">,
1152      Flags<[HelpHidden]>,
1153      Group<grp_undocumented>;
1154 def ignore_auto_link : Flag<["-"], "ignore_auto_link">,
1155      HelpText<"This option is undocumented in ld64">,
1156      Flags<[HelpHidden]>,
1157      Group<grp_undocumented>;
1158 def ignore_optimization_hints : Flag<["-"], "ignore_optimization_hints">,
1159      HelpText<"This option is undocumented in ld64">,
1160      Flags<[HelpHidden]>,
1161      Group<grp_undocumented>;
1162 def init_offsets : Flag<["-"], "init_offsets">,
1163      HelpText<"This option is undocumented in ld64">,
1164      Flags<[HelpHidden]>,
1165      Group<grp_undocumented>;
1166 def keep_dwarf_unwind : Flag<["-"], "keep_dwarf_unwind">,
1167      HelpText<"This option is undocumented in ld64">,
1168      Flags<[HelpHidden]>,
1169      Group<grp_undocumented>;
1170 def no_keep_dwarf_unwind : Flag<["-"], "no_keep_dwarf_unwind">,
1171      HelpText<"This option is undocumented in ld64">,
1172      Flags<[HelpHidden]>,
1173      Group<grp_undocumented>;
1174 def kext : Flag<["-"], "kext">,
1175      HelpText<"This option is undocumented in ld64">,
1176      Flags<[HelpHidden]>,
1177      Group<grp_undocumented>;
1178 def kext_objects_dir : Flag<["-"], "kext_objects_dir">,
1179      HelpText<"This option is undocumented in ld64">,
1180      Flags<[HelpHidden]>,
1181      Group<grp_undocumented>;
1182 def no_kext_objects : Flag<["-"], "no_kext_objects">,
1183      HelpText<"This option is undocumented in ld64">,
1184      Flags<[HelpHidden]>,
1185      Group<grp_undocumented>;
1186 def kexts_use_stubs : Flag<["-"], "kexts_use_stubs">,
1187      HelpText<"This option is undocumented in ld64">,
1188      Flags<[HelpHidden]>,
1189      Group<grp_undocumented>;
1190 def maccatalyst_version_min : Flag<["-"], "maccatalyst_version_min">,
1191      HelpText<"This option is undocumented in ld64">,
1192      Flags<[HelpHidden]>,
1193      Group<grp_undocumented>;
1194 def iosmac_version_min : Flag<["-"], "iosmac_version_min">,
1195      Alias<maccatalyst_version_min>,
1196      HelpText<"Alias for -maccatalyst_version_min">,
1197      Flags<[HelpHidden]>,
1198      Group<grp_undocumented>;
1199 def uikitformac_version_min : Flag<["-"], "uikitformac_version_min">,
1200      Alias<maccatalyst_version_min>,
1201      HelpText<"Alias for -maccatalyst_version_min">,
1202      Flags<[HelpHidden]>,
1203      Group<grp_undocumented>;
1204 def mcpu : Flag<["-"], "mcpu">,
1205      HelpText<"This option is undocumented in ld64">,
1206      Flags<[HelpHidden]>,
1207      Group<grp_undocumented>;
1208 def no_compact_unwind : Flag<["-"], "no_compact_unwind">,
1209      HelpText<"This option is undocumented in ld64">,
1210      Flags<[HelpHidden]>,
1211      Group<grp_undocumented>;
1212 def no_dtrace_dof : Flag<["-"], "no_dtrace_dof">,
1213      HelpText<"This option is undocumented in ld64">,
1214      Flags<[HelpHidden]>,
1215      Group<grp_undocumented>;
1216 def no_encryption : Flag<["-"], "no_encryption">,
1217      HelpText<"This option is undocumented in ld64">,
1218      Flags<[HelpHidden]>,
1219      Group<grp_undocumented>;
1220 def no_new_main : Flag<["-"], "no_new_main">,
1221      HelpText<"This option is undocumented in ld64">,
1222      Flags<[HelpHidden]>,
1223      Group<grp_undocumented>;
1224 def objc_abi_version : Separate<["-"], "objc_abi_version">,
1225      HelpText<"This option is undocumented in ld64">,
1226      Flags<[HelpHidden]>,
1227      Group<grp_undocumented>;
1228 def pause : Flag<["-"], "pause">,
1229      HelpText<"This option is undocumented in ld64">,
1230      Flags<[HelpHidden]>,
1231      Group<grp_undocumented>;
1232 def random_uuid : Flag<["-"], "random_uuid">,
1233      HelpText<"This option is undocumented in ld64">,
1234      Flags<[HelpHidden]>,
1235      Group<grp_undocumented>;
1236 def save_temps : Flag<["-"], "save-temps">,
1237      HelpText<"This option is undocumented in ld64">,
1238      Flags<[HelpHidden]>,
1239      Group<grp_undocumented>;
1240 def simulator_support : Flag<["-"], "simulator_support">,
1241      HelpText<"This option is undocumented in ld64">,
1242      Flags<[HelpHidden]>,
1243      Group<grp_undocumented>;
1244 def snapshot_dir : Flag<["-"], "snapshot_dir">,
1245      HelpText<"This option is undocumented in ld64">,
1246      Flags<[HelpHidden]>,
1247      Group<grp_undocumented>;
1248 def source_version : Flag<["-"], "source_version">,
1249      HelpText<"This option is undocumented in ld64">,
1250      Flags<[HelpHidden]>,
1251      Group<grp_undocumented>;
1252 def text_exec : Flag<["-"], "text_exec">,
1253      HelpText<"This option is undocumented in ld64">,
1254      Flags<[HelpHidden]>,
1255      Group<grp_undocumented>;
1256 def threaded_starts_section : Flag<["-"], "threaded_starts_section">,
1257      HelpText<"This option is undocumented in ld64">,
1258      Flags<[HelpHidden]>,
1259      Group<grp_undocumented>;
1260 def twolevel_namespace : Flag<["-"], "twolevel_namespace">,
1261      HelpText<"This option is undocumented in ld64">,
1262      Flags<[HelpHidden]>,
1263      Group<grp_undocumented>;
1264 def verbose_optimization_hints : Flag<["-"], "verbose_optimization_hints">,
1265      HelpText<"This option is undocumented in ld64">,
1266      Flags<[HelpHidden]>,
1267      Group<grp_undocumented>;
1268 def version_load_command : Flag<["-"], "version_load_command">,
1269      HelpText<"This option is undocumented in ld64">,
1270      Flags<[HelpHidden]>,
1271      Group<grp_undocumented>;
1273 def grp_ignored : OptionGroup<"ignored">, HelpText<"IGNORED">;
1275 def M : Flag<["-"], "M">,
1276      HelpText<"This option is ignored in ld64">,
1277      Flags<[HelpHidden]>,
1278      Group<grp_ignored>;
1279 def new_linker : Flag<["-"], "new_linker">,
1280      HelpText<"This option is ignored in ld64">,
1281      Flags<[HelpHidden]>,
1282      Group<grp_ignored>;