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