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