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