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 no_lto_legacy_pass_manager : Flag<["--"], "no-lto-legacy-pass-manager">, 44 HelpText<"Use the new pass manager in LLVM">, 45 Group<grp_lld>; 46def time_trace_eq: Joined<["--"], "time-trace=">, 47 HelpText<"Record time trace to <file>">, 48 MetaVarName<"<file>">, 49 Group<grp_lld>; 50def : Flag<["--"], "time-trace">, 51 Alias<time_trace_eq>, 52 HelpText<"Record time trace to file next to output">, 53 Group<grp_lld>; 54def time_trace_granularity_eq: Joined<["--"], "time-trace-granularity=">, 55 HelpText<"Minimum time granularity (in microseconds) traced by time profiler">, 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 Group<grp_main>; 448def stack_size : Separate<["-"], "stack_size">, 449 MetaVarName<"<size>">, 450 HelpText<"Maximum hex stack size for the main thread in a program. (default is 8MB)">, 451 Flags<[HelpHidden]>, 452 Group<grp_main>; 453def allow_stack_execute : Flag<["-"], "allow_stack_execute">, 454 HelpText<"Mark stack segment as executable">, 455 Flags<[HelpHidden]>, 456 Group<grp_main>; 457def export_dynamic : Flag<["-"], "export_dynamic">, 458 HelpText<"Preserve all global symbols during LTO and when dead-stripping executables">, 459 Group<grp_main>; 460 461def grp_bundle : OptionGroup<"bundle">, HelpText<"CREATING A BUNDLE">; 462 463def bundle_loader : Separate<["-"], "bundle_loader">, 464 MetaVarName<"<executable>">, 465 HelpText<"Resolve undefined symbols from <executable>">, 466 Group<grp_bundle>; 467 468def grp_object : OptionGroup<"object">, HelpText<"CREATING AN OBJECT FILE">; 469 470def keep_private_externs : Flag<["-"], "keep_private_externs">, 471 HelpText<"Do not convert private external symbols to static symbols (only valid with -r)">, 472 Flags<[HelpHidden]>, 473 Group<grp_object>; 474def d : Flag<["-"], "d">, 475 HelpText<"Force tentative into real definitions for common symbols">, 476 Flags<[HelpHidden]>, 477 Group<grp_object>; 478 479def grp_resolve : OptionGroup<"resolve">, HelpText<"SYMBOL RESOLUTION">; 480 481def exported_symbol : Separate<["-"], "exported_symbol">, 482 MetaVarName<"<symbol>">, 483 HelpText<"<symbol> remains global, while others become private externs">, 484 Group<grp_resolve>; 485def exported_symbols_list : Separate<["-"], "exported_symbols_list">, 486 MetaVarName<"<file>">, 487 HelpText<"Symbols specified in <file> remain global, while others become private externs">, 488 Group<grp_resolve>; 489def no_exported_symbols : Flag<["-"], "no_exported_symbols">, 490 HelpText<"Don't export any symbols from the binary, useful for main executables that don't have plugins">, 491 Group<grp_resolve>; 492def unexported_symbol : Separate<["-"], "unexported_symbol">, 493 MetaVarName<"<symbol>">, 494 HelpText<"Global <symbol> becomes private extern">, 495 Group<grp_resolve>; 496def unexported_symbols_list : Separate<["-"], "unexported_symbols_list">, 497 MetaVarName<"<file>">, 498 HelpText<"Global symbols specified in <file> become private externs">, 499 Group<grp_resolve>; 500def reexported_symbols_list : Separate<["-"], "reexported_symbols_list">, 501 MetaVarName<"<file>">, 502 HelpText<"Symbols from dependent dylibs specified in <file> are reexported by this dylib">, 503 Flags<[HelpHidden]>, 504 Group<grp_resolve>; 505def alias : MultiArg<["-"], "alias", 2>, 506 MetaVarName<"<symbol_name> <alternate_name>">, 507 HelpText<"Create a symbol alias with default global visibility">, 508 Group<grp_resolve>; 509def alias_list : Separate<["-"], "alias_list">, 510 MetaVarName<"<file>">, 511 HelpText<"Create symbol aliases specified in <file>">, 512 Flags<[HelpHidden]>, 513 Group<grp_resolve>; 514def flat_namespace : Flag<["-"], "flat_namespace">, 515 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">, 516 Group<grp_resolve>; 517def twolevel_namespace : Flag<["-"], "twolevel_namespace">, 518 HelpText<"Make dyld look up symbols by (dylib,name) pairs (default)">, 519 Group<grp_resolve>; 520def u : Separate<["-"], "u">, 521 MetaVarName<"<symbol>">, 522 HelpText<"Require that <symbol> be defined for the link to succeed">, 523 Group<grp_resolve>; 524def U : Separate<["-"], "U">, 525 MetaVarName<"<symbol>">, 526 HelpText<"Allow <symbol> to have no definition">, 527 Group<grp_resolve>; 528def undefined : Separate<["-"], "undefined">, 529 MetaVarName<"<treatment>">, 530 HelpText<"Handle undefined symbols according to <treatment>: error, warning, suppress, or dynamic_lookup (default is error)">, 531 Group<grp_resolve>; 532def rpath : Separate<["-"], "rpath">, 533 MetaVarName<"<path>">, 534 HelpText<"Add <path> to dyld search list for dylibs with load path prefix `@rpath/'">, 535 Group<grp_resolve>; 536def commons : Separate<["-"], "commons">, 537 MetaVarName<"<treatment>">, 538 HelpText<"Resolve tentative definitions in dylibs according to <treatment>: ignore_dylibs, use_dylibs, error (default is ignore_dylibs)">, 539 Flags<[HelpHidden]>, 540 Group<grp_resolve>; 541 542def grp_introspect : OptionGroup<"introspect">, HelpText<"INTROSPECTING THE LINKER">; 543 544def why_load : Flag<["-"], "why_load">, 545 HelpText<"Log why each object file is loaded from a static library">, 546 Group<grp_introspect>; 547def whyload : Flag<["-"], "whyload">, 548 Alias<why_load>, 549 HelpText<"Alias for -why_load">, 550 Group<grp_introspect>; 551def why_live : Separate<["-"], "why_live">, 552 MetaVarName<"<symbol>">, 553 HelpText<"Log a chain of references to <symbol>, for use with -dead_strip">, 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 Group<grp_symtab>; 590def non_global_symbols_strip_list : Separate<["-"], "non_global_symbols_strip_list">, 591 MetaVarName<"<path>">, 592 HelpText<"Specify in <path> the non-global symbols that should be removed from the output symbol table">, 593 Group<grp_symtab>; 594def 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">, 597 Group<grp_symtab>; 598def oso_prefix : Separate<["-"], "oso_prefix">, 599 MetaVarName<"<path>">, 600 HelpText<"Remove the prefix <path> from OSO symbols in the debug map">, 601 Group<grp_symtab>; 602def add_ast_path : Separate<["-"], "add_ast_path">, 603 MetaVarName<"<path>">, 604 HelpText<"AST paths will be emitted as STABS">, 605 Group<grp_symtab>; 606 607def grp_bitcode : OptionGroup<"bitcode">, HelpText<"BITCODE BUILD FLOW">; 608 609def bitcode_bundle : Flag<["-"], "bitcode_bundle">, 610 HelpText<"Generate an embedded bitcode bundle in the __LLVM,__bundle section of the output">, 611 Group<grp_bitcode>; 612def bitcode_hide_symbols : Flag<["-"], "bitcode_hide_symbols">, 613 HelpText<"With -bitcode_bundle, hide all non-exported symbols from output bitcode bundle.">, 614 Flags<[HelpHidden]>, 615 Group<grp_bitcode>; 616def bitcode_symbol_map : Separate<["-"], "bitcode_symbol_map">, 617 MetaVarName<"<path>">, 618 HelpText<"Write the bitcode symbol reverse mapping to file <path>, or if a directory, to <path>/UUID.bcsymbolmap">, 619 Flags<[HelpHidden]>, 620 Group<grp_bitcode>; 621 622def grp_rare : OptionGroup<"rare">, HelpText<"RARELY USED">; 623 624def v : Flag<["-"], "v">, 625 HelpText<"Print the linker version and search paths in addition to linking">, 626 Group<grp_rare>; 627def adhoc_codesign : Flag<["-"], "adhoc_codesign">, 628 HelpText<"Write an ad-hoc code signature to the output file (default for arm64 binaries)">, 629 Group<grp_rare>; 630def no_adhoc_codesign : Flag<["-"], "no_adhoc_codesign">, 631 HelpText<"Do not write an ad-hoc code signature to the output file (default for x86_64 binaries)">, 632 Group<grp_rare>; 633def version_details : Flag<["-"], "version_details">, 634 HelpText<"Print the linker version in JSON form">, 635 Flags<[HelpHidden]>, 636 Group<grp_rare>; 637def no_weak_imports : Flag<["-"], "no_weak_imports">, 638 HelpText<"Fail if any symbols are weak imports, allowed to be NULL at runtime">, 639 Flags<[HelpHidden]>, 640 Group<grp_rare>; 641def verbose_deduplicate : Flag<["-"], "verbose_deduplicate">, 642 HelpText<"Print function names eliminated by deduplication and the total size of code savings">, 643 Flags<[HelpHidden]>, 644 Group<grp_rare>; 645def no_inits : Flag<["-"], "no_inits">, 646 HelpText<"Fail if the output contains static initializers">, 647 Flags<[HelpHidden]>, 648 Group<grp_rare>; 649def no_warn_inits : Flag<["-"], "no_warn_inits">, 650 HelpText<"Suppress warnings for static initializers in the output">, 651 Flags<[HelpHidden]>, 652 Group<grp_rare>; 653def debug_variant : Flag<["-"], "debug_variant">, 654 HelpText<"Suppress warnings germane to binaries shipping to customers">, 655 Flags<[HelpHidden]>, 656 Group<grp_rare>; 657def unaligned_pointers : Separate<["-"], "unaligned_pointers">, 658 MetaVarName<"<treatment>">, 659 HelpText<"Handle unaligned pointers in __DATA segments according to <treatment>: warning, error, or suppress (default for arm64e is error, otherwise suppress)">, 660 Flags<[HelpHidden]>, 661 Group<grp_rare>; 662def dirty_data_list : Separate<["-"], "dirty_data_list">, 663 MetaVarName<"<path>">, 664 HelpText<"Specify data symbols in <path> destined for the __DATA_DIRTY segment">, 665 Flags<[HelpHidden]>, 666 Group<grp_rare>; 667def max_default_common_align : Separate<["-"], "max_default_common_align">, 668 MetaVarName<"<boundary>">, 669 HelpText<"Reduce maximum alignment for common symbols to a hex power-of-2 <boundary>">, 670 Flags<[HelpHidden]>, 671 Group<grp_rare>; 672def move_to_rw_segment : MultiArg<["-"], "move_to_rw_segment", 2>, 673 MetaVarName<"<segment> <path>">, 674 HelpText<"Move data symbols listed in <path> to another <segment>">, 675 Flags<[HelpHidden]>, 676 Group<grp_rare>; 677def move_to_ro_segment : MultiArg<["-"], "move_to_ro_segment", 2>, 678 MetaVarName<"<segment> <path>">, 679 HelpText<"Move code symbols listed in <path> to another <segment>">, 680 Flags<[HelpHidden]>, 681 Group<grp_rare>; 682def rename_section : MultiArg<["-"], "rename_section", 4>, 683 MetaVarName<"<from_segment> <from_section> <to_segment> <to_section>">, 684 HelpText<"Rename <from_segment>/<from_section> as <to_segment>/<to_section>">, 685 Group<grp_rare>; 686def rename_segment : MultiArg<["-"], "rename_segment", 2>, 687 MetaVarName<"<from_segment> <to_segment>">, 688 HelpText<"Rename <from_segment> as <to_segment>">, 689 Group<grp_rare>; 690def trace_symbol_layout : Flag<["-"], "trace_symbol_layout">, 691 HelpText<"Show where and why symbols move, as specified by -move_to_ro_segment, -move_to_rw_segment, -rename_section, and -rename_segment">, 692 Flags<[HelpHidden]>, 693 Group<grp_rare>; 694def data_const : Flag<["-"], "data_const">, 695 HelpText<"Force migration of readonly data into __DATA_CONST segment">, 696 Group<grp_rare>; 697def no_data_const : Flag<["-"], "no_data_const">, 698 HelpText<"Block migration of readonly data away from __DATA segment">, 699 Group<grp_rare>; 700def text_exec : Flag<["-"], "text_exec">, 701 HelpText<"Rename __segment TEXT to __TEXT_EXEC for sections __text and __stubs">, 702 Flags<[HelpHidden]>, 703 Group<grp_rare>; 704def section_order : MultiArg<["-"], "section_order", 2>, 705 MetaVarName<"<segment> <sections>">, 706 HelpText<"With -preload, specify layout sequence of colon-separated <sections> in <segment>">, 707 Flags<[HelpHidden]>, 708 Group<grp_rare>; 709def segment_order : Separate<["-"], "segment_order">, 710 MetaVarName<"<colon_separated_segment_list>">, 711 HelpText<"With -preload, specify layout sequence of colon-separated <segments>">, 712 Flags<[HelpHidden]>, 713 Group<grp_rare>; 714def allow_heap_execute : Flag<["-"], "allow_heap_execute">, 715 HelpText<"On i386, allow any page to execute code">, 716 Flags<[HelpHidden]>, 717 Group<grp_rare>; 718def application_extension : Flag<["-"], "application_extension">, 719 HelpText<"Mark output as safe for use in an application extension, and validate that linked dylibs are safe">, 720 Group<grp_rare>; 721def no_application_extension : Flag<["-"], "no_application_extension">, 722 HelpText<"Disable application extension functionality (default)">, 723 Group<grp_rare>; 724def fatal_warnings : Flag<["-"], "fatal_warnings">, 725 HelpText<"Treat warnings as errors">, 726 Group<grp_rare>; 727def no_eh_labels : Flag<["-"], "no_eh_labels">, 728 HelpText<"In -r mode, suppress .eh labels in the __eh_frame section">, 729 Flags<[HelpHidden]>, 730 Group<grp_rare>; 731def warn_compact_unwind : Flag<["-"], "warn_compact_unwind">, 732 HelpText<"Warn for each FDE that cannot compact into the __unwind_info section and must remain in the __eh_frame section">, 733 Flags<[HelpHidden]>, 734 Group<grp_rare>; 735def warn_weak_exports : Flag<["-"], "warn_weak_exports">, 736 HelpText<"Warn if the linked image contains weak external symbols">, 737 Flags<[HelpHidden]>, 738 Group<grp_rare>; 739def no_weak_exports : Flag<["-"], "no_weak_exports">, 740 HelpText<"Fail if the linked image contains weak external symbols">, 741 Flags<[HelpHidden]>, 742 Group<grp_rare>; 743def objc_gc_compaction : Flag<["-"], "objc_gc_compaction">, 744 HelpText<"Mark the Objective-C image as compatible with compacting garbage collection">, 745 Flags<[HelpHidden]>, 746 Group<grp_rare>; 747def objc_gc : Flag<["-"], "objc_gc">, 748 HelpText<"Verify that all code was compiled with -fobjc-gc or -fobjc-gc-only">, 749 Flags<[HelpHidden]>, 750 Group<grp_rare>; 751def objc_gc_only : Flag<["-"], "objc_gc_only">, 752 HelpText<"Verify that all code was compiled with -fobjc-gc-only">, 753 Flags<[HelpHidden]>, 754 Group<grp_rare>; 755def dead_strip_dylibs : Flag<["-"], "dead_strip_dylibs">, 756 HelpText<"Remove dylibs that are unreachable by the entry point or exported symbols">, 757 Group<grp_rare>; 758def allow_sub_type_mismatches : Flag<["-"], "allow_sub_type_mismatches">, 759 HelpText<"Permit mixing objects compiled for different ARM CPU subtypes">, 760 Flags<[HelpHidden]>, 761 Group<grp_rare>; 762def no_uuid : Flag<["-"], "no_uuid">, 763 HelpText<"Do not generate the LC_UUID load command">, 764 Flags<[HelpHidden]>, 765 Group<grp_rare>; 766def root_safe : Flag<["-"], "root_safe">, 767 HelpText<"Set the MH_ROOT_SAFE bit in the mach-o header">, 768 Flags<[HelpHidden]>, 769 Group<grp_rare>; 770def setuid_safe : Flag<["-"], "setuid_safe">, 771 HelpText<"Set the MH_SETUID_SAFE bit in the mach-o header">, 772 Flags<[HelpHidden]>, 773 Group<grp_rare>; 774def interposable : Flag<["-"], "interposable">, 775 HelpText<"Indirects access to all to exported symbols in a dylib">, 776 Flags<[HelpHidden]>, 777 Group<grp_rare>; 778def multi_module : Flag<["-"], "multi_module">, 779 Alias<interposable>, 780 HelpText<"Alias for -interposable">, 781 Flags<[HelpHidden]>, 782 Group<grp_rare>; 783def init : Separate<["-"], "init">, 784 MetaVarName<"<symbol>">, 785 HelpText<"Run <symbol> as the first initializer in a dylib">, 786 Flags<[HelpHidden]>, 787 Group<grp_rare>; 788def sub_library : Separate<["-"], "sub_library">, 789 MetaVarName<"<name>">, 790 HelpText<"Re-export the dylib as <name>">, 791 Group<grp_rare>; 792def sub_umbrella : Separate<["-"], "sub_umbrella">, 793 MetaVarName<"<name>">, 794 HelpText<"Re-export the framework as <name>">, 795 Group<grp_rare>; 796def allowable_client : Separate<["-"], "allowable_client">, 797 MetaVarName<"<name>">, 798 HelpText<"Specify <name> of a dylib or framework that is allowed to link to this dylib">, 799 Flags<[HelpHidden]>, 800 Group<grp_rare>; 801def client_name : Separate<["-"], "client_name">, 802 MetaVarName<"<name>">, 803 HelpText<"Specifies a <name> this client should match with the -allowable_client <name> in a dependent dylib">, 804 Flags<[HelpHidden]>, 805 Group<grp_rare>; 806def umbrella : Separate<["-"], "umbrella">, 807 MetaVarName<"<name>">, 808 HelpText<"Re-export this dylib through the umbrella framework <name>">, 809 Group<grp_rare>; 810def headerpad : Separate<["-"], "headerpad">, 811 MetaVarName<"<size>">, 812 HelpText<"Allocate hex <size> extra space for future expansion of the load commands via install_name_tool (default is 0x20)">, 813 Group<grp_rare>; 814def headerpad_max_install_names : Flag<["-"], "headerpad_max_install_names">, 815 HelpText<"Allocate extra space so all load-command paths can expand to MAXPATHLEN via install_name_tool">, 816 Group<grp_rare>; 817def bind_at_load : Flag<["-"], "bind_at_load">, 818 HelpText<"Tell dyld to bind all symbols at load time, rather than lazily">, 819 Flags<[HelpHidden]>, 820 Group<grp_rare>; 821def force_flat_namespace : Flag<["-"], "force_flat_namespace">, 822 HelpText<"Tell dyld to use a flat namespace on this executable and all its dependent dylibs & bundles">, 823 Flags<[HelpHidden]>, 824 Group<grp_rare>; 825def segalign : Separate<["-"], "segalign">, 826 MetaVarName<"<boundary>">, 827 HelpText<"Align all segments to hex power-of-2 <boundary>">, 828 Flags<[HelpHidden]>, 829 Group<grp_rare>; 830def sectalign : MultiArg<["-"], "sectalign", 3>, 831 MetaVarName<"<segment> <section> <boundary>">, 832 HelpText<"Align <section> within <segment> to hex power-of-2 <boundary>">, 833 Group<grp_rare>; 834def stack_addr : Separate<["-"], "stack_addr">, 835 MetaVarName<"<address>">, 836 HelpText<"Initialize stack pointer to hex <address> rounded to a page boundary">, 837 Flags<[HelpHidden]>, 838 Group<grp_rare>; 839def segprot : MultiArg<["-"], "segprot", 3>, 840 MetaVarName<"<segment> <max> <init>">, 841 HelpText<"Specifies the <max> and <init> virtual memory protection of <segment> as r/w/x/-seg_addr_table path">, 842 Group<grp_rare>; 843def segs_read_write_addr : Separate<["-"], "segs_read_write_addr">, 844 MetaVarName<"<address>">, 845 HelpText<"This option is obsolete">, 846 Flags<[HelpHidden]>, 847 Group<grp_rare>; 848def segs_read_only_addr : Separate<["-"], "segs_read_only_addr">, 849 MetaVarName<"<address>">, 850 HelpText<"This option is obsolete">, 851 Flags<[HelpHidden]>, 852 Group<grp_rare>; 853def segaddr : MultiArg<["-"], "segaddr", 2>, 854 MetaVarName<"<segment> <address>">, 855 HelpText<"Specify the starting hex <address> at a 4KiB page boundary for <segment>">, 856 Flags<[HelpHidden]>, 857 Group<grp_rare>; 858def seg_page_size : MultiArg<["-"], "seg_page_size", 2>, 859 MetaVarName<"<segment> <size>">, 860 HelpText<"Specifies the page <size> for <segment>. Segment size will be a multiple of its page size">, 861 Flags<[HelpHidden]>, 862 Group<grp_rare>; 863def dylib_file : Separate<["-"], "dylib_file">, 864 MetaVarName<"<install_path:current_path>">, 865 HelpText<"Specify <current_path> as different from where a dylib normally resides at <install_path>">, 866 Flags<[HelpHidden]>, 867 Group<grp_rare>; 868def weak_reference_mismatches : Separate<["-"], "weak_reference_mismatches">, 869 MetaVarName<"<treatment>">, 870 HelpText<"Resolve symbol imports of conflicting weakness according to <treatment> as weak, non-weak, or error (default is non-weak)">, 871 Flags<[HelpHidden]>, 872 Group<grp_rare>; 873def read_only_relocs : Separate<["-"], "read_only_relocs">, 874 MetaVarName<"<treatment>">, 875 HelpText<"Handle relocations that modify read-only pages according to <treatment> of warning, error, or suppress (i.e., allow)">, 876 Flags<[HelpHidden]>, 877 Group<grp_rare>; 878def force_cpusubtype_ALL : Flag<["-"], "force_cpusubtype_ALL">, 879 HelpText<"Mark binary as runnable on any PowerPC, ignoring any PowerPC cpu requirements encoded in the object files">, 880 Flags<[HelpHidden]>, 881 Group<grp_rare>; 882def no_arch_warnings : Flag<["-"], "no_arch_warnings">, 883 HelpText<"Suppresses warnings about inputs whose architecture does not match the -arch option">, 884 Flags<[HelpHidden]>, 885 Group<grp_rare>; 886def arch_errors_fatal : Flag<["-"], "arch_errors_fatal">, 887 HelpText<"Escalate to errors any warnings about inputs whose architecture does not match the -arch option">, 888 Group<grp_rare>; 889def e : Separate<["-"], "e">, 890 MetaVarName<"<symbol>">, 891 HelpText<"Make <symbol> the entry point of an executable (default is \"start\" from crt1.o)">, 892 Group<grp_rare>; 893def w : Flag<["-"], "w">, 894 HelpText<"Suppress all warnings">, 895 Group<grp_rare>; 896def final_output : Separate<["-"], "final_output">, 897 MetaVarName<"<name>">, 898 HelpText<"Specify dylib install name if -install_name is not used; used by compiler driver for multiple -arch arguments">, 899 Group<grp_rare>; 900def arch_multiple : Flag<["-"], "arch_multiple">, 901 HelpText<"Augment error and warning messages with the architecture name">, 902 Group<grp_rare>; 903def dot : Separate<["-"], "dot">, 904 MetaVarName<"<path>">, 905 HelpText<"Write a graph of symbol dependencies to <path> as a .dot file viewable with GraphViz">, 906 Flags<[HelpHidden]>, 907 Group<grp_rare>; 908def keep_relocs : Flag<["-"], "keep_relocs">, 909 HelpText<"Retain section-based relocation records in the output, which are ignored at runtime by dyld">, 910 Flags<[HelpHidden]>, 911 Group<grp_rare>; 912def warn_stabs : Flag<["-"], "warn_stabs">, 913 HelpText<"Warn when bad stab symbols inside a BINCL/EINCL prevent optimization">, 914 Flags<[HelpHidden]>, 915 Group<grp_rare>; 916def warn_commons : Flag<["-"], "warn_commons">, 917 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">, 918 Flags<[HelpHidden]>, 919 Group<grp_rare>; 920def read_only_stubs : Flag<["-"], "read_only_stubs">, 921 HelpText<"On i386, make the __IMPORT segment of a final linked image read-only">, 922 Flags<[HelpHidden]>, 923 Group<grp_rare>; 924def interposable_list : Separate<["-"], "interposable_list">, 925 MetaVarName<"<path>">, 926 HelpText<"Access global symbols listed in <path> indirectly">, 927 Flags<[HelpHidden]>, 928 Group<grp_rare>; 929def no_function_starts : Flag<["-"], "no_function_starts">, 930 HelpText<"Do not create table of function start addresses">, 931 Group<grp_rare>; 932def no_objc_category_merging : Flag<["-"], "no_objc_category_merging">, 933 HelpText<"Do not merge Objective-C categories into their classes">, 934 Flags<[HelpHidden]>, 935 Group<grp_rare>; 936def object_path_lto : Separate<["-"], "object_path_lto">, 937 MetaVarName<"<path>">, 938 HelpText<"Retain any temporary mach-o file in <path> that would otherwise be deleted during LTO">, 939 Group<grp_rare>; 940def cache_path_lto : Separate<["-"], "cache_path_lto">, 941 MetaVarName<"<path>">, 942 HelpText<"Use <path> as a directory for the incremental LTO cache">, 943 Group<grp_rare>; 944def prune_interval_lto : Separate<["-"], "prune_interval_lto">, 945 MetaVarName<"<seconds>">, 946 HelpText<"Prune the incremental LTO cache after <seconds> (-1 disables pruning)">, 947 Group<grp_rare>; 948def prune_after_lto : Separate<["-"], "prune_after_lto">, 949 MetaVarName<"<seconds>">, 950 HelpText<"Remove LTO cache entries after <seconds>">, 951 Group<grp_rare>; 952def max_relative_cache_size_lto : Separate<["-"], "max_relative_cache_size_lto">, 953 MetaVarName<"<percent>">, 954 HelpText<"Limit the incremental LTO cache growth to <percent> of free disk, space">, 955 Group<grp_rare>; 956def page_align_data_atoms : Flag<["-"], "page_align_data_atoms">, 957 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">, 958 Flags<[HelpHidden]>, 959 Group<grp_rare>; 960def not_for_dyld_shared_cache : Flag<["-"], "not_for_dyld_shared_cache">, 961 HelpText<"Prevent system dylibs from being placed into the dylib shared cache">, 962 Flags<[HelpHidden]>, 963 Group<grp_rare>; 964def mllvm : Separate<["-"], "mllvm">, 965 HelpText<"Options to pass to LLVM">, 966 Group<grp_rare>; 967def mcpu : Separate<["-"], "mcpu">, 968 HelpText<"Processor family target for LTO code generation">, 969 Group<grp_rare>; 970def no_dtrace_dof : Flag<["-"], "no_dtrace_dof">, 971 HelpText<"Disable dtrace-dof processing (default).">, 972 Group<grp_rare>; 973 974def grp_deprecated : OptionGroup<"deprecated">, HelpText<"DEPRECATED">; 975 976def lazy_framework : Separate<["-"], "lazy_framework">, 977 MetaVarName<"<name>">, 978 HelpText<"This option is deprecated and is now an alias for -framework.">, 979 Flags<[HelpHidden]>, 980 Group<grp_deprecated>; 981def lazy_library : Separate<["-"], "lazy_library">, 982 MetaVarName<"<path>">, 983 HelpText<"This option is deprecated and is now an alias for regular linking">, 984 Flags<[HelpHidden]>, 985 Group<grp_deprecated>; 986def lazy_l : Joined<["-"], "lazy-l">, 987 MetaVarName<"<name>">, 988 HelpText<"This option is deprecated and is now an alias for -l<path>.">, 989 Flags<[HelpHidden]>, 990 Group<grp_deprecated>; 991def single_module : Flag<["-"], "single_module">, 992 HelpText<"Unnecessary option: this is already the default">, 993 Flags<[HelpHidden]>, 994 Group<grp_deprecated>; 995def no_dead_strip_inits_and_terms : Flag<["-"], "no_dead_strip_inits_and_terms">, 996 HelpText<"Unnecessary option: initialization and termination are roots of the dead strip graph, so never dead stripped">, 997 Flags<[HelpHidden]>, 998 Group<grp_deprecated>; 999 1000def grp_obsolete : OptionGroup<"obsolete">, HelpText<"OBSOLETE">; 1001 1002def sectorder : MultiArg<["-"], "sectorder", 3>, 1003 MetaVarName<"<segname> <sectname> <orderfile>">, 1004 HelpText<"Obsolete. Replaced by more general -order_file option">, 1005 Group<grp_obsolete>; 1006def lto_library : Separate<["-"], "lto_library">, 1007 MetaVarName<"<path>">, 1008 HelpText<"Obsolete. LLD supports LTO directly, without using an external dylib.">, 1009 Group<grp_obsolete>; 1010def y : Joined<["-"], "y">, 1011 MetaVarName<"<symbol>">, 1012 HelpText<"This option is obsolete in ld64">, 1013 Flags<[HelpHidden]>, 1014 Group<grp_obsolete>; 1015def sectobjectsymbols : MultiArg<["-"], "sectobjectsymbols", 2>, 1016 MetaVarName<"<segname> <sectname>">, 1017 HelpText<"This option is obsolete in ld64">, 1018 Flags<[HelpHidden]>, 1019 Group<grp_obsolete>; 1020def nofixprebinding : Flag<["-"], "nofixprebinding">, 1021 HelpText<"This option is obsolete in ld64">, 1022 Flags<[HelpHidden]>, 1023 Group<grp_obsolete>; 1024def noprebind_all_twolevel_modules : Flag<["-"], "noprebind_all_twolevel_modules">, 1025 HelpText<"This option is obsolete in ld64">, 1026 Flags<[HelpHidden]>, 1027 Group<grp_obsolete>; 1028def prebind_all_twolevel_modules : Flag<["-"], "prebind_all_twolevel_modules">, 1029 HelpText<"This option is obsolete in ld64">, 1030 Flags<[HelpHidden]>, 1031 Group<grp_obsolete>; 1032def prebind_allow_overlap : Flag<["-"], "prebind_allow_overlap">, 1033 HelpText<"This option is obsolete in ld64">, 1034 Flags<[HelpHidden]>, 1035 Group<grp_obsolete>; 1036def noprebind : Flag<["-"], "noprebind">, 1037 HelpText<"This option is obsolete in ld64">, 1038 Flags<[HelpHidden]>, 1039 Group<grp_obsolete>; 1040def sect_diff_relocs : Separate<["-"], "sect_diff_relocs">, 1041 MetaVarName<"<treatment>">, 1042 HelpText<"This option is obsolete in ld64">, 1043 Flags<[HelpHidden]>, 1044 Group<grp_obsolete>; 1045def A : Separate<["-"], "A">, 1046 MetaVarName<"<basefile>">, 1047 HelpText<"This option is obsolete in ld64">, 1048 Flags<[HelpHidden]>, 1049 Group<grp_obsolete>; 1050def b : Flag<["-"], "b">, 1051 HelpText<"This option is obsolete in ld64">, 1052 Flags<[HelpHidden]>, 1053 Group<grp_obsolete>; 1054def Sn : Flag<["-"], "Sn">, 1055 HelpText<"This option is obsolete in ld64">, 1056 Flags<[HelpHidden]>, 1057 Group<grp_obsolete>; 1058def Si : Flag<["-"], "Si">, 1059 HelpText<"This option is obsolete in ld64">, 1060 Flags<[HelpHidden]>, 1061 Group<grp_obsolete>; 1062def Sp : Flag<["-"], "Sp">, 1063 HelpText<"This option is obsolete in ld64">, 1064 Flags<[HelpHidden]>, 1065 Group<grp_obsolete>; 1066def X : Flag<["-"], "X">, 1067 HelpText<"This option is obsolete in ld64">, 1068 Flags<[HelpHidden]>, 1069 Group<grp_obsolete>; 1070def s : Flag<["-"], "s">, 1071 HelpText<"This option is obsolete in ld64">, 1072 Flags<[HelpHidden]>, 1073 Group<grp_obsolete>; 1074def m : Flag<["-"], "m">, 1075 HelpText<"This option is obsolete in ld64">, 1076 Flags<[HelpHidden]>, 1077 Group<grp_obsolete>; 1078def Y : Separate<["-"], "Y">, 1079 MetaVarName<"<number>">, 1080 HelpText<"This option is obsolete in ld64">, 1081 Flags<[HelpHidden]>, 1082 Group<grp_obsolete>; 1083def nomultidefs : Flag<["-"], "nomultidefs">, 1084 HelpText<"This option is obsolete in ld64">, 1085 Flags<[HelpHidden]>, 1086 Group<grp_obsolete>; 1087def multiply_defined_unused : Separate<["-"], "multiply_defined_unused">, 1088 MetaVarName<"<treatment>">, 1089 HelpText<"This option is obsolete in ld64">, 1090 Flags<[HelpHidden]>, 1091 Group<grp_obsolete>; 1092def multiply_defined : Separate<["-"], "multiply_defined">, 1093 MetaVarName<"<treatment>">, 1094 HelpText<"This option is obsolete in ld64">, 1095 Flags<[HelpHidden]>, 1096 Group<grp_obsolete>; 1097def private_bundle : Flag<["-"], "private_bundle">, 1098 HelpText<"This option is obsolete in ld64">, 1099 Flags<[HelpHidden]>, 1100 Group<grp_obsolete>; 1101def seg_addr_table_filename : Separate<["-"], "seg_addr_table_filename">, 1102 MetaVarName<"<path>">, 1103 HelpText<"This option is obsolete in ld64">, 1104 Flags<[HelpHidden]>, 1105 Group<grp_obsolete>; 1106def sectorder_detail : Flag<["-"], "sectorder_detail">, 1107 HelpText<"This option is obsolete in ld64">, 1108 Flags<[HelpHidden]>, 1109 Group<grp_obsolete>; 1110def no_compact_linkedit : Flag<["-"], "no_compact_linkedit">, 1111 HelpText<"This option is obsolete in ld64">, 1112 Flags<[HelpHidden]>, 1113 Group<grp_obsolete>; 1114def dependent_dr_info : Flag<["-"], "dependent_dr_info">, 1115 HelpText<"This option is obsolete in ld64">, 1116 Flags<[HelpHidden]>, 1117 Group<grp_obsolete>; 1118def no_dependent_dr_info : Flag<["-"], "no_dependent_dr_info">, 1119 HelpText<"This option is obsolete in ld64">, 1120 Flags<[HelpHidden]>, 1121 Group<grp_obsolete>; 1122def seglinkedit : Flag<["-"], "seglinkedit">, 1123 HelpText<"This option is obsolete in ld64">, 1124 Flags<[HelpHidden]>, 1125 Group<grp_obsolete>; 1126def noseglinkedit : Flag<["-"], "noseglinkedit">, 1127 HelpText<"This option is obsolete in ld64">, 1128 Flags<[HelpHidden]>, 1129 Group<grp_obsolete>; 1130def fvmlib : Flag<["-"], "fvmlib">, 1131 HelpText<"This option is obsolete in ld64">, 1132 Flags<[HelpHidden]>, 1133 Group<grp_obsolete>; 1134def run_init_lazily : Flag<["-"], "run_init_lazily">, 1135 HelpText<"This option is obsolete in ld64">, 1136 Flags<[HelpHidden]>, 1137 Group<grp_obsolete>; 1138def prebind : Flag<["-"], "prebind">, 1139 HelpText<"This option is obsolete in ld64">, 1140 Flags<[HelpHidden]>, 1141 Group<grp_obsolete>; 1142def twolevel_namespace_hints : Flag<["-"], "twolevel_namespace_hints">, 1143 HelpText<"This option is obsolete in ld64">, 1144 Flags<[HelpHidden]>, 1145 Group<grp_obsolete>; 1146def slow_stubs : Flag<["-"], "slow_stubs">, 1147 HelpText<"This option is obsolete in ld64">, 1148 Flags<[HelpHidden]>, 1149 Group<grp_obsolete>; 1150 1151def grp_undocumented : OptionGroup<"undocumented">, HelpText<"UNDOCUMENTED">; 1152 1153def add_linker_option : Flag<["-"], "add_linker_option">, 1154 HelpText<"This option is undocumented in ld64">, 1155 Flags<[HelpHidden]>, 1156 Group<grp_undocumented>; 1157def add_source_version : Flag<["-"], "add_source_version">, 1158 HelpText<"This option is undocumented in ld64">, 1159 Flags<[HelpHidden]>, 1160 Group<grp_undocumented>; 1161def no_source_version : Flag<["-"], "no_source_version">, 1162 HelpText<"This option is undocumented in ld64">, 1163 Flags<[HelpHidden]>, 1164 Group<grp_undocumented>; 1165def add_split_seg_info : Flag<["-"], "add_split_seg_info">, 1166 HelpText<"This option is undocumented in ld64">, 1167 Flags<[HelpHidden]>, 1168 Group<grp_undocumented>; 1169def allow_dead_duplicates : Flag<["-"], "allow_dead_duplicates">, 1170 HelpText<"This option is undocumented in ld64">, 1171 Flags<[HelpHidden]>, 1172 Group<grp_undocumented>; 1173def allow_simulator_linking_to_macosx_dylibs : Flag<["-"], "allow_simulator_linking_to_macosx_dylibs">, 1174 HelpText<"This option is undocumented in ld64">, 1175 Flags<[HelpHidden]>, 1176 Group<grp_undocumented>; 1177def bitcode_process_mode : Flag<["-"], "bitcode_process_mode">, 1178 HelpText<"This option is undocumented in ld64">, 1179 Flags<[HelpHidden]>, 1180 Group<grp_undocumented>; 1181def bitcode_verify : Flag<["-"], "bitcode_verify">, 1182 HelpText<"This option is undocumented in ld64">, 1183 Flags<[HelpHidden]>, 1184 Group<grp_undocumented>; 1185def classic_linker : Flag<["-"], "classic_linker">, 1186 HelpText<"This option is undocumented in ld64">, 1187 Flags<[HelpHidden]>, 1188 Group<grp_undocumented>; 1189def data_in_code_info : Flag<["-"], "data_in_code_info">, 1190 HelpText<"Emit data-in-code information (default)">, 1191 Group<grp_undocumented>; 1192def no_data_in_code_info : Flag<["-"], "no_data_in_code_info">, 1193 HelpText<"Do not emit data-in-code information">, 1194 Group<grp_undocumented>; 1195def debug_snapshot : Flag<["-"], "debug_snapshot">, 1196 HelpText<"This option is undocumented in ld64">, 1197 Flags<[HelpHidden]>, 1198 Group<grp_undocumented>; 1199def demangle : Flag<["-"], "demangle">, 1200 HelpText<"Demangle symbol names in diagnostics">; 1201def dyld_env : Flag<["-"], "dyld_env">, 1202 HelpText<"This option is undocumented in ld64">, 1203 Flags<[HelpHidden]>, 1204 Group<grp_undocumented>; 1205def encryptable : Flag<["-"], "encryptable">, 1206 HelpText<"Generate the LC_ENCRYPTION_INFO load command">, 1207 Group<grp_undocumented>; 1208def no_encryption : Flag<["-"], "no_encryption">, 1209 HelpText<"Do not generate the LC_ENCRYPTION_INFO load command">, 1210 Group<grp_undocumented>; 1211def executable_path : Flag<["-"], "executable_path">, 1212 HelpText<"This option is undocumented in ld64">, 1213 Flags<[HelpHidden]>, 1214 Group<grp_undocumented>; 1215def fixup_chains : Flag<["-"], "fixup_chains">, 1216 HelpText<"This option is undocumented in ld64">, 1217 Flags<[HelpHidden]>, 1218 Group<grp_undocumented>; 1219def fixup_chains_section : Flag<["-"], "fixup_chains_section">, 1220 HelpText<"This option is undocumented in ld64">, 1221 Flags<[HelpHidden]>, 1222 Group<grp_undocumented>; 1223def flto_codegen_only : Flag<["-"], "flto-codegen-only">, 1224 HelpText<"This option is undocumented in ld64">, 1225 Flags<[HelpHidden]>, 1226 Group<grp_undocumented>; 1227def force_symbol_not_weak : Flag<["-"], "force_symbol_not_weak">, 1228 HelpText<"This option is undocumented in ld64">, 1229 Flags<[HelpHidden]>, 1230 Group<grp_undocumented>; 1231def force_symbols_coalesce_list : Flag<["-"], "force_symbols_coalesce_list">, 1232 HelpText<"This option is undocumented in ld64">, 1233 Flags<[HelpHidden]>, 1234 Group<grp_undocumented>; 1235def force_symbols_not_weak_list : Flag<["-"], "force_symbols_not_weak_list">, 1236 HelpText<"This option is undocumented in ld64">, 1237 Flags<[HelpHidden]>, 1238 Group<grp_undocumented>; 1239def force_symbols_weak_list : Flag<["-"], "force_symbols_weak_list">, 1240 HelpText<"This option is undocumented in ld64">, 1241 Flags<[HelpHidden]>, 1242 Group<grp_undocumented>; 1243def force_symbol_weak : Flag<["-"], "force_symbol_weak">, 1244 HelpText<"This option is undocumented in ld64">, 1245 Flags<[HelpHidden]>, 1246 Group<grp_undocumented>; 1247def function_starts : Flag<["-"], "function_starts">, 1248 HelpText<"Create table of function start addresses (default)">, 1249 Group<grp_undocumented>; 1250def i : Flag<["-"], "i">, 1251 HelpText<"This option is undocumented in ld64">, 1252 Flags<[HelpHidden]>, 1253 Group<grp_undocumented>; 1254def ignore_auto_link : Flag<["-"], "ignore_auto_link">, 1255 HelpText<"This option is undocumented in ld64">, 1256 Flags<[HelpHidden]>, 1257 Group<grp_undocumented>; 1258def ignore_optimization_hints : Flag<["-"], "ignore_optimization_hints">, 1259 HelpText<"Ignore Linker Optimization Hints">, 1260 Group<grp_undocumented>; 1261def init_offsets : Flag<["-"], "init_offsets">, 1262 HelpText<"This option is undocumented in ld64">, 1263 Flags<[HelpHidden]>, 1264 Group<grp_undocumented>; 1265def keep_dwarf_unwind : Flag<["-"], "keep_dwarf_unwind">, 1266 HelpText<"This option is undocumented in ld64">, 1267 Flags<[HelpHidden]>, 1268 Group<grp_undocumented>; 1269def no_keep_dwarf_unwind : Flag<["-"], "no_keep_dwarf_unwind">, 1270 HelpText<"This option is undocumented in ld64">, 1271 Flags<[HelpHidden]>, 1272 Group<grp_undocumented>; 1273def kext : Flag<["-"], "kext">, 1274 HelpText<"This option is undocumented in ld64">, 1275 Flags<[HelpHidden]>, 1276 Group<grp_undocumented>; 1277def kext_objects_dir : Flag<["-"], "kext_objects_dir">, 1278 HelpText<"This option is undocumented in ld64">, 1279 Flags<[HelpHidden]>, 1280 Group<grp_undocumented>; 1281def no_kext_objects : Flag<["-"], "no_kext_objects">, 1282 HelpText<"This option is undocumented in ld64">, 1283 Flags<[HelpHidden]>, 1284 Group<grp_undocumented>; 1285def kexts_use_stubs : Flag<["-"], "kexts_use_stubs">, 1286 HelpText<"This option is undocumented in ld64">, 1287 Flags<[HelpHidden]>, 1288 Group<grp_undocumented>; 1289def no_compact_unwind : Flag<["-"], "no_compact_unwind">, 1290 HelpText<"This option is undocumented in ld64">, 1291 Flags<[HelpHidden]>, 1292 Group<grp_undocumented>; 1293def no_new_main : Flag<["-"], "no_new_main">, 1294 HelpText<"This option is undocumented in ld64">, 1295 Flags<[HelpHidden]>, 1296 Group<grp_undocumented>; 1297def pause : Flag<["-"], "pause">, 1298 HelpText<"This option is undocumented in ld64">, 1299 Flags<[HelpHidden]>, 1300 Group<grp_undocumented>; 1301def random_uuid : Flag<["-"], "random_uuid">, 1302 HelpText<"This option is undocumented in ld64">, 1303 Flags<[HelpHidden]>, 1304 Group<grp_undocumented>; 1305def simulator_support : Flag<["-"], "simulator_support">, 1306 HelpText<"This option is undocumented in ld64">, 1307 Flags<[HelpHidden]>, 1308 Group<grp_undocumented>; 1309def snapshot_dir : Flag<["-"], "snapshot_dir">, 1310 HelpText<"This option is undocumented in ld64">, 1311 Flags<[HelpHidden]>, 1312 Group<grp_undocumented>; 1313def source_version : Flag<["-"], "source_version">, 1314 HelpText<"This option is undocumented in ld64">, 1315 Flags<[HelpHidden]>, 1316 Group<grp_undocumented>; 1317def threaded_starts_section : Flag<["-"], "threaded_starts_section">, 1318 HelpText<"This option is undocumented in ld64">, 1319 Flags<[HelpHidden]>, 1320 Group<grp_undocumented>; 1321def verbose_optimization_hints : Flag<["-"], "verbose_optimization_hints">, 1322 HelpText<"This option is undocumented in ld64">, 1323 Flags<[HelpHidden]>, 1324 Group<grp_undocumented>; 1325def version_load_command : Flag<["-"], "version_load_command">, 1326 HelpText<"This option is undocumented in ld64">, 1327 Flags<[HelpHidden]>, 1328 Group<grp_undocumented>; 1329 1330def grp_ignored : OptionGroup<"ignored">, HelpText<"IGNORED">; 1331 1332def M : Flag<["-"], "M">, 1333 HelpText<"This option is ignored in ld64">, 1334 Flags<[HelpHidden]>, 1335 Group<grp_ignored>; 1336def new_linker : Flag<["-"], "new_linker">, 1337 HelpText<"This option is ignored in ld64">, 1338 Flags<[HelpHidden]>, 1339 Group<grp_ignored>; 1340 1341def grp_ignored_silently : OptionGroup<"ignored_silently">, HelpText<"IGNORED SILENTLY">; 1342 1343def objc_abi_version : Separate<["-"], "objc_abi_version">, 1344 HelpText<"This option only applies to i386 in ld64">, 1345 Flags<[HelpHidden]>, 1346 Group<grp_ignored_silently>; 1347