xref: /freebsd/contrib/llvm-project/lld/MachO/Options.td (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
15ffd83dbSDimitry Andricinclude "llvm/Option/OptParser.td"
25ffd83dbSDimitry Andric
35f757f3fSDimitry Andricmulticlass BB<string name, string help1, string help2> {
45f757f3fSDimitry Andric  def NAME: Flag<["--"], name>, HelpText<help1>;
55f757f3fSDimitry Andric  def no_ # NAME: Flag<["--"], "no-" # name>, HelpText<help2>;
65f757f3fSDimitry Andric}
75f757f3fSDimitry Andric
8e8d8bef9SDimitry Andric// Flags that lld/MachO understands but ld64 doesn't. These take
9e8d8bef9SDimitry Andric// '--' instead of '-' and use dashes instead of underscores, so
10e8d8bef9SDimitry Andric// they don't collide with the ld64 compat options.
11e8d8bef9SDimitry Andricdef grp_lld : OptionGroup<"kind">, HelpText<"LLD-SPECIFIC">;
12e8d8bef9SDimitry Andric
13e8d8bef9SDimitry Andricdef help : Flag<["-", "--"], "help">,
14e8d8bef9SDimitry Andric    Group<grp_lld>;
155ffd83dbSDimitry Andricdef help_hidden : Flag<["--"], "help-hidden">,
16e8d8bef9SDimitry Andric    HelpText<"Display help for hidden options">,
17e8d8bef9SDimitry Andric    Group<grp_lld>;
18fe6060f1SDimitry Andricdef verbose : Flag<["--"], "verbose">,
19fe6060f1SDimitry Andric    Group<grp_lld>;
20fe6060f1SDimitry Andricdef error_limit_eq : Joined<["--"], "error-limit=">,
21fe6060f1SDimitry Andric    HelpText<"Maximum number of errors to print before exiting (default: 20)">,
22fe6060f1SDimitry Andric    Group<grp_lld>;
23e8d8bef9SDimitry Andricdef color_diagnostics: Flag<["--"], "color-diagnostics">,
24e8d8bef9SDimitry Andric    HelpText<"Alias for --color-diagnostics=always">,
25e8d8bef9SDimitry Andric    Group<grp_lld>;
26e8d8bef9SDimitry Andricdef no_color_diagnostics: Flag<["--"], "no-color-diagnostics">,
27e8d8bef9SDimitry Andric    HelpText<"Alias for --color-diagnostics=never">,
28e8d8bef9SDimitry Andric    Group<grp_lld>;
29e8d8bef9SDimitry Andricdef color_diagnostics_eq: Joined<["--"], "color-diagnostics=">,
30e8d8bef9SDimitry Andric    HelpText<"Use colors in diagnostics (default: auto)">,
31e8d8bef9SDimitry Andric    MetaVarName<"[auto,always,never]">,
32e8d8bef9SDimitry Andric    Group<grp_lld>;
33fe6060f1SDimitry Andricdef threads_eq : Joined<["--"], "threads=">,
34fe6060f1SDimitry Andric    HelpText<"Number of threads. '1' disables multi-threading. By default all available hardware threads are used">,
35fe6060f1SDimitry Andric    Group<grp_lld>;
36bdd1243dSDimitry Andricdef thinlto_emit_imports_files: Flag<["--"], "thinlto-emit-imports-files">,
37bdd1243dSDimitry Andric    Group<grp_lld>;
38bdd1243dSDimitry Andricdef thinlto_emit_index_files: Flag<["--"], "thinlto-emit-index-files">,
39bdd1243dSDimitry Andric    Group<grp_lld>;
40bdd1243dSDimitry Andricdef thinlto_index_only: Flag<["--"], "thinlto-index-only">,
41bdd1243dSDimitry Andric    Group<grp_lld>;
42bdd1243dSDimitry Andricdef thinlto_index_only_eq: Joined<["--"], "thinlto-index-only=">,
43bdd1243dSDimitry Andric    Group<grp_lld>;
44fe6060f1SDimitry Andricdef thinlto_jobs_eq : Joined<["--"], "thinlto-jobs=">,
45fe6060f1SDimitry Andric    HelpText<"Number of ThinLTO jobs. Default to --threads=">,
46fe6060f1SDimitry Andric    Group<grp_lld>;
47bdd1243dSDimitry Andricdef thinlto_object_suffix_replace_eq:
48bdd1243dSDimitry Andric    Joined<["--"], "thinlto-object-suffix-replace=">,
49bdd1243dSDimitry Andric    Group<grp_lld>;
50bdd1243dSDimitry Andricdef thinlto_prefix_replace_eq: Joined<["--"], "thinlto-prefix-replace=">,
51bdd1243dSDimitry Andric    Group<grp_lld>;
52e8d8bef9SDimitry Andricdef reproduce: Separate<["--"], "reproduce">,
53e8d8bef9SDimitry Andric    Group<grp_lld>;
54e8d8bef9SDimitry Andricdef reproduce_eq: Joined<["--"], "reproduce=">,
55e8d8bef9SDimitry Andric    Alias<!cast<Separate>(reproduce)>,
56e8d8bef9SDimitry Andric    HelpText<"Write tar file containing inputs and command to reproduce link">,
57e8d8bef9SDimitry Andric    Group<grp_lld>;
58e8d8bef9SDimitry Andricdef version: Flag<["--"], "version">,
59e8d8bef9SDimitry Andric    HelpText<"Display the version number and exit">,
60e8d8bef9SDimitry Andric    Group<grp_lld>;
6181ad6265SDimitry Andricdef time_trace_eq: Joined<["--"], "time-trace=">,
6281ad6265SDimitry Andric    HelpText<"Record time trace to <file>">,
6381ad6265SDimitry Andric    MetaVarName<"<file>">,
6481ad6265SDimitry Andric    Group<grp_lld>;
6581ad6265SDimitry Andricdef : Flag<["--"], "time-trace">,
6681ad6265SDimitry Andric    Alias<time_trace_eq>,
6781ad6265SDimitry Andric    HelpText<"Record time trace to file next to output">,
68fe6060f1SDimitry Andric    Group<grp_lld>;
69fe6060f1SDimitry Andricdef time_trace_granularity_eq: Joined<["--"], "time-trace-granularity=">,
70fe6060f1SDimitry Andric    HelpText<"Minimum time granularity (in microseconds) traced by time profiler">,
71fe6060f1SDimitry Andric    Group<grp_lld>;
72bdd1243dSDimitry Andricdef deduplicate_strings: Flag<["--"], "deduplicate-strings">,
73bdd1243dSDimitry Andric    HelpText<"Enable string deduplication">,
74bdd1243dSDimitry Andric    Group<grp_lld>;
75bdd1243dSDimitry Andricdef no_deduplicate_strings: Flag<["--"], "no-deduplicate-strings">,
76bdd1243dSDimitry Andric    HelpText<"Disable string deduplication. This helps uncover cases of comparing string addresses instead of equality and might have a link time performance benefit.">,
77bdd1243dSDimitry Andric    Group<grp_lld>;
78bdd1243dSDimitry Andricdef dead_strip_duplicates: Flag<["--"], "dead-strip-duplicates">,
79bdd1243dSDimitry Andric    HelpText<"Do not error on duplicate symbols that will be dead stripped.">,
80fe6060f1SDimitry Andric    Group<grp_lld>;
81fe6060f1SDimitry Andricdef print_dylib_search: Flag<["--"], "print-dylib-search">,
82fe6060f1SDimitry Andric    HelpText<"Print which paths lld searched when trying to find dylibs">,
83fe6060f1SDimitry Andric    Group<grp_lld>;
84fe6060f1SDimitry Andricdef icf_eq: Joined<["--"], "icf=">,
85fe6060f1SDimitry Andric    HelpText<"Set level for identical code folding (default: none)">,
86fe6060f1SDimitry Andric    MetaVarName<"[none,safe,all]">,
87fe6060f1SDimitry Andric    Group<grp_lld>;
88*0fca6ea1SDimitry Andricdef keep_icf_stabs: Joined<["--"], "keep-icf-stabs">,
89*0fca6ea1SDimitry Andric    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.">,
90*0fca6ea1SDimitry Andric    Group<grp_lld>;
91fe6060f1SDimitry Andricdef lto_O: Joined<["--"], "lto-O">,
92fe6060f1SDimitry Andric    HelpText<"Set optimization level for LTO (default: 2)">,
93fe6060f1SDimitry Andric    MetaVarName<"<opt-level>">,
94fe6060f1SDimitry Andric    Group<grp_lld>;
9506c3fb27SDimitry Andricdef lto_CGO: Joined<["--"], "lto-CGO">,
9606c3fb27SDimitry Andric    HelpText<"Set codegen optimization level for LTO (default: 2)">,
9706c3fb27SDimitry Andric    MetaVarName<"<cgopt-level>">,
9806c3fb27SDimitry Andric    Group<grp_lld>;
99bdd1243dSDimitry Andricdef thinlto_cache_policy_eq: Joined<["--"], "thinlto-cache-policy=">,
100fe6060f1SDimitry Andric    HelpText<"Pruning policy for the ThinLTO cache">,
101fe6060f1SDimitry Andric    Group<grp_lld>;
102fe6060f1SDimitry Andricdef O : JoinedOrSeparate<["-"], "O">,
103fe6060f1SDimitry Andric    HelpText<"Optimize output file size">;
10404eeddc0SDimitry Andricdef start_lib: Flag<["--"], "start-lib">,
10504eeddc0SDimitry Andric    HelpText<"Start a grouping of objects that should be treated as if they were together in an archive">;
10604eeddc0SDimitry Andricdef end_lib: Flag<["--"], "end-lib">,
10704eeddc0SDimitry Andric    HelpText<"End a grouping of objects that should be treated as if they were together in an archive">;
108bdd1243dSDimitry Andricdef no_warn_dylib_install_name: Flag<["--"], "no-warn-dylib-install-name">,
109bdd1243dSDimitry Andric    HelpText<"Do not warn on -install_name if -dylib is not passed (default)">,
110349cc55cSDimitry Andric    Group<grp_lld>;
111bdd1243dSDimitry Andricdef warn_dylib_install_name: Flag<["--"], "warn-dylib-install-name">,
112bdd1243dSDimitry Andric    HelpText<"Warn on -install_name if -dylib is not passed">,
113349cc55cSDimitry Andric    Group<grp_lld>;
114*0fca6ea1SDimitry Andricdef warn_duplicate_rpath: Flag<["--"], "warn-duplicate-rpath">,
115*0fca6ea1SDimitry Andric    HelpText<"Warn if the same -rpath is specified multiple times (default)">,
116*0fca6ea1SDimitry Andric    Group<grp_lld>;
117*0fca6ea1SDimitry Andricdef no_warn_duplicate_rpath: Flag<["--"], "no-warn-duplicate-rpath">,
118*0fca6ea1SDimitry Andric    HelpText<"Do not warn if the same -rpath is specified multiple times">,
119*0fca6ea1SDimitry Andric    Group<grp_lld>;
12004eeddc0SDimitry Andricdef call_graph_profile_sort: Flag<["--"], "call-graph-profile-sort">,
12104eeddc0SDimitry Andric    HelpText<"Reorder sections with call graph profile (default)">,
12204eeddc0SDimitry Andric    Group<grp_lld>;
12304eeddc0SDimitry Andricdef no_call_graph_profile_sort : Flag<["--"], "no-call-graph-profile-sort">,
12404eeddc0SDimitry Andric    HelpText<"Do not reorder sections with call graph profile">,
12504eeddc0SDimitry Andric    Group<grp_lld>;
126bdd1243dSDimitry Andricdef print_symbol_order_eq: Joined<["--"], "print-symbol-order=">,
12704eeddc0SDimitry Andric    HelpText<"Print a symbol order specified by --call-graph-profile-sort into the specified file">,
12804eeddc0SDimitry Andric    Group<grp_lld>;
129bdd1243dSDimitry Andricdef ignore_auto_link_option : Separate<["--"], "ignore-auto-link-option">,
130bdd1243dSDimitry Andric    Group<grp_lld>;
131bdd1243dSDimitry Andricdef ignore_auto_link_option_eq : Joined<["--"], "ignore-auto-link-option=">,
132bdd1243dSDimitry Andric    Alias<!cast<Separate>(ignore_auto_link_option)>,
133bdd1243dSDimitry Andric    HelpText<"Ignore a single auto-linked library or framework. Useful to ignore invalid options that ld64 ignores">,
134bdd1243dSDimitry Andric    Group<grp_lld>;
135bdd1243dSDimitry Andricdef strict_auto_link : Flag<["--"], "strict-auto-link">,
136bdd1243dSDimitry Andric    HelpText<"Always warn for missing frameworks or libraries if they are loaded via LC_LINKER_OPTIONS">,
137bdd1243dSDimitry Andric    Group<grp_lld>;
13806c3fb27SDimitry Andricdef check_category_conflicts : Flag<["--"], "check-category-conflicts">,
13906c3fb27SDimitry Andric    HelpText<"Check for conflicts between category & class methods">,
14006c3fb27SDimitry Andric    Group<grp_lld>;
141*0fca6ea1SDimitry Andricdef objc_category_merging : Flag<["-"], "objc_category_merging">,
142*0fca6ea1SDimitry Andric    HelpText<"Merge Objective-C categories that share the same base class">,
143*0fca6ea1SDimitry Andric    Group<grp_lld>;
144*0fca6ea1SDimitry Andricdef no_objc_category_merging : Flag<["-"], "no_objc_category_merging">,
145*0fca6ea1SDimitry Andric    HelpText<"Do not merge Objective-C categories">,
146*0fca6ea1SDimitry Andric    Group<grp_lld>;
14706c3fb27SDimitry Andricdef lto_debug_pass_manager: Flag<["--"], "lto-debug-pass-manager">,
14806c3fb27SDimitry Andric    HelpText<"Debug new pass manager">, Group<grp_lld>;
14906c3fb27SDimitry Andricdef cs_profile_generate: Flag<["--"], "cs-profile-generate">,
150cb14a3feSDimitry Andric    HelpText<"Perform context sensitive PGO instrumentation">, Group<grp_lld>;
15106c3fb27SDimitry Andricdef cs_profile_path: Joined<["--"], "cs-profile-path=">,
15206c3fb27SDimitry Andric    HelpText<"Context sensitive profile file path">, Group<grp_lld>;
1535f757f3fSDimitry Andricdefm pgo_warn_mismatch: BB<"pgo-warn-mismatch",
1545f757f3fSDimitry Andric  "turn on warnings about profile cfg mismatch (default)",
1555f757f3fSDimitry Andric  "turn off warnings about profile cfg mismatch">, Group<grp_lld>;
156*0fca6ea1SDimitry Andricdefm warn_thin_archive_missing_members : BB<"warn-thin-archive-missing-members",
157*0fca6ea1SDimitry Andric  "Warn on missing object files referenced by thin archives (default)",
158*0fca6ea1SDimitry Andric  "Do not warn on missing object files referenced by thin archives">, Group<grp_lld>;
1595ffd83dbSDimitry Andric
1605ffd83dbSDimitry Andric// This is a complete Options.td compiled from Apple's ld(1) manpage
1615ffd83dbSDimitry Andric// dated 2018-03-07 and cross checked with ld64 source code in repo
1625ffd83dbSDimitry Andric// https://github.com/apple-opensource/ld64 at git tag "512.4" dated
1635ffd83dbSDimitry Andric// 2018-03-18.
1645ffd83dbSDimitry Andric
1655ffd83dbSDimitry Andric// Flags<[HelpHidden]> marks options that are not yet ported to lld,
1665ffd83dbSDimitry Andric// and serve as a scoreboard for annotating our progress toward
1675ffd83dbSDimitry Andric// implementing ld64 options in lld. As you add implementions to
1685ffd83dbSDimitry Andric// Driver.cpp, please remove the hidden flag here.
1695ffd83dbSDimitry Andric
1705ffd83dbSDimitry Andricdef grp_kind : OptionGroup<"kind">, HelpText<"OUTPUT KIND">;
1715ffd83dbSDimitry Andric
1725ffd83dbSDimitry Andricdef execute : Flag<["-"], "execute">,
1735ffd83dbSDimitry Andric    HelpText<"Produce a main executable (default)">,
1745ffd83dbSDimitry Andric    Group<grp_kind>;
1755ffd83dbSDimitry Andricdef dylib : Flag<["-"], "dylib">,
1765ffd83dbSDimitry Andric    HelpText<"Produce a shared library">,
1775ffd83dbSDimitry Andric    Group<grp_kind>;
1785ffd83dbSDimitry Andricdef bundle : Flag<["-"], "bundle">,
1795ffd83dbSDimitry Andric    HelpText<"Produce a bundle">,
1805ffd83dbSDimitry Andric    Group<grp_kind>;
1815ffd83dbSDimitry Andricdef r : Flag<["-"], "r">,
1825ffd83dbSDimitry Andric    HelpText<"Merge multiple object files into one, retaining relocations">,
1835ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
1845ffd83dbSDimitry Andric    Group<grp_kind>;
1855ffd83dbSDimitry Andricdef dylinker : Flag<["-"], "dylinker">,
1865ffd83dbSDimitry Andric    HelpText<"Produce a dylinker only used when building dyld">,
1875ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
1885ffd83dbSDimitry Andric    Group<grp_kind>;
1895ffd83dbSDimitry Andricdef dynamic : Flag<["-"], "dynamic">,
1905ffd83dbSDimitry Andric    HelpText<"Link dynamically (default)">,
1915ffd83dbSDimitry Andric    Group<grp_kind>;
1925ffd83dbSDimitry Andricdef static : Flag<["-"], "static">,
1935ffd83dbSDimitry Andric    HelpText<"Link statically">,
1945ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
1955ffd83dbSDimitry Andric    Group<grp_kind>;
1965ffd83dbSDimitry Andricdef preload : Flag<["-"], "preload">,
1975ffd83dbSDimitry Andric    HelpText<"Produce an unsegmented binary for embedded systems">,
1985ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
1995ffd83dbSDimitry Andric    Group<grp_kind>;
2005ffd83dbSDimitry Andricdef arch : Separate<["-"], "arch">,
2015ffd83dbSDimitry Andric    MetaVarName<"<arch_name>">,
2025ffd83dbSDimitry Andric    HelpText<"The architecture (e.g. ppc, ppc64, i386, x86_64)">,
2035ffd83dbSDimitry Andric    Group<grp_kind>;
2045ffd83dbSDimitry Andricdef o : Separate<["-"], "o">,
2055ffd83dbSDimitry Andric    MetaVarName<"<path>">,
2065ffd83dbSDimitry Andric    HelpText<"The name of the output file (default: `a.out')">,
2075ffd83dbSDimitry Andric    Group<grp_kind>;
2085ffd83dbSDimitry Andric
2095ffd83dbSDimitry Andricdef grp_libs : OptionGroup<"libs">, HelpText<"LIBRARIES">;
2105ffd83dbSDimitry Andric
2115ffd83dbSDimitry Andricdef l : Joined<["-"], "l">,
2125ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2135ffd83dbSDimitry Andric    HelpText<"Search for lib<name>.dylib or lib<name>.a on the library search path">,
2145ffd83dbSDimitry Andric    Group<grp_libs>;
2155ffd83dbSDimitry Andricdef weak_l : Joined<["-"], "weak-l">,
2165ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2175ffd83dbSDimitry Andric    HelpText<"Like -l<name>, but mark library and its references as weak imports">,
2185ffd83dbSDimitry Andric    Group<grp_libs>;
2195ffd83dbSDimitry Andricdef weak_library : Separate<["-"], "weak_library">,
2205ffd83dbSDimitry Andric    MetaVarName<"<path>">,
2215ffd83dbSDimitry Andric    HelpText<"Like bare <path>, but mark library and its references as weak imports">,
2225ffd83dbSDimitry Andric    Group<grp_libs>;
223fe6060f1SDimitry Andricdef needed_l : Joined<["-"], "needed-l">,
224fe6060f1SDimitry Andric    MetaVarName<"<name>">,
225fe6060f1SDimitry Andric    HelpText<"Like -l<name>, but link library even if its symbols are not used and -dead_strip_dylibs is active">,
226fe6060f1SDimitry Andric    Group<grp_libs>;
227fe6060f1SDimitry Andricdef needed_library : Separate<["-"], "needed_library">,
228fe6060f1SDimitry Andric    MetaVarName<"<path>">,
229fe6060f1SDimitry Andric    HelpText<"Like bare <path>, but link library even if its symbols are not used and -dead_strip_dylibs is active">,
230fe6060f1SDimitry Andric    Group<grp_libs>;
2315ffd83dbSDimitry Andricdef reexport_l : Joined<["-"], "reexport-l">,
2325ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2335ffd83dbSDimitry Andric    HelpText<"Like -l<name>, but export all symbols of <name> from newly created library">,
2345ffd83dbSDimitry Andric    Group<grp_libs>;
2355ffd83dbSDimitry Andricdef reexport_library : Separate<["-"], "reexport_library">,
2365ffd83dbSDimitry Andric    MetaVarName<"<path>">,
2375ffd83dbSDimitry Andric    HelpText<"Like bare <path>, but export all symbols of <path> from newly created library">,
2385ffd83dbSDimitry Andric    Group<grp_libs>;
2395ffd83dbSDimitry Andricdef upward_l : Joined<["-"], "upward-l">,
2405ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2415ffd83dbSDimitry Andric    HelpText<"Like -l<name>, but specify dylib as an upward dependency">,
2425ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
2435ffd83dbSDimitry Andric    Group<grp_libs>;
2445ffd83dbSDimitry Andricdef upward_library : Separate<["-"], "upward_library">,
2455ffd83dbSDimitry Andric    MetaVarName<"<path>">,
2465ffd83dbSDimitry Andric    HelpText<"Like bare <path>, but specify dylib as an upward dependency">,
2475ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
2485ffd83dbSDimitry Andric    Group<grp_libs>;
2495ffd83dbSDimitry Andricdef L : JoinedOrSeparate<["-"], "L">,
2505ffd83dbSDimitry Andric    MetaVarName<"<dir>">,
2515ffd83dbSDimitry Andric    HelpText<"Add dir to the library search path">,
2525ffd83dbSDimitry Andric    Group<grp_libs>;
2535ffd83dbSDimitry Andricdef Z : Flag<["-"], "Z">,
2545ffd83dbSDimitry Andric    HelpText<"Remove standard directories from the library and framework search paths">,
2555ffd83dbSDimitry Andric    Group<grp_libs>;
2565ffd83dbSDimitry Andricdef syslibroot : Separate<["-"], "syslibroot">,
2575ffd83dbSDimitry Andric    MetaVarName<"<rootdir>">,
2585ffd83dbSDimitry Andric    HelpText<"Prepend <rootdir> to all library and framework search paths">,
2595ffd83dbSDimitry Andric    Group<grp_libs>;
2605ffd83dbSDimitry Andricdef search_paths_first : Flag<["-"], "search_paths_first">,
2615ffd83dbSDimitry Andric    HelpText<"Search for lib<name>.dylib and lib<name>.a at each step in traversing search path (default for Xcode 4 and later)">,
2625ffd83dbSDimitry Andric    Group<grp_libs>;
2635ffd83dbSDimitry Andricdef search_dylibs_first : Flag<["-"], "search_dylibs_first">,
2645ffd83dbSDimitry Andric    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)">,
2655ffd83dbSDimitry Andric    Group<grp_libs>;
2665ffd83dbSDimitry Andricdef framework : Separate<["-"], "framework">,
2675ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2685ffd83dbSDimitry Andric    HelpText<"Search for <name>.framework/<name> on the framework search path">,
2695ffd83dbSDimitry Andric    Group<grp_libs>;
2705ffd83dbSDimitry Andricdef weak_framework : Separate<["-"], "weak_framework">,
2715ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2725ffd83dbSDimitry Andric    HelpText<"Like -framework <name>, but mark framework and its references as weak imports">,
2735ffd83dbSDimitry Andric    Group<grp_libs>;
274fe6060f1SDimitry Andricdef needed_framework : Separate<["-"], "needed_framework">,
275fe6060f1SDimitry Andric    MetaVarName<"<name>">,
276fe6060f1SDimitry Andric    HelpText<"Like -framework <name>, but link <name> even if none of its symbols are used and -dead_strip_dylibs is active">,
277fe6060f1SDimitry Andric    Group<grp_libs>;
2785ffd83dbSDimitry Andricdef reexport_framework : Separate<["-"], "reexport_framework">,
2795ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2805ffd83dbSDimitry Andric    HelpText<"Like -framework <name>, but export all symbols of <name> from the newly created library">,
2815ffd83dbSDimitry Andric    Group<grp_libs>;
2825ffd83dbSDimitry Andricdef upward_framework : Separate<["-"], "upward_framework">,
2835ffd83dbSDimitry Andric    MetaVarName<"<name>">,
2845ffd83dbSDimitry Andric    HelpText<"Like -framework <name>, but specify the framework as an upward dependency">,
2855ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
2865ffd83dbSDimitry Andric    Group<grp_libs>;
2875ffd83dbSDimitry Andricdef F : JoinedOrSeparate<["-"], "F">,
2885ffd83dbSDimitry Andric    MetaVarName<"<dir>">,
2895ffd83dbSDimitry Andric    HelpText<"Add dir to the framework search path">,
2905ffd83dbSDimitry Andric    Group<grp_libs>;
2915ffd83dbSDimitry Andricdef all_load : Flag<["-"], "all_load">,
2925ffd83dbSDimitry Andric    HelpText<"Load all members of all static archive libraries">,
2935ffd83dbSDimitry Andric    Group<grp_libs>;
29404eeddc0SDimitry Andricdef noall_load : Flag<["-"], "noall_load">,
29504eeddc0SDimitry Andric    HelpText<"Don't load all static members from archives, this is the default, this negates -all_load">,
29604eeddc0SDimitry Andric    Group<grp_libs>;
2975ffd83dbSDimitry Andricdef ObjC : Flag<["-"], "ObjC">,
2985ffd83dbSDimitry Andric    HelpText<"Load all members of static archives that are an Objective-C class or category.">,
2995ffd83dbSDimitry Andric    Group<grp_libs>;
3005ffd83dbSDimitry Andricdef force_load : Separate<["-"], "force_load">,
3015ffd83dbSDimitry Andric    MetaVarName<"<path>">,
3025ffd83dbSDimitry Andric    HelpText<"Load all members static archive library at <path>">,
3035ffd83dbSDimitry Andric    Group<grp_libs>;
304fe6060f1SDimitry Andricdef force_load_swift_libs : Flag<["-"], "force_load_swift_libs">,
305fe6060f1SDimitry Andric    HelpText<"Apply -force_load to libraries listed in LC_LINKER_OPTIONS whose names start with 'swift'">,
306fe6060f1SDimitry Andric    Group<grp_libs>;
307972a253aSDimitry Andricdef load_hidden : Separate<["-"], "load_hidden">,
308972a253aSDimitry Andric    MetaVarName<"<path>">,
309972a253aSDimitry Andric    HelpText<"Load all symbols from static library with hidden visibility">,
310972a253aSDimitry Andric    Group<grp_libs>;
311972a253aSDimitry Andricdef hidden_l : Joined<["-"], "hidden-l">,
312972a253aSDimitry Andric    MetaVarName<"<name>">,
313972a253aSDimitry Andric    HelpText<"Like -l<name>, but load all symbols with hidden visibility">,
314972a253aSDimitry Andric    Group<grp_libs>;
3155ffd83dbSDimitry Andric
3165ffd83dbSDimitry Andricdef grp_content : OptionGroup<"content">, HelpText<"ADDITIONAL CONTENT">;
3175ffd83dbSDimitry Andric
3185ffd83dbSDimitry Andricdef sectcreate : MultiArg<["-"], "sectcreate", 3>,
3195ffd83dbSDimitry Andric    MetaVarName<"<segment> <section> <file>">,
3205ffd83dbSDimitry Andric    HelpText<"Create <section> in <segment> from the contents of <file>">,
3215ffd83dbSDimitry Andric    Group<grp_content>;
3225ffd83dbSDimitry Andricdef segcreate : MultiArg<["-"], "segcreate", 3>,
3235ffd83dbSDimitry Andric    MetaVarName<"<segment> <section> <file>">,
3245ffd83dbSDimitry Andric    Alias<sectcreate>,
3255ffd83dbSDimitry Andric    HelpText<"Alias for -sectcreate">,
3265ffd83dbSDimitry Andric    Group<grp_content>;
3271fd87a68SDimitry Andricdef add_empty_section : MultiArg<["-"], "add_empty_section", 2>,
3281fd87a68SDimitry Andric    MetaVarName<"<segment> <section>">,
3291fd87a68SDimitry Andric    HelpText<"Create an empty <section> in <segment>">,
3301fd87a68SDimitry Andric    Group<grp_content>;
3315ffd83dbSDimitry Andricdef filelist : Separate<["-"], "filelist">,
3325ffd83dbSDimitry Andric    MetaVarName<"<file>">,
3335ffd83dbSDimitry Andric    HelpText<"Read names of files to link from <file>">,
3345ffd83dbSDimitry Andric    Group<grp_content>;
3355ffd83dbSDimitry Andricdef dtrace : Separate<["-"], "dtrace">,
3365ffd83dbSDimitry Andric    MetaVarName<"<script>">,
3375ffd83dbSDimitry Andric    HelpText<"Enable DTrace static probes according to declarations in <script>">,
3385ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3395ffd83dbSDimitry Andric    Group<grp_content>;
3405ffd83dbSDimitry Andric
3415ffd83dbSDimitry Andricdef grp_opts : OptionGroup<"opts">, HelpText<"OPTIMIZATIONS">;
3425ffd83dbSDimitry Andric
3435ffd83dbSDimitry Andricdef dead_strip : Flag<["-"], "dead_strip">,
3445ffd83dbSDimitry Andric    HelpText<"Remove unreachable functions and data">,
3455ffd83dbSDimitry Andric    Group<grp_opts>;
3465ffd83dbSDimitry Andricdef order_file : Separate<["-"], "order_file">,
3475ffd83dbSDimitry Andric    MetaVarName<"<file>">,
3485ffd83dbSDimitry Andric    HelpText<"Layout functions and data according to specification in <file>">,
3495ffd83dbSDimitry Andric    Group<grp_opts>;
3505ffd83dbSDimitry Andricdef no_order_inits : Flag<["-"], "no_order_inits">,
3515ffd83dbSDimitry Andric    HelpText<"Disable default reordering of initializer and terminator functions">,
3525ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3535ffd83dbSDimitry Andric    Group<grp_opts>;
3545ffd83dbSDimitry Andricdef no_order_data : Flag<["-"], "no_order_data">,
3555ffd83dbSDimitry Andric    HelpText<"Disable default reordering of global data accessed at launch time">,
3565ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3575ffd83dbSDimitry Andric    Group<grp_opts>;
3585ffd83dbSDimitry Andricdef image_base : Separate<["-"], "image_base">,
3595ffd83dbSDimitry Andric    MetaVarName<"<address>">,
3605ffd83dbSDimitry Andric    HelpText<"Preferred hex load address for a dylib or bundle.">,
3615ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3625ffd83dbSDimitry Andric    Group<grp_opts>;
3635ffd83dbSDimitry Andricdef seg1addr : Separate<["-"], "seg1addr">,
3645ffd83dbSDimitry Andric    MetaVarName<"<address>">,
3655ffd83dbSDimitry Andric    Alias<image_base>,
3665ffd83dbSDimitry Andric    HelpText<"Alias for -image_base">,
3675ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3685ffd83dbSDimitry Andric    Group<grp_opts>;
3695ffd83dbSDimitry Andricdef no_implicit_dylibs : Flag<["-"], "no_implicit_dylibs">,
3705ffd83dbSDimitry Andric    HelpText<"Do not optimize public dylib transitive symbol references">,
3715ffd83dbSDimitry Andric    Group<grp_opts>;
3725ffd83dbSDimitry Andricdef exported_symbols_order : Separate<["-"], "exported_symbols_order">,
3735ffd83dbSDimitry Andric    MetaVarName<"<file>">,
3745ffd83dbSDimitry Andric    HelpText<"Specify frequently-used symbols in <file> to optimize symbol exports">,
3755ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3765ffd83dbSDimitry Andric    Group<grp_opts>;
3775ffd83dbSDimitry Andricdef no_zero_fill_sections : Flag<["-"], "no_zero_fill_sections">,
3785ffd83dbSDimitry Andric    HelpText<"Explicitly store zeroed data in the final image">,
3795ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3805ffd83dbSDimitry Andric    Group<grp_opts>;
3815ffd83dbSDimitry Andricdef merge_zero_fill_sections : Flag<["-"], "merge_zero_fill_sections">,
3825ffd83dbSDimitry Andric    HelpText<"Merge all zeroed data into the __zerofill section">,
3835ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3845ffd83dbSDimitry Andric    Group<grp_opts>;
3855ffd83dbSDimitry Andricdef no_branch_islands : Flag<["-"], "no_branch_islands">,
3865ffd83dbSDimitry Andric    HelpText<"Disable infra for branches beyond the maximum branch distance.">,
3875ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
3885ffd83dbSDimitry Andric    Group<grp_opts>;
389fe6060f1SDimitry Andricdef no_deduplicate : Flag<["-"], "no_deduplicate">,
390bdd1243dSDimitry Andric    HelpText<"Disable code deduplication (synonym for `--icf=none')">,
391349cc55cSDimitry Andric    Alias<icf_eq>, AliasArgs<["none"]>,
392fe6060f1SDimitry Andric    Group<grp_opts>;
393fe6060f1SDimitry Andric
394fe6060f1SDimitry Andricdef grp_version : OptionGroup<"version">, HelpText<"VERSION TARGETING">;
395fe6060f1SDimitry Andric
396fe6060f1SDimitry Andricdef platform_version : MultiArg<["-"], "platform_version", 3>,
397fe6060f1SDimitry Andric    MetaVarName<"<platform> <min_version> <sdk_version>">,
398*0fca6ea1SDimitry Andric    HelpText<"Platform (e.g., macos, ios, tvos, watchos, xros, bridgeos, mac-catalyst, ios-sim, tvos-sim, watchos-sim, xros-sim, driverkit) and version numbers">,
399fe6060f1SDimitry Andric    Group<grp_version>;
400fe6060f1SDimitry Andricdef sdk_version : Separate<["-"], "sdk_version">,
401fe6060f1SDimitry Andric    HelpText<"This option is undocumented in ld64">,
402fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
403fe6060f1SDimitry Andric    Group<grp_version>;
404fe6060f1SDimitry Andricdef macos_version_min : Separate<["-"], "macos_version_min">,
405fe6060f1SDimitry Andric    MetaVarName<"<version>">,
406fe6060f1SDimitry Andric    HelpText<"Oldest macOS version for which linked output is usable">,
407fe6060f1SDimitry Andric    Group<grp_version>;
408fe6060f1SDimitry Andricdef macosx_version_min : Separate<["-"], "macosx_version_min">,
409fe6060f1SDimitry Andric    MetaVarName<"<version>">,
410fe6060f1SDimitry Andric    Alias<macos_version_min>,
411fe6060f1SDimitry Andric    HelpText<"Alias for -macos_version_min">,
412fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
413fe6060f1SDimitry Andric    Group<grp_version>;
414fe6060f1SDimitry Andricdef ios_version_min : Separate<["-"], "ios_version_min">,
415fe6060f1SDimitry Andric    MetaVarName<"<version>">,
416fe6060f1SDimitry Andric    HelpText<"Oldest iOS version for which linked output is usable">,
417fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
418fe6060f1SDimitry Andric    Group<grp_version>;
419fe6060f1SDimitry Andricdef ios_simulator_version_min : Separate<["-"], "ios_simulator_version_min">,
420fe6060f1SDimitry Andric    MetaVarName<"<version>">,
421fe6060f1SDimitry Andric    HelpText<"Oldest iOS simulator version for which linked output is usable">,
422fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
423fe6060f1SDimitry Andric    Group<grp_version>;
424fe6060f1SDimitry Andricdef iphoneos_version_min : Separate<["-"], "iphoneos_version_min">,
425fe6060f1SDimitry Andric    MetaVarName<"<version>">,
426fe6060f1SDimitry Andric    Alias<ios_version_min>,
427fe6060f1SDimitry Andric    HelpText<"Alias for -ios_version_min">,
428fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
429fe6060f1SDimitry Andric    Group<grp_version>;
430fe6060f1SDimitry Andricdef maccatalyst_version_min : Separate<["-"], "maccatalyst_version_min">,
431fe6060f1SDimitry Andric    MetaVarName<"<version>">,
432fe6060f1SDimitry Andric    HelpText<"Oldest MacCatalyst version for which linked output is usable">,
433fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
434fe6060f1SDimitry Andric    Group<grp_version>;
435fe6060f1SDimitry Andricdef iosmac_version_min : Separate<["-"], "iosmac_version_min">,
436fe6060f1SDimitry Andric    MetaVarName<"<version>">,
437fe6060f1SDimitry Andric    Alias<maccatalyst_version_min>,
438fe6060f1SDimitry Andric    HelpText<"Alias for -maccatalyst_version_min">,
439fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
440fe6060f1SDimitry Andric    Group<grp_version>;
441fe6060f1SDimitry Andricdef uikitformac_version_min : Separate<["-"], "uikitformac_version_min">,
442fe6060f1SDimitry Andric    MetaVarName<"<version>">,
443fe6060f1SDimitry Andric    Alias<maccatalyst_version_min>,
444fe6060f1SDimitry Andric    HelpText<"Alias for -maccatalyst_version_min">,
445fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
446fe6060f1SDimitry Andric    Group<grp_version>;
447fe6060f1SDimitry Andricdef tvos_version_min : Separate<["-"], "tvos_version_min">,
448fe6060f1SDimitry Andric    MetaVarName<"<version>">,
449fe6060f1SDimitry Andric    HelpText<"Oldest tvOS version for which linked output is usable">,
450fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
451fe6060f1SDimitry Andric    Group<grp_version>;
452fe6060f1SDimitry Andricdef watchos_version_min : Separate<["-"], "watchos_version_min">,
453fe6060f1SDimitry Andric    MetaVarName<"<version>">,
454fe6060f1SDimitry Andric    HelpText<"Oldest watchOS version for which linked output is usable">,
455fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
456fe6060f1SDimitry Andric    Group<grp_version>;
457fe6060f1SDimitry Andricdef bridgeos_version_min : Separate<["-"], "bridgeos_version_min">,
458fe6060f1SDimitry Andric    MetaVarName<"<version>">,
459fe6060f1SDimitry Andric    HelpText<"Oldest bridgeOS version for which linked output is usable">,
460fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
461fe6060f1SDimitry Andric    Group<grp_version>;
462fe6060f1SDimitry Andricdef driverkit_version_min : Separate<["-"], "driverkit_version_min">,
463fe6060f1SDimitry Andric    MetaVarName<"<version>">,
464fe6060f1SDimitry Andric    HelpText<"Oldest DriverKit version for which linked output is usable">,
465fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
466fe6060f1SDimitry Andric    Group<grp_version>;
4675ffd83dbSDimitry Andric
4685ffd83dbSDimitry Andricdef grp_dylib : OptionGroup<"dylib">, HelpText<"DYNAMIC LIBRARIES (DYLIB)">;
4695ffd83dbSDimitry Andric
4705ffd83dbSDimitry Andricdef install_name : Separate<["-"], "install_name">,
4715ffd83dbSDimitry Andric    MetaVarName<"<name>">,
4725ffd83dbSDimitry Andric    HelpText<"Set an internal install path in a dylib">,
4735ffd83dbSDimitry Andric    Group<grp_dylib>;
4745ffd83dbSDimitry Andricdef dylib_install_name : Separate<["-"], "dylib_install_name">,
4755ffd83dbSDimitry Andric    MetaVarName<"<name>">,
4765ffd83dbSDimitry Andric    Alias<install_name>,
4775ffd83dbSDimitry Andric    HelpText<"Alias for -install_name">,
4785ffd83dbSDimitry Andric    Group<grp_dylib>;
4795ffd83dbSDimitry Andricdef dylinker_install_name : Separate<["-"], "dylinker_install_name">,
4805ffd83dbSDimitry Andric    MetaVarName<"<name>">,
4815ffd83dbSDimitry Andric    Alias<install_name>,
4825ffd83dbSDimitry Andric    HelpText<"Alias for -install_name">,
4835ffd83dbSDimitry Andric    Group<grp_dylib>;
4845ffd83dbSDimitry Andricdef mark_dead_strippable_dylib : Flag<["-"], "mark_dead_strippable_dylib">,
485fe6060f1SDimitry Andric    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">,
4865ffd83dbSDimitry Andric    Group<grp_dylib>;
4875ffd83dbSDimitry Andricdef compatibility_version : Separate<["-"], "compatibility_version">,
4885ffd83dbSDimitry Andric    MetaVarName<"<version>">,
4895ffd83dbSDimitry Andric    HelpText<"Compatibility <version> of this library">,
4905ffd83dbSDimitry Andric    Group<grp_dylib>;
4915ffd83dbSDimitry Andricdef dylib_compatibility_version : Separate<["-"], "dylib_compatibility_version">,
4925ffd83dbSDimitry Andric    MetaVarName<"<version>">,
4935ffd83dbSDimitry Andric    Alias<compatibility_version>,
4945ffd83dbSDimitry Andric    HelpText<"Alias for -compatibility_version">,
4955ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
4965ffd83dbSDimitry Andric    Group<grp_dylib>;
4975ffd83dbSDimitry Andricdef current_version : Separate<["-"], "current_version">,
4985ffd83dbSDimitry Andric    MetaVarName<"<version>">,
4995ffd83dbSDimitry Andric    HelpText<"Current <version> of this library">,
5005ffd83dbSDimitry Andric    Group<grp_dylib>;
5015ffd83dbSDimitry Andricdef dylib_current_version : Separate<["-"], "dylib_current_version">,
5025ffd83dbSDimitry Andric    MetaVarName<"<version>">,
5035ffd83dbSDimitry Andric    Alias<current_version>,
5045ffd83dbSDimitry Andric    HelpText<"Alias for -current_version">,
5055ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
5065ffd83dbSDimitry Andric    Group<grp_dylib>;
5075ffd83dbSDimitry Andric
5085ffd83dbSDimitry Andricdef grp_main : OptionGroup<"main">, HelpText<"MAIN EXECUTABLE">;
5095ffd83dbSDimitry Andric
5105ffd83dbSDimitry Andricdef pie : Flag<["-"], "pie">,
511fe6060f1SDimitry Andric    HelpText<"Build a position independent executable (default)">,
5125ffd83dbSDimitry Andric    Group<grp_main>;
5135ffd83dbSDimitry Andricdef no_pie : Flag<["-"], "no_pie">,
514fe6060f1SDimitry Andric    HelpText<"Do not build a position independent executable">,
5155ffd83dbSDimitry Andric    Group<grp_main>;
5165ffd83dbSDimitry Andricdef pagezero_size : Separate<["-"], "pagezero_size">,
5175ffd83dbSDimitry Andric    MetaVarName<"<size>">,
5185ffd83dbSDimitry Andric    HelpText<"Size of unreadable segment at address zero is hex <size> (default is 4KB on 32-bit and 4GB on 64-bit)">,
5195ffd83dbSDimitry Andric    Group<grp_main>;
5205ffd83dbSDimitry Andricdef stack_size : Separate<["-"], "stack_size">,
5215ffd83dbSDimitry Andric    MetaVarName<"<size>">,
5225ffd83dbSDimitry Andric    HelpText<"Maximum hex stack size for the main thread in a program. (default is 8MB)">,
5235ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
5245ffd83dbSDimitry Andric    Group<grp_main>;
5255ffd83dbSDimitry Andricdef allow_stack_execute : Flag<["-"], "allow_stack_execute">,
5265ffd83dbSDimitry Andric    HelpText<"Mark stack segment as executable">,
5275ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
5285ffd83dbSDimitry Andric    Group<grp_main>;
5295ffd83dbSDimitry Andricdef export_dynamic : Flag<["-"], "export_dynamic">,
530fe6060f1SDimitry Andric    HelpText<"Preserve all global symbols during LTO and when dead-stripping executables">,
5315ffd83dbSDimitry Andric    Group<grp_main>;
5325ffd83dbSDimitry Andric
5335ffd83dbSDimitry Andricdef grp_bundle : OptionGroup<"bundle">, HelpText<"CREATING A BUNDLE">;
5345ffd83dbSDimitry Andric
5355ffd83dbSDimitry Andricdef bundle_loader : Separate<["-"], "bundle_loader">,
5365ffd83dbSDimitry Andric    MetaVarName<"<executable>">,
5375ffd83dbSDimitry Andric    HelpText<"Resolve undefined symbols from <executable>">,
5385ffd83dbSDimitry Andric    Group<grp_bundle>;
5395ffd83dbSDimitry Andric
5405ffd83dbSDimitry Andricdef grp_object : OptionGroup<"object">, HelpText<"CREATING AN OBJECT FILE">;
5415ffd83dbSDimitry Andric
5425ffd83dbSDimitry Andricdef keep_private_externs : Flag<["-"], "keep_private_externs">,
543e8d8bef9SDimitry Andric    HelpText<"Do not convert private external symbols to static symbols (only valid with -r)">,
5445ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
5455ffd83dbSDimitry Andric    Group<grp_object>;
5465ffd83dbSDimitry Andricdef d : Flag<["-"], "d">,
5475ffd83dbSDimitry Andric    HelpText<"Force tentative into real definitions for common symbols">,
5485ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
5495ffd83dbSDimitry Andric    Group<grp_object>;
5505ffd83dbSDimitry Andric
5515ffd83dbSDimitry Andricdef grp_resolve : OptionGroup<"resolve">, HelpText<"SYMBOL RESOLUTION">;
5525ffd83dbSDimitry Andric
5535ffd83dbSDimitry Andricdef exported_symbol : Separate<["-"], "exported_symbol">,
5545ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
5555ffd83dbSDimitry Andric    HelpText<"<symbol> remains global, while others become private externs">,
5565ffd83dbSDimitry Andric    Group<grp_resolve>;
557fe6060f1SDimitry Andricdef exported_symbols_list : Separate<["-"], "exported_symbols_list">,
5585ffd83dbSDimitry Andric    MetaVarName<"<file>">,
559fe6060f1SDimitry Andric    HelpText<"Symbols specified in <file> remain global, while others become private externs">,
5605ffd83dbSDimitry Andric    Group<grp_resolve>;
56181ad6265SDimitry Andricdef no_exported_symbols : Flag<["-"], "no_exported_symbols">,
56281ad6265SDimitry Andric    HelpText<"Don't export any symbols from the binary, useful for main executables that don't have plugins">,
56381ad6265SDimitry Andric    Group<grp_resolve>;
5645ffd83dbSDimitry Andricdef unexported_symbol : Separate<["-"], "unexported_symbol">,
5655ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
5665ffd83dbSDimitry Andric    HelpText<"Global <symbol> becomes private extern">,
567fe6060f1SDimitry Andric    Group<grp_resolve>;
568fe6060f1SDimitry Andricdef unexported_symbols_list : Separate<["-"], "unexported_symbols_list">,
569fe6060f1SDimitry Andric    MetaVarName<"<file>">,
570fe6060f1SDimitry Andric    HelpText<"Global symbols specified in <file> become private externs">,
5715ffd83dbSDimitry Andric    Group<grp_resolve>;
5725ffd83dbSDimitry Andricdef reexported_symbols_list : Separate<["-"], "reexported_symbols_list">,
5735ffd83dbSDimitry Andric    MetaVarName<"<file>">,
5745ffd83dbSDimitry Andric    HelpText<"Symbols from dependent dylibs specified in <file> are reexported by this dylib">,
5755ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
5765ffd83dbSDimitry Andric    Group<grp_resolve>;
5775ffd83dbSDimitry Andricdef alias : MultiArg<["-"], "alias", 2>,
5785ffd83dbSDimitry Andric    MetaVarName<"<symbol_name> <alternate_name>">,
5795ffd83dbSDimitry Andric    HelpText<"Create a symbol alias with default global visibility">,
5805ffd83dbSDimitry Andric    Group<grp_resolve>;
5815ffd83dbSDimitry Andricdef alias_list : Separate<["-"], "alias_list">,
5825ffd83dbSDimitry Andric    MetaVarName<"<file>">,
5835ffd83dbSDimitry Andric    HelpText<"Create symbol aliases specified in <file>">,
5845ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
5855ffd83dbSDimitry Andric    Group<grp_resolve>;
5865ffd83dbSDimitry Andricdef flat_namespace : Flag<["-"], "flat_namespace">,
587fe6060f1SDimitry Andric    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">,
588fe6060f1SDimitry Andric    Group<grp_resolve>;
589fe6060f1SDimitry Andricdef twolevel_namespace : Flag<["-"], "twolevel_namespace">,
590fe6060f1SDimitry Andric    HelpText<"Make dyld look up symbols by (dylib,name) pairs (default)">,
5915ffd83dbSDimitry Andric    Group<grp_resolve>;
5925ffd83dbSDimitry Andricdef u : Separate<["-"], "u">,
5935ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
5945ffd83dbSDimitry Andric    HelpText<"Require that <symbol> be defined for the link to succeed">,
5955ffd83dbSDimitry Andric    Group<grp_resolve>;
5965ffd83dbSDimitry Andricdef U : Separate<["-"], "U">,
5975ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
5985ffd83dbSDimitry Andric    HelpText<"Allow <symbol> to have no definition">,
5995ffd83dbSDimitry Andric    Group<grp_resolve>;
6005ffd83dbSDimitry Andricdef undefined : Separate<["-"], "undefined">,
6015ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
6025ffd83dbSDimitry Andric    HelpText<"Handle undefined symbols according to <treatment>: error, warning, suppress, or dynamic_lookup (default is error)">,
6035ffd83dbSDimitry Andric    Group<grp_resolve>;
6045ffd83dbSDimitry Andricdef rpath : Separate<["-"], "rpath">,
6055ffd83dbSDimitry Andric    MetaVarName<"<path>">,
6065ffd83dbSDimitry Andric    HelpText<"Add <path> to dyld search list for dylibs with load path prefix `@rpath/'">,
6075ffd83dbSDimitry Andric    Group<grp_resolve>;
6085ffd83dbSDimitry Andricdef commons : Separate<["-"], "commons">,
6095ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
6105ffd83dbSDimitry Andric    HelpText<"Resolve tentative definitions in dylibs according to <treatment>: ignore_dylibs, use_dylibs, error (default is ignore_dylibs)">,
6115ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
6125ffd83dbSDimitry Andric    Group<grp_resolve>;
6135ffd83dbSDimitry Andric
6145ffd83dbSDimitry Andricdef grp_introspect : OptionGroup<"introspect">, HelpText<"INTROSPECTING THE LINKER">;
6155ffd83dbSDimitry Andric
6165ffd83dbSDimitry Andricdef why_load : Flag<["-"], "why_load">,
617e8d8bef9SDimitry Andric    HelpText<"Log why each object file is loaded from a static library">,
6185ffd83dbSDimitry Andric    Group<grp_introspect>;
6195ffd83dbSDimitry Andricdef whyload : Flag<["-"], "whyload">,
6205ffd83dbSDimitry Andric    Alias<why_load>,
6215ffd83dbSDimitry Andric    HelpText<"Alias for -why_load">,
6225ffd83dbSDimitry Andric    Group<grp_introspect>;
6235ffd83dbSDimitry Andricdef why_live : Separate<["-"], "why_live">,
6245ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
6255ffd83dbSDimitry Andric    HelpText<"Log a chain of references to <symbol>, for use with -dead_strip">,
6265ffd83dbSDimitry Andric    Group<grp_introspect>;
6275ffd83dbSDimitry Andricdef print_statistics : Flag<["-"], "print_statistics">,
6285ffd83dbSDimitry Andric    HelpText<"Log the linker's memory and CPU usage">,
6295ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
6305ffd83dbSDimitry Andric    Group<grp_introspect>;
6315ffd83dbSDimitry Andricdef t : Flag<["-"], "t">,
6325ffd83dbSDimitry Andric    HelpText<"Log every file the linker loads: object, archive, and dylib">,
6335ffd83dbSDimitry Andric    Group<grp_introspect>;
6345ffd83dbSDimitry Andricdef whatsloaded : Flag<["-"], "whatsloaded">,
6355ffd83dbSDimitry Andric    HelpText<"Logs only the object files the linker loads">,
6365ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
6375ffd83dbSDimitry Andric    Group<grp_introspect>;
6385ffd83dbSDimitry Andricdef order_file_statistics : Flag<["-"], "order_file_statistics">,
6395ffd83dbSDimitry Andric    HelpText<"Logs information about -order_file">,
6405ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
6415ffd83dbSDimitry Andric    Group<grp_introspect>;
6425ffd83dbSDimitry Andricdef map : Separate<["-"], "map">,
6435ffd83dbSDimitry Andric    MetaVarName<"<path>">,
6445ffd83dbSDimitry Andric    HelpText<"Writes all symbols and their addresses to <path>">,
6455ffd83dbSDimitry Andric    Group<grp_introspect>;
646e8d8bef9SDimitry Andricdef dependency_info : Separate<["-"], "dependency_info">,
647e8d8bef9SDimitry Andric    MetaVarName<"<path>">,
648e8d8bef9SDimitry Andric    HelpText<"Dump dependency info">,
649e8d8bef9SDimitry Andric    Group<grp_introspect>;
650e8d8bef9SDimitry Andricdef save_temps : Flag<["-"], "save-temps">,
651e8d8bef9SDimitry Andric    HelpText<"Save intermediate LTO compilation results">,
652e8d8bef9SDimitry Andric    Group<grp_introspect>;
6535ffd83dbSDimitry Andric
654fe6060f1SDimitry Andricdef grp_symtab : OptionGroup<"symtab">, HelpText<"SYMBOL TABLE">;
6555ffd83dbSDimitry Andric
6565ffd83dbSDimitry Andricdef S : Flag<["-"], "S">,
6575ffd83dbSDimitry Andric    HelpText<"Strip debug information (STABS or DWARF) from the output">,
6585ffd83dbSDimitry Andric    Group<grp_symtab>;
6595ffd83dbSDimitry Andricdef x : Flag<["-"], "x">,
6605ffd83dbSDimitry Andric    HelpText<"Exclude non-global symbols from the output symbol table">,
6615ffd83dbSDimitry Andric    Group<grp_symtab>;
6625ffd83dbSDimitry Andricdef non_global_symbols_strip_list : Separate<["-"], "non_global_symbols_strip_list">,
6635ffd83dbSDimitry Andric    MetaVarName<"<path>">,
6645ffd83dbSDimitry Andric    HelpText<"Specify in <path> the non-global symbols that should be removed from the output symbol table">,
6655ffd83dbSDimitry Andric    Group<grp_symtab>;
6665ffd83dbSDimitry Andricdef non_global_symbols_no_strip_list : Separate<["-"], "non_global_symbols_no_strip_list">,
6675ffd83dbSDimitry Andric    MetaVarName<"<path>">,
6685ffd83dbSDimitry Andric    HelpText<"Specify in <path> the non-global symbols that should remain in the output symbol table">,
6695ffd83dbSDimitry Andric    Group<grp_symtab>;
6705ffd83dbSDimitry Andricdef oso_prefix : Separate<["-"], "oso_prefix">,
6715ffd83dbSDimitry Andric    MetaVarName<"<path>">,
6725ffd83dbSDimitry Andric    HelpText<"Remove the prefix <path> from OSO symbols in the debug map">,
6735ffd83dbSDimitry Andric    Group<grp_symtab>;
674fe6060f1SDimitry Andricdef add_ast_path : Separate<["-"], "add_ast_path">,
675fe6060f1SDimitry Andric    MetaVarName<"<path>">,
676fe6060f1SDimitry Andric    HelpText<"AST paths will be emitted as STABS">,
677fe6060f1SDimitry Andric    Group<grp_symtab>;
6785ffd83dbSDimitry Andric
6795ffd83dbSDimitry Andricdef grp_rare : OptionGroup<"rare">, HelpText<"RARELY USED">;
6805ffd83dbSDimitry Andric
6815ffd83dbSDimitry Andricdef v : Flag<["-"], "v">,
682fe6060f1SDimitry Andric    HelpText<"Print the linker version and search paths in addition to linking">,
683e8d8bef9SDimitry Andric    Group<grp_rare>;
684e8d8bef9SDimitry Andricdef adhoc_codesign : Flag<["-"], "adhoc_codesign">,
685fe6060f1SDimitry Andric    HelpText<"Write an ad-hoc code signature to the output file (default for arm64 binaries)">,
6865ffd83dbSDimitry Andric    Group<grp_rare>;
687e8d8bef9SDimitry Andricdef no_adhoc_codesign : Flag<["-"], "no_adhoc_codesign">,
688fe6060f1SDimitry Andric    HelpText<"Do not write an ad-hoc code signature to the output file (default for x86_64 binaries)">,
689e8d8bef9SDimitry Andric    Group<grp_rare>;
69006c3fb27SDimitry Andricdef reproducible : Flag<["-"], "reproducible">,
69106c3fb27SDimitry Andric    HelpText<"Make the output reproducible by removing timestamps and other non-deterministic data. This is the default behavior.">,
69206c3fb27SDimitry Andric    Group<grp_rare>;
6935ffd83dbSDimitry Andricdef version_details : Flag<["-"], "version_details">,
6945ffd83dbSDimitry Andric    HelpText<"Print the linker version in JSON form">,
6955ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
6965ffd83dbSDimitry Andric    Group<grp_rare>;
6975ffd83dbSDimitry Andricdef no_weak_imports : Flag<["-"], "no_weak_imports">,
6985ffd83dbSDimitry Andric    HelpText<"Fail if any symbols are weak imports, allowed to be NULL at runtime">,
6995ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7005ffd83dbSDimitry Andric    Group<grp_rare>;
7015ffd83dbSDimitry Andricdef verbose_deduplicate : Flag<["-"], "verbose_deduplicate">,
7025ffd83dbSDimitry Andric    HelpText<"Print function names eliminated by deduplication and the total size of code savings">,
7035ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7045ffd83dbSDimitry Andric    Group<grp_rare>;
7055ffd83dbSDimitry Andricdef no_inits : Flag<["-"], "no_inits">,
7065ffd83dbSDimitry Andric    HelpText<"Fail if the output contains static initializers">,
7075ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7085ffd83dbSDimitry Andric    Group<grp_rare>;
7095ffd83dbSDimitry Andricdef no_warn_inits : Flag<["-"], "no_warn_inits">,
7105ffd83dbSDimitry Andric    HelpText<"Suppress warnings for static initializers in the output">,
7115ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7125ffd83dbSDimitry Andric    Group<grp_rare>;
7135ffd83dbSDimitry Andricdef unaligned_pointers : Separate<["-"], "unaligned_pointers">,
7145ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
7155ffd83dbSDimitry Andric    HelpText<"Handle unaligned pointers in __DATA segments according to <treatment>: warning, error, or suppress (default for arm64e is error, otherwise suppress)">,
7165ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7175ffd83dbSDimitry Andric    Group<grp_rare>;
7185ffd83dbSDimitry Andricdef dirty_data_list : Separate<["-"], "dirty_data_list">,
7195ffd83dbSDimitry Andric    MetaVarName<"<path>">,
7205ffd83dbSDimitry Andric    HelpText<"Specify data symbols in <path> destined for the __DATA_DIRTY segment">,
7215ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7225ffd83dbSDimitry Andric    Group<grp_rare>;
7235ffd83dbSDimitry Andricdef max_default_common_align : Separate<["-"], "max_default_common_align">,
7245ffd83dbSDimitry Andric    MetaVarName<"<boundary>">,
7255ffd83dbSDimitry Andric    HelpText<"Reduce maximum alignment for common symbols to a hex power-of-2 <boundary>">,
7265ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7275ffd83dbSDimitry Andric    Group<grp_rare>;
7285ffd83dbSDimitry Andricdef move_to_rw_segment : MultiArg<["-"], "move_to_rw_segment", 2>,
7295ffd83dbSDimitry Andric    MetaVarName<"<segment> <path>">,
7305ffd83dbSDimitry Andric    HelpText<"Move data symbols listed in <path> to another <segment>">,
7315ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7325ffd83dbSDimitry Andric    Group<grp_rare>;
7335ffd83dbSDimitry Andricdef move_to_ro_segment : MultiArg<["-"], "move_to_ro_segment", 2>,
7345ffd83dbSDimitry Andric    MetaVarName<"<segment> <path>">,
7355ffd83dbSDimitry Andric    HelpText<"Move code symbols listed in <path> to another <segment>">,
7365ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7375ffd83dbSDimitry Andric    Group<grp_rare>;
7385ffd83dbSDimitry Andricdef rename_section : MultiArg<["-"], "rename_section", 4>,
7395ffd83dbSDimitry Andric    MetaVarName<"<from_segment> <from_section> <to_segment> <to_section>">,
7405ffd83dbSDimitry Andric    HelpText<"Rename <from_segment>/<from_section> as <to_segment>/<to_section>">,
7415ffd83dbSDimitry Andric    Group<grp_rare>;
7425ffd83dbSDimitry Andricdef rename_segment : MultiArg<["-"], "rename_segment", 2>,
7435ffd83dbSDimitry Andric    MetaVarName<"<from_segment> <to_segment>">,
7445ffd83dbSDimitry Andric    HelpText<"Rename <from_segment> as <to_segment>">,
7455ffd83dbSDimitry Andric    Group<grp_rare>;
7465ffd83dbSDimitry Andricdef trace_symbol_layout : Flag<["-"], "trace_symbol_layout">,
7475ffd83dbSDimitry Andric    HelpText<"Show where and why symbols move, as specified by -move_to_ro_segment, -move_to_rw_segment, -rename_section, and -rename_segment">,
7485ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7495ffd83dbSDimitry Andric    Group<grp_rare>;
750fe6060f1SDimitry Andricdef data_const : Flag<["-"], "data_const">,
751fe6060f1SDimitry Andric    HelpText<"Force migration of readonly data into __DATA_CONST segment">,
752fe6060f1SDimitry Andric    Group<grp_rare>;
753fe6060f1SDimitry Andricdef no_data_const : Flag<["-"], "no_data_const">,
754fe6060f1SDimitry Andric    HelpText<"Block migration of readonly data away from __DATA segment">,
755fe6060f1SDimitry Andric    Group<grp_rare>;
756fe6060f1SDimitry Andricdef text_exec : Flag<["-"], "text_exec">,
757fe6060f1SDimitry Andric    HelpText<"Rename __segment TEXT to __TEXT_EXEC for sections __text and __stubs">,
758fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
759fe6060f1SDimitry Andric    Group<grp_rare>;
7605ffd83dbSDimitry Andricdef section_order : MultiArg<["-"], "section_order", 2>,
7615ffd83dbSDimitry Andric    MetaVarName<"<segment> <sections>">,
7625ffd83dbSDimitry Andric    HelpText<"With -preload, specify layout sequence of colon-separated <sections> in <segment>">,
7635ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7645ffd83dbSDimitry Andric    Group<grp_rare>;
7655ffd83dbSDimitry Andricdef segment_order : Separate<["-"], "segment_order">,
7665ffd83dbSDimitry Andric    MetaVarName<"<colon_separated_segment_list>">,
7675ffd83dbSDimitry Andric    HelpText<"With -preload, specify layout sequence of colon-separated <segments>">,
7685ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7695ffd83dbSDimitry Andric    Group<grp_rare>;
7705ffd83dbSDimitry Andricdef allow_heap_execute : Flag<["-"], "allow_heap_execute">,
7715ffd83dbSDimitry Andric    HelpText<"On i386, allow any page to execute code">,
7725ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7735ffd83dbSDimitry Andric    Group<grp_rare>;
7745ffd83dbSDimitry Andricdef application_extension : Flag<["-"], "application_extension">,
775fe6060f1SDimitry Andric    HelpText<"Mark output as safe for use in an application extension, and validate that linked dylibs are safe">,
7765ffd83dbSDimitry Andric    Group<grp_rare>;
7775ffd83dbSDimitry Andricdef no_application_extension : Flag<["-"], "no_application_extension">,
778fe6060f1SDimitry Andric    HelpText<"Disable application extension functionality (default)">,
7795ffd83dbSDimitry Andric    Group<grp_rare>;
7805ffd83dbSDimitry Andricdef fatal_warnings : Flag<["-"], "fatal_warnings">,
781e8d8bef9SDimitry Andric    HelpText<"Treat warnings as errors">,
7825ffd83dbSDimitry Andric    Group<grp_rare>;
7835ffd83dbSDimitry Andricdef no_eh_labels : Flag<["-"], "no_eh_labels">,
7845ffd83dbSDimitry Andric    HelpText<"In -r mode, suppress .eh labels in the __eh_frame section">,
7855ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7865ffd83dbSDimitry Andric    Group<grp_rare>;
7875ffd83dbSDimitry Andricdef warn_compact_unwind : Flag<["-"], "warn_compact_unwind">,
7885ffd83dbSDimitry Andric    HelpText<"Warn for each FDE that cannot compact into the __unwind_info section and must remain in the __eh_frame section">,
7895ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7905ffd83dbSDimitry Andric    Group<grp_rare>;
7915ffd83dbSDimitry Andricdef warn_weak_exports : Flag<["-"], "warn_weak_exports">,
7925ffd83dbSDimitry Andric    HelpText<"Warn if the linked image contains weak external symbols">,
7935ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7945ffd83dbSDimitry Andric    Group<grp_rare>;
7955ffd83dbSDimitry Andricdef no_weak_exports : Flag<["-"], "no_weak_exports">,
7965ffd83dbSDimitry Andric    HelpText<"Fail if the linked image contains weak external symbols">,
7975ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
7985ffd83dbSDimitry Andric    Group<grp_rare>;
7995ffd83dbSDimitry Andricdef objc_gc_compaction : Flag<["-"], "objc_gc_compaction">,
8005ffd83dbSDimitry Andric    HelpText<"Mark the Objective-C image as compatible with compacting garbage collection">,
8015ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8025ffd83dbSDimitry Andric    Group<grp_rare>;
8035ffd83dbSDimitry Andricdef objc_gc : Flag<["-"], "objc_gc">,
8045ffd83dbSDimitry Andric    HelpText<"Verify that all code was compiled with -fobjc-gc or -fobjc-gc-only">,
8055ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8065ffd83dbSDimitry Andric    Group<grp_rare>;
8075ffd83dbSDimitry Andricdef objc_gc_only : Flag<["-"], "objc_gc_only">,
8085ffd83dbSDimitry Andric    HelpText<"Verify that all code was compiled with -fobjc-gc-only">,
8095ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8105ffd83dbSDimitry Andric    Group<grp_rare>;
8115ffd83dbSDimitry Andricdef dead_strip_dylibs : Flag<["-"], "dead_strip_dylibs">,
8125ffd83dbSDimitry Andric    HelpText<"Remove dylibs that are unreachable by the entry point or exported symbols">,
8135ffd83dbSDimitry Andric    Group<grp_rare>;
8145ffd83dbSDimitry Andricdef allow_sub_type_mismatches : Flag<["-"], "allow_sub_type_mismatches">,
8155ffd83dbSDimitry Andric    HelpText<"Permit mixing objects compiled for different ARM CPU subtypes">,
8165ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8175ffd83dbSDimitry Andric    Group<grp_rare>;
8185ffd83dbSDimitry Andricdef no_uuid : Flag<["-"], "no_uuid">,
8195ffd83dbSDimitry Andric    HelpText<"Do not generate the LC_UUID load command">,
8205ffd83dbSDimitry Andric    Group<grp_rare>;
8215ffd83dbSDimitry Andricdef root_safe : Flag<["-"], "root_safe">,
8225ffd83dbSDimitry Andric    HelpText<"Set the MH_ROOT_SAFE bit in the mach-o header">,
8235ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8245ffd83dbSDimitry Andric    Group<grp_rare>;
8255ffd83dbSDimitry Andricdef setuid_safe : Flag<["-"], "setuid_safe">,
8265ffd83dbSDimitry Andric    HelpText<"Set the MH_SETUID_SAFE bit in the mach-o header">,
8275ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8285ffd83dbSDimitry Andric    Group<grp_rare>;
8295ffd83dbSDimitry Andricdef interposable : Flag<["-"], "interposable">,
8305ffd83dbSDimitry Andric    HelpText<"Indirects access to all to exported symbols in a dylib">,
8315ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8325ffd83dbSDimitry Andric    Group<grp_rare>;
8335ffd83dbSDimitry Andricdef multi_module : Flag<["-"], "multi_module">,
8345ffd83dbSDimitry Andric    Alias<interposable>,
8355ffd83dbSDimitry Andric    HelpText<"Alias for -interposable">,
8365ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8375ffd83dbSDimitry Andric    Group<grp_rare>;
8385ffd83dbSDimitry Andricdef init : Separate<["-"], "init">,
8395ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
8405ffd83dbSDimitry Andric    HelpText<"Run <symbol> as the first initializer in a dylib">,
8415ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8425ffd83dbSDimitry Andric    Group<grp_rare>;
8435ffd83dbSDimitry Andricdef sub_library : Separate<["-"], "sub_library">,
8445ffd83dbSDimitry Andric    MetaVarName<"<name>">,
8455ffd83dbSDimitry Andric    HelpText<"Re-export the dylib as <name>">,
8465ffd83dbSDimitry Andric    Group<grp_rare>;
8475ffd83dbSDimitry Andricdef sub_umbrella : Separate<["-"], "sub_umbrella">,
8485ffd83dbSDimitry Andric    MetaVarName<"<name>">,
8495ffd83dbSDimitry Andric    HelpText<"Re-export the framework as <name>">,
8505ffd83dbSDimitry Andric    Group<grp_rare>;
8515ffd83dbSDimitry Andricdef allowable_client : Separate<["-"], "allowable_client">,
8525ffd83dbSDimitry Andric    MetaVarName<"<name>">,
8535ffd83dbSDimitry Andric    HelpText<"Specify <name> of a dylib or framework that is allowed to link to this dylib">,
8545ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8555ffd83dbSDimitry Andric    Group<grp_rare>;
8565ffd83dbSDimitry Andricdef client_name : Separate<["-"], "client_name">,
8575ffd83dbSDimitry Andric    MetaVarName<"<name>">,
8585ffd83dbSDimitry Andric    HelpText<"Specifies a <name> this client should match with the -allowable_client <name> in a dependent dylib">,
8595ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8605ffd83dbSDimitry Andric    Group<grp_rare>;
8615ffd83dbSDimitry Andricdef umbrella : Separate<["-"], "umbrella">,
862fe6060f1SDimitry Andric    MetaVarName<"<name>">,
863fe6060f1SDimitry Andric    HelpText<"Re-export this dylib through the umbrella framework <name>">,
8645ffd83dbSDimitry Andric    Group<grp_rare>;
8655ffd83dbSDimitry Andricdef headerpad : Separate<["-"], "headerpad">,
8665ffd83dbSDimitry Andric    MetaVarName<"<size>">,
867e8d8bef9SDimitry Andric    HelpText<"Allocate hex <size> extra space for future expansion of the load commands via install_name_tool (default is 0x20)">,
8685ffd83dbSDimitry Andric    Group<grp_rare>;
8695ffd83dbSDimitry Andricdef headerpad_max_install_names : Flag<["-"], "headerpad_max_install_names">,
8705ffd83dbSDimitry Andric    HelpText<"Allocate extra space so all load-command paths can expand to MAXPATHLEN via install_name_tool">,
8715ffd83dbSDimitry Andric    Group<grp_rare>;
8725ffd83dbSDimitry Andricdef bind_at_load : Flag<["-"], "bind_at_load">,
8735ffd83dbSDimitry Andric    HelpText<"Tell dyld to bind all symbols at load time, rather than lazily">,
8745ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8755ffd83dbSDimitry Andric    Group<grp_rare>;
8765ffd83dbSDimitry Andricdef force_flat_namespace : Flag<["-"], "force_flat_namespace">,
8775ffd83dbSDimitry Andric    HelpText<"Tell dyld to use a flat namespace on this executable and all its dependent dylibs & bundles">,
8785ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8795ffd83dbSDimitry Andric    Group<grp_rare>;
8805ffd83dbSDimitry Andricdef segalign : Separate<["-"], "segalign">,
8815ffd83dbSDimitry Andric    MetaVarName<"<boundary>">,
8825ffd83dbSDimitry Andric    HelpText<"Align all segments to hex power-of-2 <boundary>">,
8835ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8845ffd83dbSDimitry Andric    Group<grp_rare>;
8855ffd83dbSDimitry Andricdef sectalign : MultiArg<["-"], "sectalign", 3>,
8865ffd83dbSDimitry Andric    MetaVarName<"<segment> <section> <boundary>">,
8875ffd83dbSDimitry Andric    HelpText<"Align <section> within <segment> to hex power-of-2 <boundary>">,
8885ffd83dbSDimitry Andric    Group<grp_rare>;
8895ffd83dbSDimitry Andricdef stack_addr : Separate<["-"], "stack_addr">,
8905ffd83dbSDimitry Andric    MetaVarName<"<address>">,
8915ffd83dbSDimitry Andric    HelpText<"Initialize stack pointer to hex <address> rounded to a page boundary">,
8925ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
8935ffd83dbSDimitry Andric    Group<grp_rare>;
8945ffd83dbSDimitry Andricdef segprot : MultiArg<["-"], "segprot", 3>,
8955ffd83dbSDimitry Andric    MetaVarName<"<segment> <max> <init>">,
896fe6060f1SDimitry Andric    HelpText<"Specifies the <max> and <init> virtual memory protection of <segment> as r/w/x/-seg_addr_table path">,
8975ffd83dbSDimitry Andric    Group<grp_rare>;
8985ffd83dbSDimitry Andricdef segs_read_write_addr : Separate<["-"], "segs_read_write_addr">,
8995ffd83dbSDimitry Andric    MetaVarName<"<address>">,
9005ffd83dbSDimitry Andric    HelpText<"This option is obsolete">,
9015ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9025ffd83dbSDimitry Andric    Group<grp_rare>;
9035ffd83dbSDimitry Andricdef segs_read_only_addr : Separate<["-"], "segs_read_only_addr">,
9045ffd83dbSDimitry Andric    MetaVarName<"<address>">,
9055ffd83dbSDimitry Andric    HelpText<"This option is obsolete">,
9065ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9075ffd83dbSDimitry Andric    Group<grp_rare>;
9085ffd83dbSDimitry Andricdef segaddr : MultiArg<["-"], "segaddr", 2>,
9095ffd83dbSDimitry Andric    MetaVarName<"<segment> <address>">,
9105ffd83dbSDimitry Andric    HelpText<"Specify the starting hex <address> at a 4KiB page boundary for <segment>">,
9115ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9125ffd83dbSDimitry Andric    Group<grp_rare>;
9135ffd83dbSDimitry Andricdef seg_page_size : MultiArg<["-"], "seg_page_size", 2>,
9145ffd83dbSDimitry Andric    MetaVarName<"<segment> <size>">,
9155ffd83dbSDimitry Andric    HelpText<"Specifies the page <size> for <segment>. Segment size will be a multiple of its page size">,
9165ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9175ffd83dbSDimitry Andric    Group<grp_rare>;
9185ffd83dbSDimitry Andricdef dylib_file : Separate<["-"], "dylib_file">,
9195ffd83dbSDimitry Andric    MetaVarName<"<install_path:current_path>">,
9205ffd83dbSDimitry Andric    HelpText<"Specify <current_path> as different from where a dylib normally resides at <install_path>">,
9215ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9225ffd83dbSDimitry Andric    Group<grp_rare>;
9235ffd83dbSDimitry Andricdef weak_reference_mismatches : Separate<["-"], "weak_reference_mismatches">,
9245ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
9255ffd83dbSDimitry Andric    HelpText<"Resolve symbol imports of conflicting weakness according to <treatment> as weak, non-weak, or error (default is non-weak)">,
9265ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9275ffd83dbSDimitry Andric    Group<grp_rare>;
9285ffd83dbSDimitry Andricdef read_only_relocs : Separate<["-"], "read_only_relocs">,
9295ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
9305ffd83dbSDimitry Andric    HelpText<"Handle relocations that modify read-only pages according to <treatment> of warning, error, or suppress (i.e., allow)">,
9315ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9325ffd83dbSDimitry Andric    Group<grp_rare>;
9335ffd83dbSDimitry Andricdef force_cpusubtype_ALL : Flag<["-"], "force_cpusubtype_ALL">,
9345ffd83dbSDimitry Andric    HelpText<"Mark binary as runnable on any PowerPC, ignoring any PowerPC cpu requirements encoded in the object files">,
9355ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9365ffd83dbSDimitry Andric    Group<grp_rare>;
9375ffd83dbSDimitry Andricdef no_arch_warnings : Flag<["-"], "no_arch_warnings">,
9385ffd83dbSDimitry Andric    HelpText<"Suppresses warnings about inputs whose architecture does not match the -arch option">,
9395ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9405ffd83dbSDimitry Andric    Group<grp_rare>;
9415ffd83dbSDimitry Andricdef arch_errors_fatal : Flag<["-"], "arch_errors_fatal">,
9425ffd83dbSDimitry Andric    HelpText<"Escalate to errors any warnings about inputs whose architecture does not match the -arch option">,
9435ffd83dbSDimitry Andric    Group<grp_rare>;
9445ffd83dbSDimitry Andricdef e : Separate<["-"], "e">,
9455ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
9465ffd83dbSDimitry Andric    HelpText<"Make <symbol> the entry point of an executable (default is \"start\" from crt1.o)">,
9475ffd83dbSDimitry Andric    Group<grp_rare>;
9485ffd83dbSDimitry Andricdef w : Flag<["-"], "w">,
9495ffd83dbSDimitry Andric    HelpText<"Suppress all warnings">,
9505ffd83dbSDimitry Andric    Group<grp_rare>;
9515ffd83dbSDimitry Andricdef final_output : Separate<["-"], "final_output">,
9525ffd83dbSDimitry Andric    MetaVarName<"<name>">,
953fe6060f1SDimitry Andric    HelpText<"Specify dylib install name if -install_name is not used; used by compiler driver for multiple -arch arguments">,
9545ffd83dbSDimitry Andric    Group<grp_rare>;
9555ffd83dbSDimitry Andricdef arch_multiple : Flag<["-"], "arch_multiple">,
9565ffd83dbSDimitry Andric    HelpText<"Augment error and warning messages with the architecture name">,
9575ffd83dbSDimitry Andric    Group<grp_rare>;
9585ffd83dbSDimitry Andricdef dot : Separate<["-"], "dot">,
9595ffd83dbSDimitry Andric    MetaVarName<"<path>">,
9605ffd83dbSDimitry Andric    HelpText<"Write a graph of symbol dependencies to <path> as a .dot file viewable with GraphViz">,
9615ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9625ffd83dbSDimitry Andric    Group<grp_rare>;
9635ffd83dbSDimitry Andricdef keep_relocs : Flag<["-"], "keep_relocs">,
9645ffd83dbSDimitry Andric    HelpText<"Retain section-based relocation records in the output, which are ignored at runtime by dyld">,
9655ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9665ffd83dbSDimitry Andric    Group<grp_rare>;
9675ffd83dbSDimitry Andricdef warn_stabs : Flag<["-"], "warn_stabs">,
9685ffd83dbSDimitry Andric    HelpText<"Warn when bad stab symbols inside a BINCL/EINCL prevent optimization">,
9695ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9705ffd83dbSDimitry Andric    Group<grp_rare>;
9715ffd83dbSDimitry Andricdef warn_commons : Flag<["-"], "warn_commons">,
9725ffd83dbSDimitry Andric    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">,
9735ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9745ffd83dbSDimitry Andric    Group<grp_rare>;
9755ffd83dbSDimitry Andricdef read_only_stubs : Flag<["-"], "read_only_stubs">,
9765ffd83dbSDimitry Andric    HelpText<"On i386, make the __IMPORT segment of a final linked image read-only">,
9775ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9785ffd83dbSDimitry Andric    Group<grp_rare>;
9795ffd83dbSDimitry Andricdef interposable_list : Separate<["-"], "interposable_list">,
9805ffd83dbSDimitry Andric    MetaVarName<"<path>">,
9815ffd83dbSDimitry Andric    HelpText<"Access global symbols listed in <path> indirectly">,
9825ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
9835ffd83dbSDimitry Andric    Group<grp_rare>;
9845ffd83dbSDimitry Andricdef no_function_starts : Flag<["-"], "no_function_starts">,
985fe6060f1SDimitry Andric    HelpText<"Do not create table of function start addresses">,
9865ffd83dbSDimitry Andric    Group<grp_rare>;
9875ffd83dbSDimitry Andricdef object_path_lto : Separate<["-"], "object_path_lto">,
9885ffd83dbSDimitry Andric    MetaVarName<"<path>">,
9895ffd83dbSDimitry Andric    HelpText<"Retain any temporary mach-o file in <path> that would otherwise be deleted during LTO">,
9905ffd83dbSDimitry Andric    Group<grp_rare>;
9915ffd83dbSDimitry Andricdef cache_path_lto : Separate<["-"], "cache_path_lto">,
9925ffd83dbSDimitry Andric    MetaVarName<"<path>">,
9935ffd83dbSDimitry Andric    HelpText<"Use <path> as a directory for the incremental LTO cache">,
9945ffd83dbSDimitry Andric    Group<grp_rare>;
9955ffd83dbSDimitry Andricdef prune_interval_lto : Separate<["-"], "prune_interval_lto">,
9965ffd83dbSDimitry Andric    MetaVarName<"<seconds>">,
9975ffd83dbSDimitry Andric    HelpText<"Prune the incremental LTO cache after <seconds> (-1 disables pruning)">,
9985ffd83dbSDimitry Andric    Group<grp_rare>;
9995ffd83dbSDimitry Andricdef prune_after_lto : Separate<["-"], "prune_after_lto">,
10005ffd83dbSDimitry Andric    MetaVarName<"<seconds>">,
10015ffd83dbSDimitry Andric    HelpText<"Remove LTO cache entries after <seconds>">,
10025ffd83dbSDimitry Andric    Group<grp_rare>;
10035ffd83dbSDimitry Andricdef max_relative_cache_size_lto : Separate<["-"], "max_relative_cache_size_lto">,
10045ffd83dbSDimitry Andric    MetaVarName<"<percent>">,
10055ffd83dbSDimitry Andric    HelpText<"Limit the incremental LTO cache growth to <percent> of free disk, space">,
10065ffd83dbSDimitry Andric    Group<grp_rare>;
10075ffd83dbSDimitry Andricdef page_align_data_atoms : Flag<["-"], "page_align_data_atoms">,
10085ffd83dbSDimitry Andric    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">,
10095ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10105ffd83dbSDimitry Andric    Group<grp_rare>;
10115ffd83dbSDimitry Andricdef not_for_dyld_shared_cache : Flag<["-"], "not_for_dyld_shared_cache">,
10125ffd83dbSDimitry Andric    HelpText<"Prevent system dylibs from being placed into the dylib shared cache">,
10135ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10145ffd83dbSDimitry Andric    Group<grp_rare>;
1015e8d8bef9SDimitry Andricdef mllvm : Separate<["-"], "mllvm">,
1016e8d8bef9SDimitry Andric    HelpText<"Options to pass to LLVM">,
1017e8d8bef9SDimitry Andric    Group<grp_rare>;
1018e8d8bef9SDimitry Andricdef mcpu : Separate<["-"], "mcpu">,
1019e8d8bef9SDimitry Andric    HelpText<"Processor family target for LTO code generation">,
1020e8d8bef9SDimitry Andric    Group<grp_rare>;
1021349cc55cSDimitry Andricdef no_dtrace_dof : Flag<["-"], "no_dtrace_dof">,
1022349cc55cSDimitry Andric    HelpText<"Disable dtrace-dof processing (default).">,
1023349cc55cSDimitry Andric    Group<grp_rare>;
1024bdd1243dSDimitry Andricdef objc_stubs_fast : Flag<["-"], "objc_stubs_fast">,
1025bdd1243dSDimitry Andric    HelpText<"Produce larger stubs for Objective-C method calls with fewer jumps (default).">,
1026bdd1243dSDimitry Andric    Group<grp_rare>;
1027bdd1243dSDimitry Andricdef objc_stubs_small : Flag<["-"], "objc_stubs_small">,
1028bdd1243dSDimitry Andric    HelpText<"Produce smaller stubs for Objective-C method calls with more jumps.">,
1029bdd1243dSDimitry Andric    Group<grp_rare>;
1030bdd1243dSDimitry Andricdef dyld_env : Separate<["-"], "dyld_env">,
1031bdd1243dSDimitry Andric    MetaVarName<"<dyld_env_var>">,
1032bdd1243dSDimitry Andric    HelpText<"Specifies a LC_DYLD_ENVIRONMENT variable value pair.">,
1033bdd1243dSDimitry Andric    Group<grp_rare>;
1034bdd1243dSDimitry Andricdef ignore_auto_link : Flag<["-"], "ignore_auto_link">,
1035bdd1243dSDimitry Andric    HelpText<"Ignore LC_LINKER_OPTIONs">,
1036bdd1243dSDimitry Andric    Group<grp_rare>;
10375ffd83dbSDimitry Andric
10385ffd83dbSDimitry Andricdef grp_deprecated : OptionGroup<"deprecated">, HelpText<"DEPRECATED">;
10395ffd83dbSDimitry Andric
10405ffd83dbSDimitry Andricdef lazy_framework : Separate<["-"], "lazy_framework">,
10415ffd83dbSDimitry Andric    MetaVarName<"<name>">,
10425ffd83dbSDimitry Andric    HelpText<"This option is deprecated and is now an alias for -framework.">,
10435ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10445ffd83dbSDimitry Andric    Group<grp_deprecated>;
10455ffd83dbSDimitry Andricdef lazy_library : Separate<["-"], "lazy_library">,
10465ffd83dbSDimitry Andric    MetaVarName<"<path>">,
10475ffd83dbSDimitry Andric    HelpText<"This option is deprecated and is now an alias for regular linking">,
10485ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10495ffd83dbSDimitry Andric    Group<grp_deprecated>;
10505ffd83dbSDimitry Andricdef lazy_l : Joined<["-"], "lazy-l">,
10515ffd83dbSDimitry Andric    MetaVarName<"<name>">,
10525ffd83dbSDimitry Andric    HelpText<"This option is deprecated and is now an alias for -l<path>.">,
10535ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10545ffd83dbSDimitry Andric    Group<grp_deprecated>;
10555ffd83dbSDimitry Andricdef single_module : Flag<["-"], "single_module">,
10565ffd83dbSDimitry Andric    HelpText<"Unnecessary option: this is already the default">,
10575ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10585ffd83dbSDimitry Andric    Group<grp_deprecated>;
10595ffd83dbSDimitry Andricdef no_dead_strip_inits_and_terms : Flag<["-"], "no_dead_strip_inits_and_terms">,
10605ffd83dbSDimitry Andric    HelpText<"Unnecessary option: initialization and termination are roots of the dead strip graph, so never dead stripped">,
10615ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10625ffd83dbSDimitry Andric    Group<grp_deprecated>;
10635ffd83dbSDimitry Andric
10645ffd83dbSDimitry Andricdef grp_obsolete : OptionGroup<"obsolete">, HelpText<"OBSOLETE">;
10655ffd83dbSDimitry Andric
1066fe6060f1SDimitry Andricdef sectorder : MultiArg<["-"], "sectorder", 3>,
1067fe6060f1SDimitry Andric    MetaVarName<"<segname> <sectname> <orderfile>">,
1068fe6060f1SDimitry Andric    HelpText<"Obsolete. Replaced by more general -order_file option">,
1069fe6060f1SDimitry Andric    Group<grp_obsolete>;
1070fe6060f1SDimitry Andricdef lto_library : Separate<["-"], "lto_library">,
1071fe6060f1SDimitry Andric    MetaVarName<"<path>">,
1072fe6060f1SDimitry Andric    HelpText<"Obsolete. LLD supports LTO directly, without using an external dylib.">,
1073fe6060f1SDimitry Andric    Group<grp_obsolete>;
10745ffd83dbSDimitry Andricdef y : Joined<["-"], "y">,
10755ffd83dbSDimitry Andric    MetaVarName<"<symbol>">,
10765ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
10775ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10785ffd83dbSDimitry Andric    Group<grp_obsolete>;
10795ffd83dbSDimitry Andricdef sectobjectsymbols : MultiArg<["-"], "sectobjectsymbols", 2>,
10805ffd83dbSDimitry Andric    MetaVarName<"<segname> <sectname>">,
10815ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
10825ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10835ffd83dbSDimitry Andric    Group<grp_obsolete>;
10845ffd83dbSDimitry Andricdef nofixprebinding : Flag<["-"], "nofixprebinding">,
10855ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
10865ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10875ffd83dbSDimitry Andric    Group<grp_obsolete>;
10885ffd83dbSDimitry Andricdef noprebind_all_twolevel_modules : Flag<["-"], "noprebind_all_twolevel_modules">,
10895ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
10905ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10915ffd83dbSDimitry Andric    Group<grp_obsolete>;
10925ffd83dbSDimitry Andricdef prebind_all_twolevel_modules : Flag<["-"], "prebind_all_twolevel_modules">,
10935ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
10945ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10955ffd83dbSDimitry Andric    Group<grp_obsolete>;
10965ffd83dbSDimitry Andricdef prebind_allow_overlap : Flag<["-"], "prebind_allow_overlap">,
10975ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
10985ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
10995ffd83dbSDimitry Andric    Group<grp_obsolete>;
11005ffd83dbSDimitry Andricdef noprebind : Flag<["-"], "noprebind">,
11015ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11025ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11035ffd83dbSDimitry Andric    Group<grp_obsolete>;
11045ffd83dbSDimitry Andricdef sect_diff_relocs : Separate<["-"], "sect_diff_relocs">,
11055ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
11065ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11075ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11085ffd83dbSDimitry Andric    Group<grp_obsolete>;
11095ffd83dbSDimitry Andricdef A : Separate<["-"], "A">,
11105ffd83dbSDimitry Andric    MetaVarName<"<basefile>">,
11115ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11125ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11135ffd83dbSDimitry Andric    Group<grp_obsolete>;
11145ffd83dbSDimitry Andricdef b : Flag<["-"], "b">,
11155ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11165ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11175ffd83dbSDimitry Andric    Group<grp_obsolete>;
11185ffd83dbSDimitry Andricdef Sn : Flag<["-"], "Sn">,
11195ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11205ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11215ffd83dbSDimitry Andric    Group<grp_obsolete>;
11225ffd83dbSDimitry Andricdef Si : Flag<["-"], "Si">,
11235ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11245ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11255ffd83dbSDimitry Andric    Group<grp_obsolete>;
11265ffd83dbSDimitry Andricdef Sp : Flag<["-"], "Sp">,
11275ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11285ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11295ffd83dbSDimitry Andric    Group<grp_obsolete>;
11305ffd83dbSDimitry Andricdef X : Flag<["-"], "X">,
11315ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11325ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11335ffd83dbSDimitry Andric    Group<grp_obsolete>;
11345ffd83dbSDimitry Andricdef s : Flag<["-"], "s">,
11355ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11365ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11375ffd83dbSDimitry Andric    Group<grp_obsolete>;
11385ffd83dbSDimitry Andricdef m : Flag<["-"], "m">,
11395ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11405ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11415ffd83dbSDimitry Andric    Group<grp_obsolete>;
11425ffd83dbSDimitry Andricdef Y : Separate<["-"], "Y">,
11435ffd83dbSDimitry Andric    MetaVarName<"<number>">,
11445ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11455ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11465ffd83dbSDimitry Andric    Group<grp_obsolete>;
11475ffd83dbSDimitry Andricdef nomultidefs : Flag<["-"], "nomultidefs">,
11485ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11495ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11505ffd83dbSDimitry Andric    Group<grp_obsolete>;
11515ffd83dbSDimitry Andricdef multiply_defined_unused : Separate<["-"], "multiply_defined_unused">,
11525ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
11535ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11545ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11555ffd83dbSDimitry Andric    Group<grp_obsolete>;
11565ffd83dbSDimitry Andricdef multiply_defined : Separate<["-"], "multiply_defined">,
11575ffd83dbSDimitry Andric    MetaVarName<"<treatment>">,
11585ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11595ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11605ffd83dbSDimitry Andric    Group<grp_obsolete>;
11615ffd83dbSDimitry Andricdef private_bundle : Flag<["-"], "private_bundle">,
11625ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11635ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11645ffd83dbSDimitry Andric    Group<grp_obsolete>;
11655ffd83dbSDimitry Andricdef seg_addr_table_filename : Separate<["-"], "seg_addr_table_filename">,
11665ffd83dbSDimitry Andric    MetaVarName<"<path>">,
11675ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11685ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11695ffd83dbSDimitry Andric    Group<grp_obsolete>;
11705ffd83dbSDimitry Andricdef sectorder_detail : Flag<["-"], "sectorder_detail">,
11715ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11725ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11735ffd83dbSDimitry Andric    Group<grp_obsolete>;
11745ffd83dbSDimitry Andricdef no_compact_linkedit : Flag<["-"], "no_compact_linkedit">,
11755ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11765ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11775ffd83dbSDimitry Andric    Group<grp_obsolete>;
11785ffd83dbSDimitry Andricdef dependent_dr_info : Flag<["-"], "dependent_dr_info">,
11795ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11805ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11815ffd83dbSDimitry Andric    Group<grp_obsolete>;
11825ffd83dbSDimitry Andricdef no_dependent_dr_info : Flag<["-"], "no_dependent_dr_info">,
11835ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11845ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11855ffd83dbSDimitry Andric    Group<grp_obsolete>;
11865ffd83dbSDimitry Andricdef seglinkedit : Flag<["-"], "seglinkedit">,
11875ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11885ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11895ffd83dbSDimitry Andric    Group<grp_obsolete>;
11905ffd83dbSDimitry Andricdef noseglinkedit : Flag<["-"], "noseglinkedit">,
11915ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11925ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11935ffd83dbSDimitry Andric    Group<grp_obsolete>;
11945ffd83dbSDimitry Andricdef fvmlib : Flag<["-"], "fvmlib">,
11955ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
11965ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
11975ffd83dbSDimitry Andric    Group<grp_obsolete>;
11985ffd83dbSDimitry Andricdef run_init_lazily : Flag<["-"], "run_init_lazily">,
11995ffd83dbSDimitry Andric    HelpText<"This option is obsolete in ld64">,
12005ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12015ffd83dbSDimitry Andric    Group<grp_obsolete>;
1202fe6060f1SDimitry Andricdef prebind : Flag<["-"], "prebind">,
1203fe6060f1SDimitry Andric    HelpText<"This option is obsolete in ld64">,
1204fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
1205fe6060f1SDimitry Andric    Group<grp_obsolete>;
1206fe6060f1SDimitry Andricdef twolevel_namespace_hints : Flag<["-"], "twolevel_namespace_hints">,
1207fe6060f1SDimitry Andric    HelpText<"This option is obsolete in ld64">,
1208fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
1209fe6060f1SDimitry Andric    Group<grp_obsolete>;
1210fe6060f1SDimitry Andricdef slow_stubs : Flag<["-"], "slow_stubs">,
1211fe6060f1SDimitry Andric    HelpText<"This option is obsolete in ld64">,
1212fe6060f1SDimitry Andric    Flags<[HelpHidden]>,
1213fe6060f1SDimitry Andric    Group<grp_obsolete>;
12145ffd83dbSDimitry Andric
121506c3fb27SDimitry Andricdef bitcode_bundle : Flag<["-"], "bitcode_bundle">,
121606c3fb27SDimitry Andric    HelpText<"Obsolete since the App Store no longer supports binaries with embedded bitcode">,
121706c3fb27SDimitry Andric    Flags<[HelpHidden]>,
121806c3fb27SDimitry Andric    Group<grp_obsolete>;
121906c3fb27SDimitry Andricdef bitcode_hide_symbols : Flag<["-"], "bitcode_hide_symbols">,
122006c3fb27SDimitry Andric    HelpText<"Obsolete since the App Store no longer supports binaries with embedded bitcode">,
122106c3fb27SDimitry Andric    Flags<[HelpHidden]>,
122206c3fb27SDimitry Andric    Group<grp_obsolete>;
122306c3fb27SDimitry Andricdef bitcode_symbol_map : Separate<["-"], "bitcode_symbol_map">,
122406c3fb27SDimitry Andric    MetaVarName<"<path>">,
122506c3fb27SDimitry Andric    HelpText<"Obsolete since the App Store no longer supports binaries with embedded bitcode">,
122606c3fb27SDimitry Andric    Flags<[HelpHidden]>,
122706c3fb27SDimitry Andric    Group<grp_obsolete>;
122806c3fb27SDimitry Andricdef bitcode_process_mode : Separate<["-"], "bitcode_process_mode">,
122906c3fb27SDimitry Andric    HelpText<"Obsolete since the App Store no longer supports binaries with embedded bitcode">,
123006c3fb27SDimitry Andric    Flags<[HelpHidden]>,
123106c3fb27SDimitry Andric    Group<grp_obsolete>;
123206c3fb27SDimitry Andricdef bitcode_verify : Flag<["-"], "bitcode_verify">,
123306c3fb27SDimitry Andric    HelpText<"Obsolete since the App Store no longer supports binaries with embedded bitcode">,
123406c3fb27SDimitry Andric    Flags<[HelpHidden]>,
123506c3fb27SDimitry Andric    Group<grp_obsolete>;
123606c3fb27SDimitry Andric
12375ffd83dbSDimitry Andricdef grp_undocumented : OptionGroup<"undocumented">, HelpText<"UNDOCUMENTED">;
12385ffd83dbSDimitry Andric
12395ffd83dbSDimitry Andricdef add_linker_option : Flag<["-"], "add_linker_option">,
12405ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12415ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12425ffd83dbSDimitry Andric    Group<grp_undocumented>;
12435ffd83dbSDimitry Andricdef add_source_version : Flag<["-"], "add_source_version">,
12445ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12455ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12465ffd83dbSDimitry Andric    Group<grp_undocumented>;
12475ffd83dbSDimitry Andricdef no_source_version : Flag<["-"], "no_source_version">,
12485ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12495ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12505ffd83dbSDimitry Andric    Group<grp_undocumented>;
12515ffd83dbSDimitry Andricdef add_split_seg_info : Flag<["-"], "add_split_seg_info">,
12525ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12535ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12545ffd83dbSDimitry Andric    Group<grp_undocumented>;
12555ffd83dbSDimitry Andricdef allow_dead_duplicates : Flag<["-"], "allow_dead_duplicates">,
12565ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12575ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12585ffd83dbSDimitry Andric    Group<grp_undocumented>;
12595ffd83dbSDimitry Andricdef allow_simulator_linking_to_macosx_dylibs : Flag<["-"], "allow_simulator_linking_to_macosx_dylibs">,
12605ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12615ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12625ffd83dbSDimitry Andric    Group<grp_undocumented>;
12635ffd83dbSDimitry Andricdef classic_linker : Flag<["-"], "classic_linker">,
12645ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12655ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12665ffd83dbSDimitry Andric    Group<grp_undocumented>;
12675ffd83dbSDimitry Andricdef data_in_code_info : Flag<["-"], "data_in_code_info">,
1268fe6060f1SDimitry Andric    HelpText<"Emit data-in-code information (default)">,
12695ffd83dbSDimitry Andric    Group<grp_undocumented>;
12705ffd83dbSDimitry Andricdef no_data_in_code_info : Flag<["-"], "no_data_in_code_info">,
1271fe6060f1SDimitry Andric    HelpText<"Do not emit data-in-code information">,
12725ffd83dbSDimitry Andric    Group<grp_undocumented>;
12735ffd83dbSDimitry Andricdef debug_snapshot : Flag<["-"], "debug_snapshot">,
12745ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12755ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12765ffd83dbSDimitry Andric    Group<grp_undocumented>;
12775ffd83dbSDimitry Andricdef demangle : Flag<["-"], "demangle">,
1278e8d8bef9SDimitry Andric    HelpText<"Demangle symbol names in diagnostics">;
12795ffd83dbSDimitry Andricdef encryptable : Flag<["-"], "encryptable">,
1280fe6060f1SDimitry Andric    HelpText<"Generate the LC_ENCRYPTION_INFO load command">,
1281fe6060f1SDimitry Andric    Group<grp_undocumented>;
1282fe6060f1SDimitry Andricdef no_encryption : Flag<["-"], "no_encryption">,
1283fe6060f1SDimitry Andric    HelpText<"Do not generate the LC_ENCRYPTION_INFO load command">,
12845ffd83dbSDimitry Andric    Group<grp_undocumented>;
12855ffd83dbSDimitry Andricdef executable_path : Flag<["-"], "executable_path">,
12865ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12875ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12885ffd83dbSDimitry Andric    Group<grp_undocumented>;
12895ffd83dbSDimitry Andricdef fixup_chains : Flag<["-"], "fixup_chains">,
1290bdd1243dSDimitry Andric    HelpText<"Emit chained fixups">,
1291bdd1243dSDimitry Andric    Group<grp_undocumented>;
1292bdd1243dSDimitry Andricdef no_fixup_chains : Flag<["-"], "no_fixup_chains">,
1293bdd1243dSDimitry Andric    HelpText<"Emit fixup information as classic dyld opcodes">,
12945ffd83dbSDimitry Andric    Group<grp_undocumented>;
12955ffd83dbSDimitry Andricdef fixup_chains_section : Flag<["-"], "fixup_chains_section">,
12965ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
12975ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
12985ffd83dbSDimitry Andric    Group<grp_undocumented>;
1299*0fca6ea1SDimitry Andricdef objc_relative_method_lists : Flag<["-"], "objc_relative_method_lists">,
1300*0fca6ea1SDimitry Andric    HelpText<"Emit relative method lists (more compact representation)">,
1301*0fca6ea1SDimitry Andric    Group<grp_undocumented>;
1302*0fca6ea1SDimitry Andricdef no_objc_relative_method_lists : Flag<["-"], "no_objc_relative_method_lists">,
1303*0fca6ea1SDimitry Andric    HelpText<"Don't emit relative method lists (use traditional representation)">,
1304*0fca6ea1SDimitry Andric    Group<grp_undocumented>;
13055ffd83dbSDimitry Andricdef flto_codegen_only : Flag<["-"], "flto-codegen-only">,
13065ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13075ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13085ffd83dbSDimitry Andric    Group<grp_undocumented>;
13095ffd83dbSDimitry Andricdef force_symbol_not_weak : Flag<["-"], "force_symbol_not_weak">,
13105ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13115ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13125ffd83dbSDimitry Andric    Group<grp_undocumented>;
13135ffd83dbSDimitry Andricdef force_symbols_coalesce_list : Flag<["-"], "force_symbols_coalesce_list">,
13145ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13155ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13165ffd83dbSDimitry Andric    Group<grp_undocumented>;
1317bdd1243dSDimitry Andricdef force_symbols_not_weak_list : Separate<["-"], "force_symbols_not_weak_list">,
13185ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13195ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13205ffd83dbSDimitry Andric    Group<grp_undocumented>;
1321bdd1243dSDimitry Andricdef force_symbols_weak_list : Separate<["-"], "force_symbols_weak_list">,
13225ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13235ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13245ffd83dbSDimitry Andric    Group<grp_undocumented>;
13255ffd83dbSDimitry Andricdef force_symbol_weak : Flag<["-"], "force_symbol_weak">,
13265ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13275ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13285ffd83dbSDimitry Andric    Group<grp_undocumented>;
13295ffd83dbSDimitry Andricdef function_starts : Flag<["-"], "function_starts">,
1330fe6060f1SDimitry Andric    HelpText<"Create table of function start addresses (default)">,
13315ffd83dbSDimitry Andric    Group<grp_undocumented>;
13325ffd83dbSDimitry Andricdef i : Flag<["-"], "i">,
13335ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13345ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13355ffd83dbSDimitry Andric    Group<grp_undocumented>;
13365ffd83dbSDimitry Andricdef ignore_optimization_hints : Flag<["-"], "ignore_optimization_hints">,
133781ad6265SDimitry Andric    HelpText<"Ignore Linker Optimization Hints">,
13385ffd83dbSDimitry Andric    Group<grp_undocumented>;
13395ffd83dbSDimitry Andricdef init_offsets : Flag<["-"], "init_offsets">,
1340bdd1243dSDimitry Andric    HelpText<"Store __TEXT segment offsets of static initializers">,
13415ffd83dbSDimitry Andric    Group<grp_undocumented>;
13425ffd83dbSDimitry Andricdef keep_dwarf_unwind : Flag<["-"], "keep_dwarf_unwind">,
13435ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13445ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13455ffd83dbSDimitry Andric    Group<grp_undocumented>;
13465ffd83dbSDimitry Andricdef no_keep_dwarf_unwind : Flag<["-"], "no_keep_dwarf_unwind">,
13475ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13485ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13495ffd83dbSDimitry Andric    Group<grp_undocumented>;
13505ffd83dbSDimitry Andricdef kext : Flag<["-"], "kext">,
13515ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13525ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13535ffd83dbSDimitry Andric    Group<grp_undocumented>;
13545ffd83dbSDimitry Andricdef kext_objects_dir : Flag<["-"], "kext_objects_dir">,
13555ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13565ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13575ffd83dbSDimitry Andric    Group<grp_undocumented>;
13585ffd83dbSDimitry Andricdef no_kext_objects : Flag<["-"], "no_kext_objects">,
13595ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13605ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13615ffd83dbSDimitry Andric    Group<grp_undocumented>;
13625ffd83dbSDimitry Andricdef kexts_use_stubs : Flag<["-"], "kexts_use_stubs">,
13635ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13645ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13655ffd83dbSDimitry Andric    Group<grp_undocumented>;
13665ffd83dbSDimitry Andricdef no_compact_unwind : Flag<["-"], "no_compact_unwind">,
13675ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13685ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13695ffd83dbSDimitry Andric    Group<grp_undocumented>;
13705ffd83dbSDimitry Andricdef no_new_main : Flag<["-"], "no_new_main">,
13715ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13725ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13735ffd83dbSDimitry Andric    Group<grp_undocumented>;
13745ffd83dbSDimitry Andricdef pause : Flag<["-"], "pause">,
13755ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13765ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13775ffd83dbSDimitry Andric    Group<grp_undocumented>;
13785ffd83dbSDimitry Andricdef random_uuid : Flag<["-"], "random_uuid">,
13795ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13805ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13815ffd83dbSDimitry Andric    Group<grp_undocumented>;
13825ffd83dbSDimitry Andricdef simulator_support : Flag<["-"], "simulator_support">,
13835ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13845ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13855ffd83dbSDimitry Andric    Group<grp_undocumented>;
13865ffd83dbSDimitry Andricdef snapshot_dir : Flag<["-"], "snapshot_dir">,
13875ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13885ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13895ffd83dbSDimitry Andric    Group<grp_undocumented>;
13905ffd83dbSDimitry Andricdef source_version : Flag<["-"], "source_version">,
13915ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13925ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13935ffd83dbSDimitry Andric    Group<grp_undocumented>;
13945ffd83dbSDimitry Andricdef threaded_starts_section : Flag<["-"], "threaded_starts_section">,
13955ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
13965ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
13975ffd83dbSDimitry Andric    Group<grp_undocumented>;
13985ffd83dbSDimitry Andricdef verbose_optimization_hints : Flag<["-"], "verbose_optimization_hints">,
13995ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
14005ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
14015ffd83dbSDimitry Andric    Group<grp_undocumented>;
14025ffd83dbSDimitry Andricdef version_load_command : Flag<["-"], "version_load_command">,
14035ffd83dbSDimitry Andric    HelpText<"This option is undocumented in ld64">,
14045ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
14055ffd83dbSDimitry Andric    Group<grp_undocumented>;
14065ffd83dbSDimitry Andric
14075ffd83dbSDimitry Andricdef grp_ignored : OptionGroup<"ignored">, HelpText<"IGNORED">;
14085ffd83dbSDimitry Andric
14095ffd83dbSDimitry Andricdef M : Flag<["-"], "M">,
14105ffd83dbSDimitry Andric    HelpText<"This option is ignored in ld64">,
14115ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
14125ffd83dbSDimitry Andric    Group<grp_ignored>;
14135ffd83dbSDimitry Andricdef new_linker : Flag<["-"], "new_linker">,
14145ffd83dbSDimitry Andric    HelpText<"This option is ignored in ld64">,
14155ffd83dbSDimitry Andric    Flags<[HelpHidden]>,
14165ffd83dbSDimitry Andric    Group<grp_ignored>;
1417349cc55cSDimitry Andric
1418349cc55cSDimitry Andricdef grp_ignored_silently : OptionGroup<"ignored_silently">, HelpText<"IGNORED SILENTLY">;
1419349cc55cSDimitry Andric
1420349cc55cSDimitry Andricdef objc_abi_version : Separate<["-"], "objc_abi_version">,
1421349cc55cSDimitry Andric    HelpText<"This option only applies to i386 in ld64">,
1422349cc55cSDimitry Andric    Flags<[HelpHidden]>,
1423349cc55cSDimitry Andric    Group<grp_ignored_silently>;
142406c3fb27SDimitry Andricdef debug_variant : Flag<["-"], "debug_variant">,
142506c3fb27SDimitry Andric    HelpText<"Do not warn about issues that are only problems for binaries shipping to customers.">,
142606c3fb27SDimitry Andric    Flags<[HelpHidden]>,
142706c3fb27SDimitry Andric    Group<grp_ignored_silently>;
1428*0fca6ea1SDimitry Andric
1429*0fca6ea1SDimitry Andric// NOTE: This flag should be respected if -warn_duplicate_libraries is ever implemented.
1430*0fca6ea1SDimitry Andricdef no_warn_duplicate_libraries : Flag<["-"], "no_warn_duplicate_libraries">,
1431*0fca6ea1SDimitry Andric    HelpText<"Do not warn if the input contains duplicate library options.">,
1432*0fca6ea1SDimitry Andric    Flags<[HelpHidden]>,
1433*0fca6ea1SDimitry Andric    Group<grp_ignored_silently>;
1434