1 include "llvm/Option/OptParser.td"
3 // Flags that lld/MachO understands but ld64 doesn't. These take
4 // '--' instead of '-' and use dashes instead of underscores, so
5 // they don't collide with the ld64 compat options.
6 def grp_lld : OptionGroup<"kind">, HelpText<"LLD-SPECIFIC">;
8 def help : Flag<["-", "--"], "help">,
10 def help_hidden : Flag<["--"], "help-hidden">,
11 HelpText<"Display help for hidden options">,
13 def verbose : Flag<["--"], "verbose">,
15 def error_limit_eq : Joined<["--"], "error-limit=">,
16 HelpText<"Maximum number of errors to print before exiting (default: 20)">,
18 def color_diagnostics: Flag<["--"], "color-diagnostics">,
19 HelpText<"Alias for --color-diagnostics=always">,
21 def no_color_diagnostics: Flag<["--"], "no-color-diagnostics">,
22 HelpText<"Alias for --color-diagnostics=never">,
24 def color_diagnostics_eq: Joined<["--"], "color-diagnostics=">,
25 HelpText<"Use colors in diagnostics (default: auto)">,
26 MetaVarName<"[auto,always,never]">,
28 def threads_eq : Joined<["--"], "threads=">,
29 HelpText<"Number of threads. '1' disables multi-threading. By default all available hardware threads are used">,
31 def thinlto_jobs_eq : Joined<["--"], "thinlto-jobs=">,
32 HelpText<"Number of ThinLTO jobs. Default to --threads=">,
34 def reproduce: Separate<["--"], "reproduce">,
36 def reproduce_eq: Joined<["--"], "reproduce=">,
37 Alias<!cast<Separate>(reproduce)>,
38 HelpText<"Write tar file containing inputs and command to reproduce link">,
40 def version: Flag<["--"], "version">,
41 HelpText<"Display the version number and exit">,
43 def lto_legacy_pass_manager: Flag<["--"], "lto-legacy-pass-manager">,
44 HelpText<"Use the legacy pass manager in LLVM">,
46 def no_lto_legacy_pass_manager : Flag<["--"], "no-lto-legacy-pass-manager">,
47 HelpText<"Use the new pass manager in LLVM">,
49 def time_trace: Flag<["--"], "time-trace">, HelpText<"Record time trace">,
51 def time_trace_granularity_eq: Joined<["--"], "time-trace-granularity=">,
52 HelpText<"Minimum time granularity (in microseconds) traced by time profiler">,
54 def time_trace_file_eq: Joined<["--"], "time-trace-file=">,
55 HelpText<"Specify time trace output file">,
57 def deduplicate_literals: Flag<["--"], "deduplicate-literals">,
58 HelpText<"Enable literal deduplication. This is implied by --icf={safe,all}">,
60 def print_dylib_search: Flag<["--"], "print-dylib-search">,
61 HelpText<"Print which paths lld searched when trying to find dylibs">,
63 def icf_eq: Joined<["--"], "icf=">,
64 HelpText<"Set level for identical code folding (default: none)">,
65 MetaVarName<"[none,safe,all]">,
67 def lto_O: Joined<["--"], "lto-O">,
68 HelpText<"Set optimization level for LTO (default: 2)">,
69 MetaVarName<"<opt-level>">,
71 def thinlto_cache_policy: Joined<["--"], "thinlto-cache-policy=">,
72 HelpText<"Pruning policy for the ThinLTO cache">,
74 def O : JoinedOrSeparate<["-"], "O">,
75 HelpText<"Optimize output file size">;
76 def start_lib: Flag<["--"], "start-lib">,
77 HelpText<"Start a grouping of objects that should be treated as if they were together in an archive">;
78 def end_lib: Flag<["--"], "end-lib">,
79 HelpText<"End a grouping of objects that should be treated as if they were together in an archive">;
80 def no_warn_dylib_install_name: Joined<["--"], "no-warn-dylib-install-name">,
81 HelpText<"Do not warn on -install-name if -dylib is not passed (default)">,
83 def warn_dylib_install_name: Joined<["--"], "warn-dylib-install-name">,
84 HelpText<"Warn on -install-name if -dylib is not passed">,
86 def call_graph_profile_sort: Flag<["--"], "call-graph-profile-sort">,
87 HelpText<"Reorder sections with call graph profile (default)">,
89 def no_call_graph_profile_sort : Flag<["--"], "no-call-graph-profile-sort">,
90 HelpText<"Do not reorder sections with call graph profile">,
92 def print_symbol_order: Joined<["--"], "print-symbol-order=">,
93 HelpText<"Print a symbol order specified by --call-graph-profile-sort into the specified file">,
96 // This is a complete Options.td compiled from Apple's ld(1) manpage
97 // dated 2018-03-07 and cross checked with ld64 source code in repo
98 // https://github.com/apple-opensource/ld64 at git tag "512.4" dated
101 // Flags<[HelpHidden]> marks options that are not yet ported to lld,
102 // and serve as a scoreboard for annotating our progress toward
103 // implementing ld64 options in lld. As you add implementions to
104 // Driver.cpp, please remove the hidden flag here.
106 def grp_kind : OptionGroup<"kind">, HelpText<"OUTPUT KIND">;
108 def execute : Flag<["-"], "execute">,
109 HelpText<"Produce a main executable (default)">,
111 def dylib : Flag<["-"], "dylib">,
112 HelpText<"Produce a shared library">,
114 def bundle : Flag<["-"], "bundle">,
115 HelpText<"Produce a bundle">,
117 def r : Flag<["-"], "r">,
118 HelpText<"Merge multiple object files into one, retaining relocations">,
121 def dylinker : Flag<["-"], "dylinker">,
122 HelpText<"Produce a dylinker only used when building dyld">,
125 def dynamic : Flag<["-"], "dynamic">,
126 HelpText<"Link dynamically (default)">,
128 def static : Flag<["-"], "static">,
129 HelpText<"Link statically">,
132 def preload : Flag<["-"], "preload">,
133 HelpText<"Produce an unsegmented binary for embedded systems">,
136 def arch : Separate<["-"], "arch">,
137 MetaVarName<"<arch_name>">,
138 HelpText<"The architecture (e.g. ppc, ppc64, i386, x86_64)">,
140 def o : Separate<["-"], "o">,
141 MetaVarName<"<path>">,
142 HelpText<"The name of the output file (default: `a.out')">,
145 def grp_libs : OptionGroup<"libs">, HelpText<"LIBRARIES">;
147 def l : Joined<["-"], "l">,
148 MetaVarName<"<name>">,
149 HelpText<"Search for lib<name>.dylib or lib<name>.a on the library search path">,
151 def weak_l : Joined<["-"], "weak-l">,
152 MetaVarName<"<name>">,
153 HelpText<"Like -l<name>, but mark library and its references as weak imports">,
155 def weak_library : Separate<["-"], "weak_library">,
156 MetaVarName<"<path>">,
157 HelpText<"Like bare <path>, but mark library and its references as weak imports">,
159 def needed_l : Joined<["-"], "needed-l">,
160 MetaVarName<"<name>">,
161 HelpText<"Like -l<name>, but link library even if its symbols are not used and -dead_strip_dylibs is active">,
163 def needed_library : Separate<["-"], "needed_library">,
164 MetaVarName<"<path>">,
165 HelpText<"Like bare <path>, but link library even if its symbols are not used and -dead_strip_dylibs is active">,
167 def reexport_l : Joined<["-"], "reexport-l">,
168 MetaVarName<"<name>">,
169 HelpText<"Like -l<name>, but export all symbols of <name> from newly created library">,
171 def reexport_library : Separate<["-"], "reexport_library">,
172 MetaVarName<"<path>">,
173 HelpText<"Like bare <path>, but export all symbols of <path> from newly created library">,
175 def upward_l : Joined<["-"], "upward-l">,
176 MetaVarName<"<name>">,
177 HelpText<"Like -l<name>, but specify dylib as an upward dependency">,
180 def upward_library : Separate<["-"], "upward_library">,
181 MetaVarName<"<path>">,
182 HelpText<"Like bare <path>, but specify dylib as an upward dependency">,
185 def L : JoinedOrSeparate<["-"], "L">,
186 MetaVarName<"<dir>">,
187 HelpText<"Add dir to the library search path">,
189 def Z : Flag<["-"], "Z">,
190 HelpText<"Remove standard directories from the library and framework search paths">,
192 def syslibroot : Separate<["-"], "syslibroot">,
193 MetaVarName<"<rootdir>">,
194 HelpText<"Prepend <rootdir> to all library and framework search paths">,
196 def search_paths_first : Flag<["-"], "search_paths_first">,
197 HelpText<"Search for lib<name>.dylib and lib<name>.a at each step in traversing search path (default for Xcode 4 and later)">,
199 def search_dylibs_first : Flag<["-"], "search_dylibs_first">,
200 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)">,
202 def framework : Separate<["-"], "framework">,
203 MetaVarName<"<name>">,
204 HelpText<"Search for <name>.framework/<name> on the framework search path">,
206 def weak_framework : Separate<["-"], "weak_framework">,
207 MetaVarName<"<name>">,
208 HelpText<"Like -framework <name>, but mark framework and its references as weak imports">,
210 def needed_framework : Separate<["-"], "needed_framework">,
211 MetaVarName<"<name>">,
212 HelpText<"Like -framework <name>, but link <name> even if none of its symbols are used and -dead_strip_dylibs is active">,
214 def reexport_framework : Separate<["-"], "reexport_framework">,
215 MetaVarName<"<name>">,
216 HelpText<"Like -framework <name>, but export all symbols of <name> from the newly created library">,
218 def upward_framework : Separate<["-"], "upward_framework">,
219 MetaVarName<"<name>">,
220 HelpText<"Like -framework <name>, but specify the framework as an upward dependency">,
223 def F : JoinedOrSeparate<["-"], "F">,
224 MetaVarName<"<dir>">,
225 HelpText<"Add dir to the framework search path">,
227 def all_load : Flag<["-"], "all_load">,
228 HelpText<"Load all members of all static archive libraries">,
230 def noall_load : Flag<["-"], "noall_load">,
231 HelpText<"Don't load all static members from archives, this is the default, this negates -all_load">,
233 def ObjC : Flag<["-"], "ObjC">,
234 HelpText<"Load all members of static archives that are an Objective-C class or category.">,
236 def force_load : Separate<["-"], "force_load">,
237 MetaVarName<"<path>">,
238 HelpText<"Load all members static archive library at <path>">,
240 def force_load_swift_libs : Flag<["-"], "force_load_swift_libs">,
241 HelpText<"Apply -force_load to libraries listed in LC_LINKER_OPTIONS whose names start with 'swift'">,
244 def grp_content : OptionGroup<"content">, HelpText<"ADDITIONAL CONTENT">;
246 def sectcreate : MultiArg<["-"], "sectcreate", 3>,
247 MetaVarName<"<segment> <section> <file>">,
248 HelpText<"Create <section> in <segment> from the contents of <file>">,
250 def segcreate : MultiArg<["-"], "segcreate", 3>,
251 MetaVarName<"<segment> <section> <file>">,
253 HelpText<"Alias for -sectcreate">,
255 def add_empty_section : MultiArg<["-"], "add_empty_section", 2>,
256 MetaVarName<"<segment> <section>">,
257 HelpText<"Create an empty <section> in <segment>">,
259 def filelist : Separate<["-"], "filelist">,
260 MetaVarName<"<file>">,
261 HelpText<"Read names of files to link from <file>">,
263 def dtrace : Separate<["-"], "dtrace">,
264 MetaVarName<"<script>">,
265 HelpText<"Enable DTrace static probes according to declarations in <script>">,
269 def grp_opts : OptionGroup<"opts">, HelpText<"OPTIMIZATIONS">;
271 def dead_strip : Flag<["-"], "dead_strip">,
272 HelpText<"Remove unreachable functions and data">,
274 def order_file : Separate<["-"], "order_file">,
275 MetaVarName<"<file>">,
276 HelpText<"Layout functions and data according to specification in <file>">,
278 def no_order_inits : Flag<["-"], "no_order_inits">,
279 HelpText<"Disable default reordering of initializer and terminator functions">,
282 def no_order_data : Flag<["-"], "no_order_data">,
283 HelpText<"Disable default reordering of global data accessed at launch time">,
286 def image_base : Separate<["-"], "image_base">,
287 MetaVarName<"<address>">,
288 HelpText<"Preferred hex load address for a dylib or bundle.">,
291 def seg1addr : Separate<["-"], "seg1addr">,
292 MetaVarName<"<address>">,
294 HelpText<"Alias for -image_base">,
297 def no_implicit_dylibs : Flag<["-"], "no_implicit_dylibs">,
298 HelpText<"Do not optimize public dylib transitive symbol references">,
300 def exported_symbols_order : Separate<["-"], "exported_symbols_order">,
301 MetaVarName<"<file>">,
302 HelpText<"Specify frequently-used symbols in <file> to optimize symbol exports">,
305 def no_zero_fill_sections : Flag<["-"], "no_zero_fill_sections">,
306 HelpText<"Explicitly store zeroed data in the final image">,
309 def merge_zero_fill_sections : Flag<["-"], "merge_zero_fill_sections">,
310 HelpText<"Merge all zeroed data into the __zerofill section">,
313 def no_branch_islands : Flag<["-"], "no_branch_islands">,
314 HelpText<"Disable infra for branches beyond the maximum branch distance.">,
317 def no_deduplicate : Flag<["-"], "no_deduplicate">,
318 HelpText<"Disable code deduplicaiton (synonym for `--icf=none')">,
319 Alias<icf_eq>, AliasArgs<["none"]>,
322 def grp_version : OptionGroup<"version">, HelpText<"VERSION TARGETING">;
324 def platform_version : MultiArg<["-"], "platform_version", 3>,
325 MetaVarName<"<platform> <min_version> <sdk_version>">,
326 HelpText<"Platform (e.g., macos, ios, tvos, watchos, bridgeos, mac-catalyst, ios-sim, tvos-sim, watchos-sim, driverkit) and version numbers">,
328 def sdk_version : Separate<["-"], "sdk_version">,
329 HelpText<"This option is undocumented in ld64">,
332 def macos_version_min : Separate<["-"], "macos_version_min">,
333 MetaVarName<"<version>">,
334 HelpText<"Oldest macOS version for which linked output is usable">,
336 def macosx_version_min : Separate<["-"], "macosx_version_min">,
337 MetaVarName<"<version>">,
338 Alias<macos_version_min>,
339 HelpText<"Alias for -macos_version_min">,
342 def ios_version_min : Separate<["-"], "ios_version_min">,
343 MetaVarName<"<version>">,
344 HelpText<"Oldest iOS version for which linked output is usable">,
347 def ios_simulator_version_min : Separate<["-"], "ios_simulator_version_min">,
348 MetaVarName<"<version>">,
349 HelpText<"Oldest iOS simulator version for which linked output is usable">,
352 def iphoneos_version_min : Separate<["-"], "iphoneos_version_min">,
353 MetaVarName<"<version>">,
354 Alias<ios_version_min>,
355 HelpText<"Alias for -ios_version_min">,
358 def maccatalyst_version_min : Separate<["-"], "maccatalyst_version_min">,
359 MetaVarName<"<version>">,
360 HelpText<"Oldest MacCatalyst version for which linked output is usable">,
363 def iosmac_version_min : Separate<["-"], "iosmac_version_min">,
364 MetaVarName<"<version>">,
365 Alias<maccatalyst_version_min>,
366 HelpText<"Alias for -maccatalyst_version_min">,
369 def uikitformac_version_min : Separate<["-"], "uikitformac_version_min">,
370 MetaVarName<"<version>">,
371 Alias<maccatalyst_version_min>,
372 HelpText<"Alias for -maccatalyst_version_min">,
375 def tvos_version_min : Separate<["-"], "tvos_version_min">,
376 MetaVarName<"<version>">,
377 HelpText<"Oldest tvOS version for which linked output is usable">,
380 def watchos_version_min : Separate<["-"], "watchos_version_min">,
381 MetaVarName<"<version>">,
382 HelpText<"Oldest watchOS version for which linked output is usable">,
385 def bridgeos_version_min : Separate<["-"], "bridgeos_version_min">,
386 MetaVarName<"<version>">,
387 HelpText<"Oldest bridgeOS version for which linked output is usable">,
390 def driverkit_version_min : Separate<["-"], "driverkit_version_min">,
391 MetaVarName<"<version>">,
392 HelpText<"Oldest DriverKit version for which linked output is usable">,
396 def grp_dylib : OptionGroup<"dylib">, HelpText<"DYNAMIC LIBRARIES (DYLIB)">;
398 def install_name : Separate<["-"], "install_name">,
399 MetaVarName<"<name>">,
400 HelpText<"Set an internal install path in a dylib">,
402 def dylib_install_name : Separate<["-"], "dylib_install_name">,
403 MetaVarName<"<name>">,
405 HelpText<"Alias for -install_name">,
407 def dylinker_install_name : Separate<["-"], "dylinker_install_name">,
408 MetaVarName<"<name>">,
410 HelpText<"Alias for -install_name">,
412 def mark_dead_strippable_dylib : Flag<["-"], "mark_dead_strippable_dylib">,
413 HelpText<"Mark output dylib as dead-strippable: When a client links against it but does not use any of its symbols, the dylib will not be added to the client's list of needed dylibs">,
415 def compatibility_version : Separate<["-"], "compatibility_version">,
416 MetaVarName<"<version>">,
417 HelpText<"Compatibility <version> of this library">,
419 def dylib_compatibility_version : Separate<["-"], "dylib_compatibility_version">,
420 MetaVarName<"<version>">,
421 Alias<compatibility_version>,
422 HelpText<"Alias for -compatibility_version">,
425 def current_version : Separate<["-"], "current_version">,
426 MetaVarName<"<version>">,
427 HelpText<"Current <version> of this library">,
429 def dylib_current_version : Separate<["-"], "dylib_current_version">,
430 MetaVarName<"<version>">,
431 Alias<current_version>,
432 HelpText<"Alias for -current_version">,
436 def grp_main : OptionGroup<"main">, HelpText<"MAIN EXECUTABLE">;
438 def pie : Flag<["-"], "pie">,
439 HelpText<"Build a position independent executable (default)">,
441 def no_pie : Flag<["-"], "no_pie">,
442 HelpText<"Do not build a position independent executable">,
444 def pagezero_size : Separate<["-"], "pagezero_size">,
445 MetaVarName<"<size>">,
446 HelpText<"Size of unreadable segment at address zero is hex <size> (default is 4KB on 32-bit and 4GB on 64-bit)">,
448 def stack_size : Separate<["-"], "stack_size">,
449 MetaVarName<"<size>">,
450 HelpText<"Maximum hex stack size for the main thread in a program. (default is 8MB)">,
453 def allow_stack_execute : Flag<["-"], "allow_stack_execute">,
454 HelpText<"Mark stack segment as executable">,
457 def export_dynamic : Flag<["-"], "export_dynamic">,
458 HelpText<"Preserve all global symbols during LTO and when dead-stripping executables">,
461 def grp_bundle : OptionGroup<"bundle">, HelpText<"CREATING A BUNDLE">;
463 def bundle_loader : Separate<["-"], "bundle_loader">,
464 MetaVarName<"<executable>">,
465 HelpText<"Resolve undefined symbols from <executable>">,
468 def grp_object : OptionGroup<"object">, HelpText<"CREATING AN OBJECT FILE">;
470 def keep_private_externs : Flag<["-"], "keep_private_externs">,
471 HelpText<"Do not convert private external symbols to static symbols (only valid with -r)">,
474 def d : Flag<["-"], "d">,
475 HelpText<"Force tentative into real definitions for common symbols">,
479 def grp_resolve : OptionGroup<"resolve">, HelpText<"SYMBOL RESOLUTION">;
481 def exported_symbol : Separate<["-"], "exported_symbol">,
482 MetaVarName<"<symbol>">,
483 HelpText<"<symbol> remains global, while others become private externs">,
485 def exported_symbols_list : Separate<["-"], "exported_symbols_list">,
486 MetaVarName<"<file>">,
487 HelpText<"Symbols specified in <file> remain global, while others become private externs">,
489 def unexported_symbol : Separate<["-"], "unexported_symbol">,
490 MetaVarName<"<symbol>">,
491 HelpText<"Global <symbol> becomes private extern">,
493 def unexported_symbols_list : Separate<["-"], "unexported_symbols_list">,
494 MetaVarName<"<file>">,
495 HelpText<"Global symbols specified in <file> become private externs">,
497 def reexported_symbols_list : Separate<["-"], "reexported_symbols_list">,
498 MetaVarName<"<file>">,
499 HelpText<"Symbols from dependent dylibs specified in <file> are reexported by this dylib">,
502 def alias : MultiArg<["-"], "alias", 2>,
503 MetaVarName<"<symbol_name> <alternate_name>">,
504 HelpText<"Create a symbol alias with default global visibility">,
507 def alias_list : Separate<["-"], "alias_list">,
508 MetaVarName<"<file>">,
509 HelpText<"Create symbol aliases specified in <file>">,
512 def flat_namespace : Flag<["-"], "flat_namespace">,
513 HelpText<"Resolve symbols from all dylibs, both direct and transitive. Do not record source libraries: dyld must re-search at runtime and use the first definition found">,
515 def twolevel_namespace : Flag<["-"], "twolevel_namespace">,
516 HelpText<"Make dyld look up symbols by (dylib,name) pairs (default)">,
518 def u : Separate<["-"], "u">,
519 MetaVarName<"<symbol>">,
520 HelpText<"Require that <symbol> be defined for the link to succeed">,
522 def U : Separate<["-"], "U">,
523 MetaVarName<"<symbol>">,
524 HelpText<"Allow <symbol> to have no definition">,
526 def undefined : Separate<["-"], "undefined">,
527 MetaVarName<"<treatment>">,
528 HelpText<"Handle undefined symbols according to <treatment>: error, warning, suppress, or dynamic_lookup (default is error)">,
530 def rpath : Separate<["-"], "rpath">,
531 MetaVarName<"<path>">,
532 HelpText<"Add <path> to dyld search list for dylibs with load path prefix `@rpath/'">,
534 def commons : Separate<["-"], "commons">,
535 MetaVarName<"<treatment>">,
536 HelpText<"Resolve tentative definitions in dylibs according to <treatment>: ignore_dylibs, use_dylibs, error (default is ignore_dylibs)">,
540 def grp_introspect : OptionGroup<"introspect">, HelpText<"INTROSPECTING THE LINKER">;
542 def why_load : Flag<["-"], "why_load">,
543 HelpText<"Log why each object file is loaded from a static library">,
544 Group<grp_introspect>;
545 def whyload : Flag<["-"], "whyload">,
547 HelpText<"Alias for -why_load">,
548 Group<grp_introspect>;
549 def why_live : Separate<["-"], "why_live">,
550 MetaVarName<"<symbol>">,
551 HelpText<"Log a chain of references to <symbol>, for use with -dead_strip">,
552 Group<grp_introspect>;
553 def print_statistics : Flag<["-"], "print_statistics">,
554 HelpText<"Log the linker's memory and CPU usage">,
556 Group<grp_introspect>;
557 def t : Flag<["-"], "t">,
558 HelpText<"Log every file the linker loads: object, archive, and dylib">,
559 Group<grp_introspect>;
560 def whatsloaded : Flag<["-"], "whatsloaded">,
561 HelpText<"Logs only the object files the linker loads">,
563 Group<grp_introspect>;
564 def order_file_statistics : Flag<["-"], "order_file_statistics">,
565 HelpText<"Logs information about -order_file">,
567 Group<grp_introspect>;
568 def map : Separate<["-"], "map">,
569 MetaVarName<"<path>">,
570 HelpText<"Writes all symbols and their addresses to <path>">,
571 Group<grp_introspect>;
572 def dependency_info : Separate<["-"], "dependency_info">,
573 MetaVarName<"<path>">,
574 HelpText<"Dump dependency info">,
575 Group<grp_introspect>;
576 def save_temps : Flag<["-"], "save-temps">,
577 HelpText<"Save intermediate LTO compilation results">,
578 Group<grp_introspect>;
580 def grp_symtab : OptionGroup<"symtab">, HelpText<"SYMBOL TABLE">;
582 def S : Flag<["-"], "S">,
583 HelpText<"Strip debug information (STABS or DWARF) from the output">,
585 def x : Flag<["-"], "x">,
586 HelpText<"Exclude non-global symbols from the output symbol table">,
589 def non_global_symbols_strip_list : Separate<["-"], "non_global_symbols_strip_list">,
590 MetaVarName<"<path>">,
591 HelpText<"Specify in <path> the non-global symbols that should be removed from the output symbol table">,
594 def non_global_symbols_no_strip_list : Separate<["-"], "non_global_symbols_no_strip_list">,
595 MetaVarName<"<path>">,
596 HelpText<"Specify in <path> the non-global symbols that should remain in the output symbol table">,
599 def oso_prefix : Separate<["-"], "oso_prefix">,
600 MetaVarName<"<path>">,
601 HelpText<"Remove the prefix <path> from OSO symbols in the debug map">,
603 def add_ast_path : Separate<["-"], "add_ast_path">,
604 MetaVarName<"<path>">,
605 HelpText<"AST paths will be emitted as STABS">,
608 def grp_bitcode : OptionGroup<"bitcode">, HelpText<"BITCODE BUILD FLOW">;
610 def bitcode_bundle : Flag<["-"], "bitcode_bundle">,
611 HelpText<"Generate an embedded bitcode bundle in the __LLVM,__bundle section of the output">,
613 def bitcode_hide_symbols : Flag<["-"], "bitcode_hide_symbols">,
614 HelpText<"With -bitcode_bundle, hide all non-exported symbols from output bitcode bundle.">,
617 def bitcode_symbol_map : Separate<["-"], "bitcode_symbol_map">,
618 MetaVarName<"<path>">,
619 HelpText<"Write the bitcode symbol reverse mapping to file <path>, or if a directory, to <path>/UUID.bcsymbolmap">,
623 def grp_rare : OptionGroup<"rare">, HelpText<"RARELY USED">;
625 def v : Flag<["-"], "v">,
626 HelpText<"Print the linker version and search paths in addition to linking">,
628 def adhoc_codesign : Flag<["-"], "adhoc_codesign">,
629 HelpText<"Write an ad-hoc code signature to the output file (default for arm64 binaries)">,
631 def no_adhoc_codesign : Flag<["-"], "no_adhoc_codesign">,
632 HelpText<"Do not write an ad-hoc code signature to the output file (default for x86_64 binaries)">,
634 def version_details : Flag<["-"], "version_details">,
635 HelpText<"Print the linker version in JSON form">,
638 def no_weak_imports : Flag<["-"], "no_weak_imports">,
639 HelpText<"Fail if any symbols are weak imports, allowed to be NULL at runtime">,
642 def verbose_deduplicate : Flag<["-"], "verbose_deduplicate">,
643 HelpText<"Print function names eliminated by deduplication and the total size of code savings">,
646 def no_inits : Flag<["-"], "no_inits">,
647 HelpText<"Fail if the output contains static initializers">,
650 def no_warn_inits : Flag<["-"], "no_warn_inits">,
651 HelpText<"Suppress warnings for static initializers in the output">,
654 def debug_variant : Flag<["-"], "debug_variant">,
655 HelpText<"Suppress warnings germane to binaries shipping to customers">,
658 def unaligned_pointers : Separate<["-"], "unaligned_pointers">,
659 MetaVarName<"<treatment>">,
660 HelpText<"Handle unaligned pointers in __DATA segments according to <treatment>: warning, error, or suppress (default for arm64e is error, otherwise suppress)">,
663 def dirty_data_list : Separate<["-"], "dirty_data_list">,
664 MetaVarName<"<path>">,
665 HelpText<"Specify data symbols in <path> destined for the __DATA_DIRTY segment">,
668 def max_default_common_align : Separate<["-"], "max_default_common_align">,
669 MetaVarName<"<boundary>">,
670 HelpText<"Reduce maximum alignment for common symbols to a hex power-of-2 <boundary>">,
673 def move_to_rw_segment : MultiArg<["-"], "move_to_rw_segment", 2>,
674 MetaVarName<"<segment> <path>">,
675 HelpText<"Move data symbols listed in <path> to another <segment>">,
678 def move_to_ro_segment : MultiArg<["-"], "move_to_ro_segment", 2>,
679 MetaVarName<"<segment> <path>">,
680 HelpText<"Move code symbols listed in <path> to another <segment>">,
683 def rename_section : MultiArg<["-"], "rename_section", 4>,
684 MetaVarName<"<from_segment> <from_section> <to_segment> <to_section>">,
685 HelpText<"Rename <from_segment>/<from_section> as <to_segment>/<to_section>">,
687 def rename_segment : MultiArg<["-"], "rename_segment", 2>,
688 MetaVarName<"<from_segment> <to_segment>">,
689 HelpText<"Rename <from_segment> as <to_segment>">,
691 def trace_symbol_layout : Flag<["-"], "trace_symbol_layout">,
692 HelpText<"Show where and why symbols move, as specified by -move_to_ro_segment, -move_to_rw_segment, -rename_section, and -rename_segment">,
695 def data_const : Flag<["-"], "data_const">,
696 HelpText<"Force migration of readonly data into __DATA_CONST segment">,
698 def no_data_const : Flag<["-"], "no_data_const">,
699 HelpText<"Block migration of readonly data away from __DATA segment">,
701 def text_exec : Flag<["-"], "text_exec">,
702 HelpText<"Rename __segment TEXT to __TEXT_EXEC for sections __text and __stubs">,
705 def section_order : MultiArg<["-"], "section_order", 2>,
706 MetaVarName<"<segment> <sections>">,
707 HelpText<"With -preload, specify layout sequence of colon-separated <sections> in <segment>">,
710 def segment_order : Separate<["-"], "segment_order">,
711 MetaVarName<"<colon_separated_segment_list>">,
712 HelpText<"With -preload, specify layout sequence of colon-separated <segments>">,
715 def allow_heap_execute : Flag<["-"], "allow_heap_execute">,
716 HelpText<"On i386, allow any page to execute code">,
719 def application_extension : Flag<["-"], "application_extension">,
720 HelpText<"Mark output as safe for use in an application extension, and validate that linked dylibs are safe">,
722 def no_application_extension : Flag<["-"], "no_application_extension">,
723 HelpText<"Disable application extension functionality (default)">,
725 def fatal_warnings : Flag<["-"], "fatal_warnings">,
726 HelpText<"Treat warnings as errors">,
728 def no_eh_labels : Flag<["-"], "no_eh_labels">,
729 HelpText<"In -r mode, suppress .eh labels in the __eh_frame section">,
732 def warn_compact_unwind : Flag<["-"], "warn_compact_unwind">,
733 HelpText<"Warn for each FDE that cannot compact into the __unwind_info section and must remain in the __eh_frame section">,
736 def warn_weak_exports : Flag<["-"], "warn_weak_exports">,
737 HelpText<"Warn if the linked image contains weak external symbols">,
740 def no_weak_exports : Flag<["-"], "no_weak_exports">,
741 HelpText<"Fail if the linked image contains weak external symbols">,
744 def objc_gc_compaction : Flag<["-"], "objc_gc_compaction">,
745 HelpText<"Mark the Objective-C image as compatible with compacting garbage collection">,
748 def objc_gc : Flag<["-"], "objc_gc">,
749 HelpText<"Verify that all code was compiled with -fobjc-gc or -fobjc-gc-only">,
752 def objc_gc_only : Flag<["-"], "objc_gc_only">,
753 HelpText<"Verify that all code was compiled with -fobjc-gc-only">,
756 def dead_strip_dylibs : Flag<["-"], "dead_strip_dylibs">,
757 HelpText<"Remove dylibs that are unreachable by the entry point or exported symbols">,
759 def allow_sub_type_mismatches : Flag<["-"], "allow_sub_type_mismatches">,
760 HelpText<"Permit mixing objects compiled for different ARM CPU subtypes">,
763 def no_uuid : Flag<["-"], "no_uuid">,
764 HelpText<"Do not generate the LC_UUID load command">,
767 def root_safe : Flag<["-"], "root_safe">,
768 HelpText<"Set the MH_ROOT_SAFE bit in the mach-o header">,
771 def setuid_safe : Flag<["-"], "setuid_safe">,
772 HelpText<"Set the MH_SETUID_SAFE bit in the mach-o header">,
775 def interposable : Flag<["-"], "interposable">,
776 HelpText<"Indirects access to all to exported symbols in a dylib">,
779 def multi_module : Flag<["-"], "multi_module">,
781 HelpText<"Alias for -interposable">,
784 def init : Separate<["-"], "init">,
785 MetaVarName<"<symbol>">,
786 HelpText<"Run <symbol> as the first initializer in a dylib">,
789 def sub_library : Separate<["-"], "sub_library">,
790 MetaVarName<"<name>">,
791 HelpText<"Re-export the dylib as <name>">,
793 def sub_umbrella : Separate<["-"], "sub_umbrella">,
794 MetaVarName<"<name>">,
795 HelpText<"Re-export the framework as <name>">,
797 def allowable_client : Separate<["-"], "allowable_client">,
798 MetaVarName<"<name>">,
799 HelpText<"Specify <name> of a dylib or framework that is allowed to link to this dylib">,
802 def client_name : Separate<["-"], "client_name">,
803 MetaVarName<"<name>">,
804 HelpText<"Specifies a <name> this client should match with the -allowable_client <name> in a dependent dylib">,
807 def umbrella : Separate<["-"], "umbrella">,
808 MetaVarName<"<name>">,
809 HelpText<"Re-export this dylib through the umbrella framework <name>">,
811 def headerpad : Separate<["-"], "headerpad">,
812 MetaVarName<"<size>">,
813 HelpText<"Allocate hex <size> extra space for future expansion of the load commands via install_name_tool (default is 0x20)">,
815 def headerpad_max_install_names : Flag<["-"], "headerpad_max_install_names">,
816 HelpText<"Allocate extra space so all load-command paths can expand to MAXPATHLEN via install_name_tool">,
818 def bind_at_load : Flag<["-"], "bind_at_load">,
819 HelpText<"Tell dyld to bind all symbols at load time, rather than lazily">,
822 def force_flat_namespace : Flag<["-"], "force_flat_namespace">,
823 HelpText<"Tell dyld to use a flat namespace on this executable and all its dependent dylibs & bundles">,
826 def segalign : Separate<["-"], "segalign">,
827 MetaVarName<"<boundary>">,
828 HelpText<"Align all segments to hex power-of-2 <boundary>">,
831 def sectalign : MultiArg<["-"], "sectalign", 3>,
832 MetaVarName<"<segment> <section> <boundary>">,
833 HelpText<"Align <section> within <segment> to hex power-of-2 <boundary>">,
835 def stack_addr : Separate<["-"], "stack_addr">,
836 MetaVarName<"<address>">,
837 HelpText<"Initialize stack pointer to hex <address> rounded to a page boundary">,
840 def segprot : MultiArg<["-"], "segprot", 3>,
841 MetaVarName<"<segment> <max> <init>">,
842 HelpText<"Specifies the <max> and <init> virtual memory protection of <segment> as r/w/x/-seg_addr_table path">,
844 def segs_read_write_addr : Separate<["-"], "segs_read_write_addr">,
845 MetaVarName<"<address>">,
846 HelpText<"This option is obsolete">,
849 def segs_read_only_addr : Separate<["-"], "segs_read_only_addr">,
850 MetaVarName<"<address>">,
851 HelpText<"This option is obsolete">,
854 def segaddr : MultiArg<["-"], "segaddr", 2>,
855 MetaVarName<"<segment> <address>">,
856 HelpText<"Specify the starting hex <address> at a 4KiB page boundary for <segment>">,
859 def seg_page_size : MultiArg<["-"], "seg_page_size", 2>,
860 MetaVarName<"<segment> <size>">,
861 HelpText<"Specifies the page <size> for <segment>. Segment size will be a multiple of its page size">,
864 def dylib_file : Separate<["-"], "dylib_file">,
865 MetaVarName<"<install_path:current_path>">,
866 HelpText<"Specify <current_path> as different from where a dylib normally resides at <install_path>">,
869 def weak_reference_mismatches : Separate<["-"], "weak_reference_mismatches">,
870 MetaVarName<"<treatment>">,
871 HelpText<"Resolve symbol imports of conflicting weakness according to <treatment> as weak, non-weak, or error (default is non-weak)">,
874 def read_only_relocs : Separate<["-"], "read_only_relocs">,
875 MetaVarName<"<treatment>">,
876 HelpText<"Handle relocations that modify read-only pages according to <treatment> of warning, error, or suppress (i.e., allow)">,
879 def force_cpusubtype_ALL : Flag<["-"], "force_cpusubtype_ALL">,
880 HelpText<"Mark binary as runnable on any PowerPC, ignoring any PowerPC cpu requirements encoded in the object files">,
883 def no_arch_warnings : Flag<["-"], "no_arch_warnings">,
884 HelpText<"Suppresses warnings about inputs whose architecture does not match the -arch option">,
887 def arch_errors_fatal : Flag<["-"], "arch_errors_fatal">,
888 HelpText<"Escalate to errors any warnings about inputs whose architecture does not match the -arch option">,
890 def e : Separate<["-"], "e">,
891 MetaVarName<"<symbol>">,
892 HelpText<"Make <symbol> the entry point of an executable (default is \"start\" from crt1.o)">,
894 def w : Flag<["-"], "w">,
895 HelpText<"Suppress all warnings">,
898 def final_output : Separate<["-"], "final_output">,
899 MetaVarName<"<name>">,
900 HelpText<"Specify dylib install name if -install_name is not used; used by compiler driver for multiple -arch arguments">,
902 def arch_multiple : Flag<["-"], "arch_multiple">,
903 HelpText<"Augment error and warning messages with the architecture name">,
905 def dot : Separate<["-"], "dot">,
906 MetaVarName<"<path>">,
907 HelpText<"Write a graph of symbol dependencies to <path> as a .dot file viewable with GraphViz">,
910 def keep_relocs : Flag<["-"], "keep_relocs">,
911 HelpText<"Retain section-based relocation records in the output, which are ignored at runtime by dyld">,
914 def warn_stabs : Flag<["-"], "warn_stabs">,
915 HelpText<"Warn when bad stab symbols inside a BINCL/EINCL prevent optimization">,
918 def warn_commons : Flag<["-"], "warn_commons">,
919 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">,
922 def read_only_stubs : Flag<["-"], "read_only_stubs">,
923 HelpText<"On i386, make the __IMPORT segment of a final linked image read-only">,
926 def interposable_list : Separate<["-"], "interposable_list">,
927 MetaVarName<"<path>">,
928 HelpText<"Access global symbols listed in <path> indirectly">,
931 def no_function_starts : Flag<["-"], "no_function_starts">,
932 HelpText<"Do not create table of function start addresses">,
934 def no_objc_category_merging : Flag<["-"], "no_objc_category_merging">,
935 HelpText<"Do not merge Objective-C categories into their classes">,
938 def object_path_lto : Separate<["-"], "object_path_lto">,
939 MetaVarName<"<path>">,
940 HelpText<"Retain any temporary mach-o file in <path> that would otherwise be deleted during LTO">,
942 def cache_path_lto : Separate<["-"], "cache_path_lto">,
943 MetaVarName<"<path>">,
944 HelpText<"Use <path> as a directory for the incremental LTO cache">,
946 def prune_interval_lto : Separate<["-"], "prune_interval_lto">,
947 MetaVarName<"<seconds>">,
948 HelpText<"Prune the incremental LTO cache after <seconds> (-1 disables pruning)">,
950 def prune_after_lto : Separate<["-"], "prune_after_lto">,
951 MetaVarName<"<seconds>">,
952 HelpText<"Remove LTO cache entries after <seconds>">,
954 def max_relative_cache_size_lto : Separate<["-"], "max_relative_cache_size_lto">,
955 MetaVarName<"<percent>">,
956 HelpText<"Limit the incremental LTO cache growth to <percent> of free disk, space">,
958 def page_align_data_atoms : Flag<["-"], "page_align_data_atoms">,
959 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">,
962 def not_for_dyld_shared_cache : Flag<["-"], "not_for_dyld_shared_cache">,
963 HelpText<"Prevent system dylibs from being placed into the dylib shared cache">,
966 def mllvm : Separate<["-"], "mllvm">,
967 HelpText<"Options to pass to LLVM">,
969 def mcpu : Separate<["-"], "mcpu">,
970 HelpText<"Processor family target for LTO code generation">,
972 def no_dtrace_dof : Flag<["-"], "no_dtrace_dof">,
973 HelpText<"Disable dtrace-dof processing (default).">,
976 def grp_deprecated : OptionGroup<"deprecated">, HelpText<"DEPRECATED">;
978 def lazy_framework : Separate<["-"], "lazy_framework">,
979 MetaVarName<"<name>">,
980 HelpText<"This option is deprecated and is now an alias for -framework.">,
982 Group<grp_deprecated>;
983 def lazy_library : Separate<["-"], "lazy_library">,
984 MetaVarName<"<path>">,
985 HelpText<"This option is deprecated and is now an alias for regular linking">,
987 Group<grp_deprecated>;
988 def lazy_l : Joined<["-"], "lazy-l">,
989 MetaVarName<"<name>">,
990 HelpText<"This option is deprecated and is now an alias for -l<path>.">,
992 Group<grp_deprecated>;
993 def single_module : Flag<["-"], "single_module">,
994 HelpText<"Unnecessary option: this is already the default">,
996 Group<grp_deprecated>;
997 def no_dead_strip_inits_and_terms : Flag<["-"], "no_dead_strip_inits_and_terms">,
998 HelpText<"Unnecessary option: initialization and termination are roots of the dead strip graph, so never dead stripped">,
1000 Group<grp_deprecated>;
1002 def grp_obsolete : OptionGroup<"obsolete">, HelpText<"OBSOLETE">;
1004 def sectorder : MultiArg<["-"], "sectorder", 3>,
1005 MetaVarName<"<segname> <sectname> <orderfile>">,
1006 HelpText<"Obsolete. Replaced by more general -order_file option">,
1007 Group<grp_obsolete>;
1008 def lto_library : Separate<["-"], "lto_library">,
1009 MetaVarName<"<path>">,
1010 HelpText<"Obsolete. LLD supports LTO directly, without using an external dylib.">,
1011 Group<grp_obsolete>;
1012 def y : Joined<["-"], "y">,
1013 MetaVarName<"<symbol>">,
1014 HelpText<"This option is obsolete in ld64">,
1015 Flags<[HelpHidden]>,
1016 Group<grp_obsolete>;
1017 def sectobjectsymbols : MultiArg<["-"], "sectobjectsymbols", 2>,
1018 MetaVarName<"<segname> <sectname>">,
1019 HelpText<"This option is obsolete in ld64">,
1020 Flags<[HelpHidden]>,
1021 Group<grp_obsolete>;
1022 def nofixprebinding : Flag<["-"], "nofixprebinding">,
1023 HelpText<"This option is obsolete in ld64">,
1024 Flags<[HelpHidden]>,
1025 Group<grp_obsolete>;
1026 def noprebind_all_twolevel_modules : Flag<["-"], "noprebind_all_twolevel_modules">,
1027 HelpText<"This option is obsolete in ld64">,
1028 Flags<[HelpHidden]>,
1029 Group<grp_obsolete>;
1030 def prebind_all_twolevel_modules : Flag<["-"], "prebind_all_twolevel_modules">,
1031 HelpText<"This option is obsolete in ld64">,
1032 Flags<[HelpHidden]>,
1033 Group<grp_obsolete>;
1034 def prebind_allow_overlap : Flag<["-"], "prebind_allow_overlap">,
1035 HelpText<"This option is obsolete in ld64">,
1036 Flags<[HelpHidden]>,
1037 Group<grp_obsolete>;
1038 def noprebind : Flag<["-"], "noprebind">,
1039 HelpText<"This option is obsolete in ld64">,
1040 Flags<[HelpHidden]>,
1041 Group<grp_obsolete>;
1042 def sect_diff_relocs : Separate<["-"], "sect_diff_relocs">,
1043 MetaVarName<"<treatment>">,
1044 HelpText<"This option is obsolete in ld64">,
1045 Flags<[HelpHidden]>,
1046 Group<grp_obsolete>;
1047 def A : Separate<["-"], "A">,
1048 MetaVarName<"<basefile>">,
1049 HelpText<"This option is obsolete in ld64">,
1050 Flags<[HelpHidden]>,
1051 Group<grp_obsolete>;
1052 def b : Flag<["-"], "b">,
1053 HelpText<"This option is obsolete in ld64">,
1054 Flags<[HelpHidden]>,
1055 Group<grp_obsolete>;
1056 def Sn : Flag<["-"], "Sn">,
1057 HelpText<"This option is obsolete in ld64">,
1058 Flags<[HelpHidden]>,
1059 Group<grp_obsolete>;
1060 def Si : Flag<["-"], "Si">,
1061 HelpText<"This option is obsolete in ld64">,
1062 Flags<[HelpHidden]>,
1063 Group<grp_obsolete>;
1064 def Sp : Flag<["-"], "Sp">,
1065 HelpText<"This option is obsolete in ld64">,
1066 Flags<[HelpHidden]>,
1067 Group<grp_obsolete>;
1068 def X : Flag<["-"], "X">,
1069 HelpText<"This option is obsolete in ld64">,
1070 Flags<[HelpHidden]>,
1071 Group<grp_obsolete>;
1072 def s : Flag<["-"], "s">,
1073 HelpText<"This option is obsolete in ld64">,
1074 Flags<[HelpHidden]>,
1075 Group<grp_obsolete>;
1076 def m : Flag<["-"], "m">,
1077 HelpText<"This option is obsolete in ld64">,
1078 Flags<[HelpHidden]>,
1079 Group<grp_obsolete>;
1080 def Y : Separate<["-"], "Y">,
1081 MetaVarName<"<number>">,
1082 HelpText<"This option is obsolete in ld64">,
1083 Flags<[HelpHidden]>,
1084 Group<grp_obsolete>;
1085 def nomultidefs : Flag<["-"], "nomultidefs">,
1086 HelpText<"This option is obsolete in ld64">,
1087 Flags<[HelpHidden]>,
1088 Group<grp_obsolete>;
1089 def multiply_defined_unused : Separate<["-"], "multiply_defined_unused">,
1090 MetaVarName<"<treatment>">,
1091 HelpText<"This option is obsolete in ld64">,
1092 Flags<[HelpHidden]>,
1093 Group<grp_obsolete>;
1094 def multiply_defined : Separate<["-"], "multiply_defined">,
1095 MetaVarName<"<treatment>">,
1096 HelpText<"This option is obsolete in ld64">,
1097 Flags<[HelpHidden]>,
1098 Group<grp_obsolete>;
1099 def private_bundle : Flag<["-"], "private_bundle">,
1100 HelpText<"This option is obsolete in ld64">,
1101 Flags<[HelpHidden]>,
1102 Group<grp_obsolete>;
1103 def seg_addr_table_filename : Separate<["-"], "seg_addr_table_filename">,
1104 MetaVarName<"<path>">,
1105 HelpText<"This option is obsolete in ld64">,
1106 Flags<[HelpHidden]>,
1107 Group<grp_obsolete>;
1108 def sectorder_detail : Flag<["-"], "sectorder_detail">,
1109 HelpText<"This option is obsolete in ld64">,
1110 Flags<[HelpHidden]>,
1111 Group<grp_obsolete>;
1112 def no_compact_linkedit : Flag<["-"], "no_compact_linkedit">,
1113 HelpText<"This option is obsolete in ld64">,
1114 Flags<[HelpHidden]>,
1115 Group<grp_obsolete>;
1116 def dependent_dr_info : Flag<["-"], "dependent_dr_info">,
1117 HelpText<"This option is obsolete in ld64">,
1118 Flags<[HelpHidden]>,
1119 Group<grp_obsolete>;
1120 def no_dependent_dr_info : Flag<["-"], "no_dependent_dr_info">,
1121 HelpText<"This option is obsolete in ld64">,
1122 Flags<[HelpHidden]>,
1123 Group<grp_obsolete>;
1124 def seglinkedit : Flag<["-"], "seglinkedit">,
1125 HelpText<"This option is obsolete in ld64">,
1126 Flags<[HelpHidden]>,
1127 Group<grp_obsolete>;
1128 def noseglinkedit : Flag<["-"], "noseglinkedit">,
1129 HelpText<"This option is obsolete in ld64">,
1130 Flags<[HelpHidden]>,
1131 Group<grp_obsolete>;
1132 def fvmlib : Flag<["-"], "fvmlib">,
1133 HelpText<"This option is obsolete in ld64">,
1134 Flags<[HelpHidden]>,
1135 Group<grp_obsolete>;
1136 def run_init_lazily : Flag<["-"], "run_init_lazily">,
1137 HelpText<"This option is obsolete in ld64">,
1138 Flags<[HelpHidden]>,
1139 Group<grp_obsolete>;
1140 def prebind : Flag<["-"], "prebind">,
1141 HelpText<"This option is obsolete in ld64">,
1142 Flags<[HelpHidden]>,
1143 Group<grp_obsolete>;
1144 def twolevel_namespace_hints : Flag<["-"], "twolevel_namespace_hints">,
1145 HelpText<"This option is obsolete in ld64">,
1146 Flags<[HelpHidden]>,
1147 Group<grp_obsolete>;
1148 def slow_stubs : Flag<["-"], "slow_stubs">,
1149 HelpText<"This option is obsolete in ld64">,
1150 Flags<[HelpHidden]>,
1151 Group<grp_obsolete>;
1153 def grp_undocumented : OptionGroup<"undocumented">, HelpText<"UNDOCUMENTED">;
1155 def add_linker_option : Flag<["-"], "add_linker_option">,
1156 HelpText<"This option is undocumented in ld64">,
1157 Flags<[HelpHidden]>,
1158 Group<grp_undocumented>;
1159 def add_source_version : Flag<["-"], "add_source_version">,
1160 HelpText<"This option is undocumented in ld64">,
1161 Flags<[HelpHidden]>,
1162 Group<grp_undocumented>;
1163 def no_source_version : Flag<["-"], "no_source_version">,
1164 HelpText<"This option is undocumented in ld64">,
1165 Flags<[HelpHidden]>,
1166 Group<grp_undocumented>;
1167 def add_split_seg_info : Flag<["-"], "add_split_seg_info">,
1168 HelpText<"This option is undocumented in ld64">,
1169 Flags<[HelpHidden]>,
1170 Group<grp_undocumented>;
1171 def allow_dead_duplicates : Flag<["-"], "allow_dead_duplicates">,
1172 HelpText<"This option is undocumented in ld64">,
1173 Flags<[HelpHidden]>,
1174 Group<grp_undocumented>;
1175 def allow_simulator_linking_to_macosx_dylibs : Flag<["-"], "allow_simulator_linking_to_macosx_dylibs">,
1176 HelpText<"This option is undocumented in ld64">,
1177 Flags<[HelpHidden]>,
1178 Group<grp_undocumented>;
1179 def bitcode_process_mode : Flag<["-"], "bitcode_process_mode">,
1180 HelpText<"This option is undocumented in ld64">,
1181 Flags<[HelpHidden]>,
1182 Group<grp_undocumented>;
1183 def bitcode_verify : Flag<["-"], "bitcode_verify">,
1184 HelpText<"This option is undocumented in ld64">,
1185 Flags<[HelpHidden]>,
1186 Group<grp_undocumented>;
1187 def classic_linker : Flag<["-"], "classic_linker">,
1188 HelpText<"This option is undocumented in ld64">,
1189 Flags<[HelpHidden]>,
1190 Group<grp_undocumented>;
1191 def data_in_code_info : Flag<["-"], "data_in_code_info">,
1192 HelpText<"Emit data-in-code information (default)">,
1193 Group<grp_undocumented>;
1194 def no_data_in_code_info : Flag<["-"], "no_data_in_code_info">,
1195 HelpText<"Do not emit data-in-code information">,
1196 Group<grp_undocumented>;
1197 def debug_snapshot : Flag<["-"], "debug_snapshot">,
1198 HelpText<"This option is undocumented in ld64">,
1199 Flags<[HelpHidden]>,
1200 Group<grp_undocumented>;
1201 def demangle : Flag<["-"], "demangle">,
1202 HelpText<"Demangle symbol names in diagnostics">;
1203 def dyld_env : Flag<["-"], "dyld_env">,
1204 HelpText<"This option is undocumented in ld64">,
1205 Flags<[HelpHidden]>,
1206 Group<grp_undocumented>;
1207 def encryptable : Flag<["-"], "encryptable">,
1208 HelpText<"Generate the LC_ENCRYPTION_INFO load command">,
1209 Group<grp_undocumented>;
1210 def no_encryption : Flag<["-"], "no_encryption">,
1211 HelpText<"Do not generate the LC_ENCRYPTION_INFO load command">,
1212 Group<grp_undocumented>;
1213 def executable_path : Flag<["-"], "executable_path">,
1214 HelpText<"This option is undocumented in ld64">,
1215 Flags<[HelpHidden]>,
1216 Group<grp_undocumented>;
1217 def fixup_chains : Flag<["-"], "fixup_chains">,
1218 HelpText<"This option is undocumented in ld64">,
1219 Flags<[HelpHidden]>,
1220 Group<grp_undocumented>;
1221 def fixup_chains_section : Flag<["-"], "fixup_chains_section">,
1222 HelpText<"This option is undocumented in ld64">,
1223 Flags<[HelpHidden]>,
1224 Group<grp_undocumented>;
1225 def flto_codegen_only : Flag<["-"], "flto-codegen-only">,
1226 HelpText<"This option is undocumented in ld64">,
1227 Flags<[HelpHidden]>,
1228 Group<grp_undocumented>;
1229 def force_symbol_not_weak : Flag<["-"], "force_symbol_not_weak">,
1230 HelpText<"This option is undocumented in ld64">,
1231 Flags<[HelpHidden]>,
1232 Group<grp_undocumented>;
1233 def force_symbols_coalesce_list : Flag<["-"], "force_symbols_coalesce_list">,
1234 HelpText<"This option is undocumented in ld64">,
1235 Flags<[HelpHidden]>,
1236 Group<grp_undocumented>;
1237 def force_symbols_not_weak_list : Flag<["-"], "force_symbols_not_weak_list">,
1238 HelpText<"This option is undocumented in ld64">,
1239 Flags<[HelpHidden]>,
1240 Group<grp_undocumented>;
1241 def force_symbols_weak_list : Flag<["-"], "force_symbols_weak_list">,
1242 HelpText<"This option is undocumented in ld64">,
1243 Flags<[HelpHidden]>,
1244 Group<grp_undocumented>;
1245 def force_symbol_weak : Flag<["-"], "force_symbol_weak">,
1246 HelpText<"This option is undocumented in ld64">,
1247 Flags<[HelpHidden]>,
1248 Group<grp_undocumented>;
1249 def function_starts : Flag<["-"], "function_starts">,
1250 HelpText<"Create table of function start addresses (default)">,
1251 Group<grp_undocumented>;
1252 def i : Flag<["-"], "i">,
1253 HelpText<"This option is undocumented in ld64">,
1254 Flags<[HelpHidden]>,
1255 Group<grp_undocumented>;
1256 def ignore_auto_link : Flag<["-"], "ignore_auto_link">,
1257 HelpText<"This option is undocumented in ld64">,
1258 Flags<[HelpHidden]>,
1259 Group<grp_undocumented>;
1260 def ignore_optimization_hints : Flag<["-"], "ignore_optimization_hints">,
1261 HelpText<"This option is undocumented in ld64">,
1262 Flags<[HelpHidden]>,
1263 Group<grp_undocumented>;
1264 def init_offsets : Flag<["-"], "init_offsets">,
1265 HelpText<"This option is undocumented in ld64">,
1266 Flags<[HelpHidden]>,
1267 Group<grp_undocumented>;
1268 def keep_dwarf_unwind : Flag<["-"], "keep_dwarf_unwind">,
1269 HelpText<"This option is undocumented in ld64">,
1270 Flags<[HelpHidden]>,
1271 Group<grp_undocumented>;
1272 def no_keep_dwarf_unwind : Flag<["-"], "no_keep_dwarf_unwind">,
1273 HelpText<"This option is undocumented in ld64">,
1274 Flags<[HelpHidden]>,
1275 Group<grp_undocumented>;
1276 def kext : Flag<["-"], "kext">,
1277 HelpText<"This option is undocumented in ld64">,
1278 Flags<[HelpHidden]>,
1279 Group<grp_undocumented>;
1280 def kext_objects_dir : Flag<["-"], "kext_objects_dir">,
1281 HelpText<"This option is undocumented in ld64">,
1282 Flags<[HelpHidden]>,
1283 Group<grp_undocumented>;
1284 def no_kext_objects : Flag<["-"], "no_kext_objects">,
1285 HelpText<"This option is undocumented in ld64">,
1286 Flags<[HelpHidden]>,
1287 Group<grp_undocumented>;
1288 def kexts_use_stubs : Flag<["-"], "kexts_use_stubs">,
1289 HelpText<"This option is undocumented in ld64">,
1290 Flags<[HelpHidden]>,
1291 Group<grp_undocumented>;
1292 def no_compact_unwind : Flag<["-"], "no_compact_unwind">,
1293 HelpText<"This option is undocumented in ld64">,
1294 Flags<[HelpHidden]>,
1295 Group<grp_undocumented>;
1296 def no_new_main : Flag<["-"], "no_new_main">,
1297 HelpText<"This option is undocumented in ld64">,
1298 Flags<[HelpHidden]>,
1299 Group<grp_undocumented>;
1300 def pause : Flag<["-"], "pause">,
1301 HelpText<"This option is undocumented in ld64">,
1302 Flags<[HelpHidden]>,
1303 Group<grp_undocumented>;
1304 def random_uuid : Flag<["-"], "random_uuid">,
1305 HelpText<"This option is undocumented in ld64">,
1306 Flags<[HelpHidden]>,
1307 Group<grp_undocumented>;
1308 def simulator_support : Flag<["-"], "simulator_support">,
1309 HelpText<"This option is undocumented in ld64">,
1310 Flags<[HelpHidden]>,
1311 Group<grp_undocumented>;
1312 def snapshot_dir : Flag<["-"], "snapshot_dir">,
1313 HelpText<"This option is undocumented in ld64">,
1314 Flags<[HelpHidden]>,
1315 Group<grp_undocumented>;
1316 def source_version : Flag<["-"], "source_version">,
1317 HelpText<"This option is undocumented in ld64">,
1318 Flags<[HelpHidden]>,
1319 Group<grp_undocumented>;
1320 def threaded_starts_section : Flag<["-"], "threaded_starts_section">,
1321 HelpText<"This option is undocumented in ld64">,
1322 Flags<[HelpHidden]>,
1323 Group<grp_undocumented>;
1324 def verbose_optimization_hints : Flag<["-"], "verbose_optimization_hints">,
1325 HelpText<"This option is undocumented in ld64">,
1326 Flags<[HelpHidden]>,
1327 Group<grp_undocumented>;
1328 def version_load_command : Flag<["-"], "version_load_command">,
1329 HelpText<"This option is undocumented in ld64">,
1330 Flags<[HelpHidden]>,
1331 Group<grp_undocumented>;
1333 def grp_ignored : OptionGroup<"ignored">, HelpText<"IGNORED">;
1335 def M : Flag<["-"], "M">,
1336 HelpText<"This option is ignored in ld64">,
1337 Flags<[HelpHidden]>,
1339 def new_linker : Flag<["-"], "new_linker">,
1340 HelpText<"This option is ignored in ld64">,
1341 Flags<[HelpHidden]>,
1344 def grp_ignored_silently : OptionGroup<"ignored_silently">, HelpText<"IGNORED SILENTLY">;
1346 def objc_abi_version : Separate<["-"], "objc_abi_version">,
1347 HelpText<"This option only applies to i386 in ld64">,
1348 Flags<[HelpHidden]>,
1349 Group<grp_ignored_silently>;