brintos

brintos / llvm-project-archived public Read only

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