1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Option Parsing Definitions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9/////////
10// Prefixes
11
12#ifdef PREFIX
13#define COMMA ,
14PREFIX(prefix_0, {llvm::StringLiteral("")})
15PREFIX(prefix_1, {llvm::StringLiteral("-") COMMA llvm::StringLiteral("")})
16PREFIX(prefix_3, {llvm::StringLiteral("-") COMMA llvm::StringLiteral("--") COMMA llvm::StringLiteral("")})
17PREFIX(prefix_2, {llvm::StringLiteral("--") COMMA llvm::StringLiteral("")})
18#undef COMMA
19#endif // PREFIX
20
21/////////
22// Prefix Union
23
24#ifdef PREFIX_UNION
25#define COMMA ,
26PREFIX_UNION({
27llvm::StringLiteral("-") COMMA llvm::StringLiteral("--") COMMA llvm::StringLiteral("")})
28#undef COMMA
29#endif // PREFIX_UNION
30
31/////////
32// ValuesCode
33
34#ifdef OPTTABLE_VALUES_CODE
35#endif
36/////////
37// Groups
38
39#ifdef OPTION
40OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "bundle", grp_bundle, Group, INVALID, INVALID, nullptr, 0, 0, 0,
41 "CREATING A BUNDLE", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
42OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "content", grp_content, Group, INVALID, INVALID, nullptr, 0, 0, 0,
43 "ADDITIONAL CONTENT", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
44OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "deprecated", grp_deprecated, Group, INVALID, INVALID, nullptr, 0, 0, 0,
45 "DEPRECATED", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
46OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "dylib", grp_dylib, Group, INVALID, INVALID, nullptr, 0, 0, 0,
47 "DYNAMIC LIBRARIES (DYLIB)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
48OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "ignored", grp_ignored, Group, INVALID, INVALID, nullptr, 0, 0, 0,
49 "IGNORED", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
50OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "ignored_silently", grp_ignored_silently, Group, INVALID, INVALID, nullptr, 0, 0, 0,
51 "IGNORED SILENTLY", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
52OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "introspect", grp_introspect, Group, INVALID, INVALID, nullptr, 0, 0, 0,
53 "INTROSPECTING THE LINKER", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
54OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "kind", grp_kind, Group, INVALID, INVALID, nullptr, 0, 0, 0,
55 "OUTPUT KIND", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
56OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "libs", grp_libs, Group, INVALID, INVALID, nullptr, 0, 0, 0,
57 "LIBRARIES", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
58OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "kind", grp_lld, Group, INVALID, INVALID, nullptr, 0, 0, 0,
59 "LLD-SPECIFIC", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
60OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "main", grp_main, Group, INVALID, INVALID, nullptr, 0, 0, 0,
61 "MAIN EXECUTABLE", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
62OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "object", grp_object, Group, INVALID, INVALID, nullptr, 0, 0, 0,
63 "CREATING AN OBJECT FILE", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
64OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "obsolete", grp_obsolete, Group, INVALID, INVALID, nullptr, 0, 0, 0,
65 "OBSOLETE", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
66OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "opts", grp_opts, Group, INVALID, INVALID, nullptr, 0, 0, 0,
67 "OPTIMIZATIONS", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
68OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "rare", grp_rare, Group, INVALID, INVALID, nullptr, 0, 0, 0,
69 "RARELY USED", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
70OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "resolve", grp_resolve, Group, INVALID, INVALID, nullptr, 0, 0, 0,
71 "SYMBOL RESOLUTION", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
72OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "symtab", grp_symtab, Group, INVALID, INVALID, nullptr, 0, 0, 0,
73 "SYMBOL TABLE", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
74OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "undocumented", grp_undocumented, Group, INVALID, INVALID, nullptr, 0, 0, 0,
75 "UNDOCUMENTED", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
76OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "version", grp_version, Group, INVALID, INVALID, nullptr, 0, 0, 0,
77 "VERSION TARGETING", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
78
79//////////
80// Options
81
82OPTION(prefix_0, "<input>", INPUT, Input, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
83OPTION(prefix_0, "<unknown>", UNKNOWN, Unknown, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
84OPTION(prefix_1, "-add_ast_path", add_ast_path, Separate, grp_symtab, INVALID, nullptr, 0, DefaultVis, 0,
85 "AST paths will be emitted as STABS", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
86OPTION(prefix_1, "-add_empty_section", add_empty_section, MultiArg, grp_content, INVALID, nullptr, 0, DefaultVis, 2,
87 "Create an empty <section> in <segment>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <section>", nullptr)
88OPTION(prefix_1, "-add_linker_option", add_linker_option, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
89 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
90OPTION(prefix_1, "-add_source_version", add_source_version, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
91 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
92OPTION(prefix_1, "-add_split_seg_info", add_split_seg_info, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
93 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
94OPTION(prefix_1, "-adhoc_codesign", adhoc_codesign, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
95 "Write an ad-hoc code signature to the output file (default for arm64 binaries)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
96OPTION(prefix_1, "-alias_list", alias_list, Separate, grp_resolve, INVALID, nullptr, HelpHidden, DefaultVis, 0,
97 "Create symbol aliases specified in <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
98OPTION(prefix_1, "-alias", alias, MultiArg, grp_resolve, INVALID, nullptr, 0, DefaultVis, 2,
99 "Create a symbol alias with default global visibility", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol_name> <alternate_name>", nullptr)
100OPTION(prefix_1, "-all_load", all_load, Flag, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
101 "Load all members of all static archive libraries", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
102OPTION(prefix_1, "-allow_dead_duplicates", allow_dead_duplicates, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
103 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
104OPTION(prefix_1, "-allow_heap_execute", allow_heap_execute, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
105 "On i386, allow any page to execute code", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
106OPTION(prefix_1, "-allow_simulator_linking_to_macosx_dylibs", allow_simulator_linking_to_macosx_dylibs, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
107 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
108OPTION(prefix_1, "-allow_stack_execute", allow_stack_execute, Flag, grp_main, INVALID, nullptr, HelpHidden, DefaultVis, 0,
109 "Mark stack segment as executable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
110OPTION(prefix_1, "-allow_sub_type_mismatches", allow_sub_type_mismatches, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
111 "Permit mixing objects compiled for different ARM CPU subtypes", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
112OPTION(prefix_1, "-allowable_client", allowable_client, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
113 "Specify <name> of a dylib or framework that is allowed to link to this dylib", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
114OPTION(prefix_1, "-application_extension", application_extension, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
115 "Mark output as safe for use in an application extension, and validate that linked dylibs are safe", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
116OPTION(prefix_1, "-arch_errors_fatal", arch_errors_fatal, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
117 "Escalate to errors any warnings about inputs whose architecture does not match the -arch option", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
118OPTION(prefix_1, "-arch_multiple", arch_multiple, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
119 "Augment error and warning messages with the architecture name", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
120OPTION(prefix_1, "-arch", arch, Separate, grp_kind, INVALID, nullptr, 0, DefaultVis, 0,
121 "The architecture (e.g. ppc, ppc64, i386, x86_64)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<arch_name>", nullptr)
122OPTION(prefix_1, "-A", A, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
123 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<basefile>", nullptr)
124OPTION(prefix_1, "-bind_at_load", bind_at_load, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
125 "Tell dyld to bind all symbols at load time, rather than lazily", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
126OPTION(prefix_1, "-bitcode_bundle", bitcode_bundle, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
127 "Obsolete since the App Store no longer supports binaries with embedded bitcode", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
128OPTION(prefix_1, "-bitcode_hide_symbols", bitcode_hide_symbols, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
129 "Obsolete since the App Store no longer supports binaries with embedded bitcode", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
130OPTION(prefix_1, "-bitcode_process_mode", bitcode_process_mode, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
131 "Obsolete since the App Store no longer supports binaries with embedded bitcode", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
132OPTION(prefix_1, "-bitcode_symbol_map", bitcode_symbol_map, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
133 "Obsolete since the App Store no longer supports binaries with embedded bitcode", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
134OPTION(prefix_1, "-bitcode_verify", bitcode_verify, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
135 "Obsolete since the App Store no longer supports binaries with embedded bitcode", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
136OPTION(prefix_1, "-bridgeos_version_min", bridgeos_version_min, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
137 "Oldest bridgeOS version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
138OPTION(prefix_1, "-bundle_loader", bundle_loader, Separate, grp_bundle, INVALID, nullptr, 0, DefaultVis, 0,
139 "Resolve undefined symbols from <executable>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<executable>", nullptr)
140OPTION(prefix_1, "-bundle", bundle, Flag, grp_kind, INVALID, nullptr, 0, DefaultVis, 0,
141 "Produce a bundle", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
142OPTION(prefix_1, "-b", b, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
143 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
144OPTION(prefix_1, "-cache_path_lto", cache_path_lto, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
145 "Use <path> as a directory for the incremental LTO cache", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
146OPTION(prefix_2, "--call-graph-profile-sort", call_graph_profile_sort, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
147 "Reorder sections with call graph profile (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
148OPTION(prefix_2, "--check-category-conflicts", check_category_conflicts, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
149 "Check for conflicts between category & class methods", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
150OPTION(prefix_1, "-classic_linker", classic_linker, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
151 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
152OPTION(prefix_1, "-client_name", client_name, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
153 "Specifies a <name> this client should match with the -allowable_client <name> in a dependent dylib", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
154OPTION(prefix_2, "--color-diagnostics=", color_diagnostics_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
155 "Use colors in diagnostics (default: auto)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "[auto,always,never]", nullptr)
156OPTION(prefix_2, "--color-diagnostics", color_diagnostics, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
157 "Alias for --color-diagnostics=always", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
158OPTION(prefix_1, "-commons", commons, Separate, grp_resolve, INVALID, nullptr, HelpHidden, DefaultVis, 0,
159 "Resolve tentative definitions in dylibs according to <treatment>: ignore_dylibs, use_dylibs, error (default is ignore_dylibs)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
160OPTION(prefix_1, "-compatibility_version", compatibility_version, Separate, grp_dylib, INVALID, nullptr, 0, DefaultVis, 0,
161 "Compatibility <version> of this library", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
162OPTION(prefix_2, "--cs-profile-generate", cs_profile_generate, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
163 "Perform context sensitive PGO instrumentation", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
164OPTION(prefix_2, "--cs-profile-path=", cs_profile_path, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
165 "Context sensitive profile file path", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
166OPTION(prefix_1, "-current_version", current_version, Separate, grp_dylib, INVALID, nullptr, 0, DefaultVis, 0,
167 "Current <version> of this library", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
168OPTION(prefix_1, "-data_const", data_const, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
169 "Force migration of readonly data into __DATA_CONST segment", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
170OPTION(prefix_1, "-data_in_code_info", data_in_code_info, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
171 "Emit data-in-code information (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
172OPTION(prefix_2, "--dead-strip-duplicates", dead_strip_duplicates, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
173 "Do not error on duplicate symbols that will be dead stripped.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
174OPTION(prefix_1, "-dead_strip_dylibs", dead_strip_dylibs, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
175 "Remove dylibs that are unreachable by the entry point or exported symbols", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
176OPTION(prefix_1, "-dead_strip", dead_strip, Flag, grp_opts, INVALID, nullptr, 0, DefaultVis, 0,
177 "Remove unreachable functions and data", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
178OPTION(prefix_1, "-debug_snapshot", debug_snapshot, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
179 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
180OPTION(prefix_1, "-debug_variant", debug_variant, Flag, grp_ignored_silently, INVALID, nullptr, HelpHidden, DefaultVis, 0,
181 "Do not warn about issues that are only problems for binaries shipping to customers.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
182OPTION(prefix_2, "--deduplicate-strings", deduplicate_strings, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
183 "Enable string deduplication", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
184OPTION(prefix_1, "-demangle", demangle, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
185 "Demangle symbol names in diagnostics", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
186OPTION(prefix_1, "-dependency_info", dependency_info, Separate, grp_introspect, INVALID, nullptr, 0, DefaultVis, 0,
187 "Dump dependency info", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
188OPTION(prefix_1, "-dependent_dr_info", dependent_dr_info, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
189 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
190OPTION(prefix_1, "-dirty_data_list", dirty_data_list, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
191 "Specify data symbols in <path> destined for the __DATA_DIRTY segment", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
192OPTION(prefix_1, "-dot", dot, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
193 "Write a graph of symbol dependencies to <path> as a .dot file viewable with GraphViz", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
194OPTION(prefix_1, "-driverkit_version_min", driverkit_version_min, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
195 "Oldest DriverKit version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
196OPTION(prefix_1, "-dtrace", dtrace, Separate, grp_content, INVALID, nullptr, HelpHidden, DefaultVis, 0,
197 "Enable DTrace static probes according to declarations in <script>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<script>", nullptr)
198OPTION(prefix_1, "-dyld_env", dyld_env, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
199 "Specifies a LC_DYLD_ENVIRONMENT variable value pair.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<dyld_env_var>", nullptr)
200OPTION(prefix_1, "-dylib_compatibility_version", dylib_compatibility_version, Separate, grp_dylib, compatibility_version, nullptr, HelpHidden, DefaultVis, 0,
201 "Alias for -compatibility_version", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
202OPTION(prefix_1, "-dylib_current_version", dylib_current_version, Separate, grp_dylib, current_version, nullptr, HelpHidden, DefaultVis, 0,
203 "Alias for -current_version", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
204OPTION(prefix_1, "-dylib_file", dylib_file, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
205 "Specify <current_path> as different from where a dylib normally resides at <install_path>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<install_path:current_path>", nullptr)
206OPTION(prefix_1, "-dylib_install_name", dylib_install_name, Separate, grp_dylib, install_name, nullptr, 0, DefaultVis, 0,
207 "Alias for -install_name", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
208OPTION(prefix_1, "-dylib", dylib, Flag, grp_kind, INVALID, nullptr, 0, DefaultVis, 0,
209 "Produce a shared library", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
210OPTION(prefix_1, "-dylinker_install_name", dylinker_install_name, Separate, grp_dylib, install_name, nullptr, 0, DefaultVis, 0,
211 "Alias for -install_name", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
212OPTION(prefix_1, "-dylinker", dylinker, Flag, grp_kind, INVALID, nullptr, HelpHidden, DefaultVis, 0,
213 "Produce a dylinker only used when building dyld", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
214OPTION(prefix_1, "-dynamic", dynamic, Flag, grp_kind, INVALID, nullptr, 0, DefaultVis, 0,
215 "Link dynamically (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
216OPTION(prefix_1, "-d", d, Flag, grp_object, INVALID, nullptr, HelpHidden, DefaultVis, 0,
217 "Force tentative into real definitions for common symbols", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
218OPTION(prefix_1, "-encryptable", encryptable, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
219 "Generate the LC_ENCRYPTION_INFO load command", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
220OPTION(prefix_2, "--end-lib", end_lib, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
221 "End a grouping of objects that should be treated as if they were together in an archive", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
222OPTION(prefix_2, "--error-limit=", error_limit_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
223 "Maximum number of errors to print before exiting (default: 20)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
224OPTION(prefix_1, "-executable_path", executable_path, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
225 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
226OPTION(prefix_1, "-execute", execute, Flag, grp_kind, INVALID, nullptr, 0, DefaultVis, 0,
227 "Produce a main executable (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
228OPTION(prefix_1, "-export_dynamic", export_dynamic, Flag, grp_main, INVALID, nullptr, 0, DefaultVis, 0,
229 "Preserve all global symbols during LTO and when dead-stripping executables", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
230OPTION(prefix_1, "-exported_symbols_list", exported_symbols_list, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
231 "Symbols specified in <file> remain global, while others become private externs", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
232OPTION(prefix_1, "-exported_symbols_order", exported_symbols_order, Separate, grp_opts, INVALID, nullptr, HelpHidden, DefaultVis, 0,
233 "Specify frequently-used symbols in <file> to optimize symbol exports", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
234OPTION(prefix_1, "-exported_symbol", exported_symbol, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
235 "<symbol> remains global, while others become private externs", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
236OPTION(prefix_1, "-e", e, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
237 "Make <symbol> the entry point of an executable (default is \"start\" from crt1.o)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
238OPTION(prefix_1, "-fatal_warnings", fatal_warnings, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
239 "Treat warnings as errors", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
240OPTION(prefix_1, "-filelist", filelist, Separate, grp_content, INVALID, nullptr, 0, DefaultVis, 0,
241 "Read names of files to link from <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
242OPTION(prefix_1, "-final_output", final_output, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
243 "Specify dylib install name if -install_name is not used; used by compiler driver for multiple -arch arguments", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
244OPTION(prefix_1, "-fixup_chains_section", fixup_chains_section, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
245 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
246OPTION(prefix_1, "-fixup_chains", fixup_chains, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
247 "Emit chained fixups", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
248OPTION(prefix_1, "-flat_namespace", flat_namespace, Flag, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
249 "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", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
250OPTION(prefix_1, "-flto-codegen-only", flto_codegen_only, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
251 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
252OPTION(prefix_1, "-force_cpusubtype_ALL", force_cpusubtype_ALL, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
253 "Mark binary as runnable on any PowerPC, ignoring any PowerPC cpu requirements encoded in the object files", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
254OPTION(prefix_1, "-force_flat_namespace", force_flat_namespace, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
255 "Tell dyld to use a flat namespace on this executable and all its dependent dylibs & bundles", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
256OPTION(prefix_1, "-force_load_swift_libs", force_load_swift_libs, Flag, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
257 "Apply -force_load to libraries listed in LC_LINKER_OPTIONS whose names start with 'swift'", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
258OPTION(prefix_1, "-force_load", force_load, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
259 "Load all members static archive library at <path>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
260OPTION(prefix_1, "-force_symbol_not_weak", force_symbol_not_weak, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
261 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
262OPTION(prefix_1, "-force_symbol_weak", force_symbol_weak, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
263 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
264OPTION(prefix_1, "-force_symbols_coalesce_list", force_symbols_coalesce_list, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
265 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
266OPTION(prefix_1, "-force_symbols_not_weak_list", force_symbols_not_weak_list, Separate, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
267 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
268OPTION(prefix_1, "-force_symbols_weak_list", force_symbols_weak_list, Separate, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
269 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
270OPTION(prefix_1, "-framework", framework, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
271 "Search for <name>.framework/<name> on the framework search path", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
272OPTION(prefix_1, "-function_starts", function_starts, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
273 "Create table of function start addresses (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
274OPTION(prefix_1, "-fvmlib", fvmlib, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
275 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
276OPTION(prefix_1, "-F", F, JoinedOrSeparate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
277 "Add dir to the framework search path", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<dir>", nullptr)
278OPTION(prefix_1, "-headerpad_max_install_names", headerpad_max_install_names, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
279 "Allocate extra space so all load-command paths can expand to MAXPATHLEN via install_name_tool", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
280OPTION(prefix_1, "-headerpad", headerpad, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
281 "Allocate hex <size> extra space for future expansion of the load commands via install_name_tool (default is 0x20)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<size>", nullptr)
282OPTION(prefix_2, "--help-hidden", help_hidden, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
283 "Display help for hidden options", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
284OPTION(prefix_3, "-help", help, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
285OPTION(prefix_1, "-hidden-l", hidden_l, Joined, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
286 "Like -l<name>, but load all symbols with hidden visibility", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
287OPTION(prefix_2, "--icf=", icf_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
288 "Set level for identical code folding (default: none)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "[none,safe,all]", nullptr)
289OPTION(prefix_2, "--ignore-auto-link-option=", ignore_auto_link_option_eq, Joined, grp_lld, ignore_auto_link_option, nullptr, 0, DefaultVis, 0,
290 "Ignore a single auto-linked library or framework. Useful to ignore invalid options that ld64 ignores", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
291OPTION(prefix_2, "--ignore-auto-link-option", ignore_auto_link_option, Separate, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
292OPTION(prefix_1, "-ignore_auto_link", ignore_auto_link, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
293 "Ignore LC_LINKER_OPTIONs", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
294OPTION(prefix_1, "-ignore_optimization_hints", ignore_optimization_hints, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
295 "Ignore Linker Optimization Hints", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
296OPTION(prefix_1, "-image_base", image_base, Separate, grp_opts, INVALID, nullptr, HelpHidden, DefaultVis, 0,
297 "Preferred hex load address for a dylib or bundle.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<address>", nullptr)
298OPTION(prefix_1, "-init_offsets", init_offsets, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
299 "Store __TEXT segment offsets of static initializers", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
300OPTION(prefix_1, "-init", init, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
301 "Run <symbol> as the first initializer in a dylib", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
302OPTION(prefix_1, "-install_name", install_name, Separate, grp_dylib, INVALID, nullptr, 0, DefaultVis, 0,
303 "Set an internal install path in a dylib", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
304OPTION(prefix_1, "-interposable_list", interposable_list, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
305 "Access global symbols listed in <path> indirectly", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
306OPTION(prefix_1, "-interposable", interposable, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
307 "Indirects access to all to exported symbols in a dylib", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
308OPTION(prefix_1, "-ios_simulator_version_min", ios_simulator_version_min, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
309 "Oldest iOS simulator version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
310OPTION(prefix_1, "-ios_version_min", ios_version_min, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
311 "Oldest iOS version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
312OPTION(prefix_1, "-iosmac_version_min", iosmac_version_min, Separate, grp_version, maccatalyst_version_min, nullptr, HelpHidden, DefaultVis, 0,
313 "Alias for -maccatalyst_version_min", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
314OPTION(prefix_1, "-iphoneos_version_min", iphoneos_version_min, Separate, grp_version, ios_version_min, nullptr, HelpHidden, DefaultVis, 0,
315 "Alias for -ios_version_min", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
316OPTION(prefix_1, "-i", i, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
317 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
318OPTION(prefix_2, "--keep-icf-stabs", keep_icf_stabs, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
319 "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.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
320OPTION(prefix_1, "-keep_dwarf_unwind", keep_dwarf_unwind, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
321 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
322OPTION(prefix_1, "-keep_private_externs", keep_private_externs, Flag, grp_object, INVALID, nullptr, HelpHidden, DefaultVis, 0,
323 "Do not convert private external symbols to static symbols (only valid with -r)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
324OPTION(prefix_1, "-keep_relocs", keep_relocs, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
325 "Retain section-based relocation records in the output, which are ignored at runtime by dyld", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
326OPTION(prefix_1, "-kext_objects_dir", kext_objects_dir, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
327 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
328OPTION(prefix_1, "-kexts_use_stubs", kexts_use_stubs, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
329 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
330OPTION(prefix_1, "-kext", kext, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
331 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
332OPTION(prefix_1, "-lazy-l", lazy_l, Joined, grp_deprecated, INVALID, nullptr, HelpHidden, DefaultVis, 0,
333 "This option is deprecated and is now an alias for -l<path>.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
334OPTION(prefix_1, "-lazy_framework", lazy_framework, Separate, grp_deprecated, INVALID, nullptr, HelpHidden, DefaultVis, 0,
335 "This option is deprecated and is now an alias for -framework.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
336OPTION(prefix_1, "-lazy_library", lazy_library, Separate, grp_deprecated, INVALID, nullptr, HelpHidden, DefaultVis, 0,
337 "This option is deprecated and is now an alias for regular linking", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
338OPTION(prefix_1, "-load_hidden", load_hidden, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
339 "Load all symbols from static library with hidden visibility", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
340OPTION(prefix_2, "--lto-CGO", lto_CGO, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
341 "Set codegen optimization level for LTO (default: 2)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<cgopt-level>", nullptr)
342OPTION(prefix_2, "--lto-debug-pass-manager", lto_debug_pass_manager, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
343 "Debug new pass manager", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
344OPTION(prefix_2, "--lto-O", lto_O, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
345 "Set optimization level for LTO (default: 2)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<opt-level>", nullptr)
346OPTION(prefix_1, "-lto_library", lto_library, Separate, grp_obsolete, INVALID, nullptr, 0, DefaultVis, 0,
347 "Obsolete. LLD supports LTO directly, without using an external dylib.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
348OPTION(prefix_1, "-L", L, JoinedOrSeparate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
349 "Add dir to the library search path", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<dir>", nullptr)
350OPTION(prefix_1, "-l", l, Joined, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
351 "Search for lib<name>.dylib or lib<name>.a on the library search path", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
352OPTION(prefix_1, "-maccatalyst_version_min", maccatalyst_version_min, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
353 "Oldest MacCatalyst version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
354OPTION(prefix_1, "-macos_version_min", macos_version_min, Separate, grp_version, INVALID, nullptr, 0, DefaultVis, 0,
355 "Oldest macOS version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
356OPTION(prefix_1, "-macosx_version_min", macosx_version_min, Separate, grp_version, macos_version_min, nullptr, HelpHidden, DefaultVis, 0,
357 "Alias for -macos_version_min", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
358OPTION(prefix_1, "-map", map, Separate, grp_introspect, INVALID, nullptr, 0, DefaultVis, 0,
359 "Writes all symbols and their addresses to <path>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
360OPTION(prefix_1, "-mark_dead_strippable_dylib", mark_dead_strippable_dylib, Flag, grp_dylib, INVALID, nullptr, 0, DefaultVis, 0,
361 "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", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
362OPTION(prefix_1, "-max_default_common_align", max_default_common_align, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
363 "Reduce maximum alignment for common symbols to a hex power-of-2 <boundary>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<boundary>", nullptr)
364OPTION(prefix_1, "-max_relative_cache_size_lto", max_relative_cache_size_lto, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
365 "Limit the incremental LTO cache growth to <percent> of free disk, space", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<percent>", nullptr)
366OPTION(prefix_1, "-mcpu", mcpu, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
367 "Processor family target for LTO code generation", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
368OPTION(prefix_1, "-merge_zero_fill_sections", merge_zero_fill_sections, Flag, grp_opts, INVALID, nullptr, HelpHidden, DefaultVis, 0,
369 "Merge all zeroed data into the __zerofill section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
370OPTION(prefix_1, "-mllvm", mllvm, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
371 "Options to pass to LLVM", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
372OPTION(prefix_1, "-move_to_ro_segment", move_to_ro_segment, MultiArg, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 2,
373 "Move code symbols listed in <path> to another <segment>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <path>", nullptr)
374OPTION(prefix_1, "-move_to_rw_segment", move_to_rw_segment, MultiArg, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 2,
375 "Move data symbols listed in <path> to another <segment>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <path>", nullptr)
376OPTION(prefix_1, "-multi_module", multi_module, Flag, grp_rare, interposable, nullptr, HelpHidden, DefaultVis, 0,
377 "Alias for -interposable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
378OPTION(prefix_1, "-multiply_defined_unused", multiply_defined_unused, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
379 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
380OPTION(prefix_1, "-multiply_defined", multiply_defined, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
381 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
382OPTION(prefix_1, "-M", M, Flag, grp_ignored, INVALID, nullptr, HelpHidden, DefaultVis, 0,
383 "This option is ignored in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
384OPTION(prefix_1, "-m", m, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
385 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
386OPTION(prefix_1, "-needed-l", needed_l, Joined, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
387 "Like -l<name>, but link library even if its symbols are not used and -dead_strip_dylibs is active", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
388OPTION(prefix_1, "-needed_framework", needed_framework, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
389 "Like -framework <name>, but link <name> even if none of its symbols are used and -dead_strip_dylibs is active", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
390OPTION(prefix_1, "-needed_library", needed_library, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
391 "Like bare <path>, but link library even if its symbols are not used and -dead_strip_dylibs is active", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
392OPTION(prefix_1, "-new_linker", new_linker, Flag, grp_ignored, INVALID, nullptr, HelpHidden, DefaultVis, 0,
393 "This option is ignored in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
394OPTION(prefix_2, "--no-call-graph-profile-sort", no_call_graph_profile_sort, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
395 "Do not reorder sections with call graph profile", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
396OPTION(prefix_2, "--no-color-diagnostics", no_color_diagnostics, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
397 "Alias for --color-diagnostics=never", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
398OPTION(prefix_2, "--no-deduplicate-strings", no_deduplicate_strings, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
399 "Disable string deduplication. This helps uncover cases of comparing string addresses instead of equality and might have a link time performance benefit.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
400OPTION(prefix_2, "--no-pgo-warn-mismatch", no_pgo_warn_mismatch, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
401 "turn off warnings about profile cfg mismatch", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
402OPTION(prefix_2, "--no-warn-duplicate-rpath", no_warn_duplicate_rpath, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
403 "Do not warn if the same -rpath is specified multiple times", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
404OPTION(prefix_2, "--no-warn-dylib-install-name", no_warn_dylib_install_name, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
405 "Do not warn on -install_name if -dylib is not passed (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
406OPTION(prefix_2, "--no-warn-thin-archive-missing-members", no_warn_thin_archive_missing_members, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
407 "Do not warn on missing object files referenced by thin archives", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
408OPTION(prefix_1, "-no_adhoc_codesign", no_adhoc_codesign, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
409 "Do not write an ad-hoc code signature to the output file (default for x86_64 binaries)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
410OPTION(prefix_1, "-no_application_extension", no_application_extension, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
411 "Disable application extension functionality (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
412OPTION(prefix_1, "-no_arch_warnings", no_arch_warnings, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
413 "Suppresses warnings about inputs whose architecture does not match the -arch option", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
414OPTION(prefix_1, "-no_branch_islands", no_branch_islands, Flag, grp_opts, INVALID, nullptr, HelpHidden, DefaultVis, 0,
415 "Disable infra for branches beyond the maximum branch distance.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
416OPTION(prefix_1, "-no_compact_linkedit", no_compact_linkedit, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
417 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
418OPTION(prefix_1, "-no_compact_unwind", no_compact_unwind, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
419 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
420OPTION(prefix_1, "-no_data_const", no_data_const, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
421 "Block migration of readonly data away from __DATA segment", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
422OPTION(prefix_1, "-no_data_in_code_info", no_data_in_code_info, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
423 "Do not emit data-in-code information", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
424OPTION(prefix_1, "-no_dead_strip_inits_and_terms", no_dead_strip_inits_and_terms, Flag, grp_deprecated, INVALID, nullptr, HelpHidden, DefaultVis, 0,
425 "Unnecessary option: initialization and termination are roots of the dead strip graph, so never dead stripped", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
426OPTION(prefix_1, "-no_deduplicate", no_deduplicate, Flag, grp_opts, icf_eq, "none\0", 0, DefaultVis, 0,
427 "Disable code deduplication (synonym for `--icf=none')", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
428OPTION(prefix_1, "-no_dependent_dr_info", no_dependent_dr_info, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
429 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
430OPTION(prefix_1, "-no_dtrace_dof", no_dtrace_dof, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
431 "Disable dtrace-dof processing (default).", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
432OPTION(prefix_1, "-no_eh_labels", no_eh_labels, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
433 "In -r mode, suppress .eh labels in the __eh_frame section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
434OPTION(prefix_1, "-no_encryption", no_encryption, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
435 "Do not generate the LC_ENCRYPTION_INFO load command", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
436OPTION(prefix_1, "-no_exported_symbols", no_exported_symbols, Flag, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
437 "Don't export any symbols from the binary, useful for main executables that don't have plugins", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
438OPTION(prefix_1, "-no_fixup_chains", no_fixup_chains, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
439 "Emit fixup information as classic dyld opcodes", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
440OPTION(prefix_1, "-no_function_starts", no_function_starts, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
441 "Do not create table of function start addresses", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
442OPTION(prefix_1, "-no_implicit_dylibs", no_implicit_dylibs, Flag, grp_opts, INVALID, nullptr, 0, DefaultVis, 0,
443 "Do not optimize public dylib transitive symbol references", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
444OPTION(prefix_1, "-no_inits", no_inits, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
445 "Fail if the output contains static initializers", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
446OPTION(prefix_1, "-no_keep_dwarf_unwind", no_keep_dwarf_unwind, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
447 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
448OPTION(prefix_1, "-no_kext_objects", no_kext_objects, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
449 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
450OPTION(prefix_1, "-no_new_main", no_new_main, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
451 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
452OPTION(prefix_1, "-no_objc_category_merging", no_objc_category_merging, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
453 "Do not merge Objective-C categories", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
454OPTION(prefix_1, "-no_objc_relative_method_lists", no_objc_relative_method_lists, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
455 "Don't emit relative method lists (use traditional representation)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
456OPTION(prefix_1, "-no_order_data", no_order_data, Flag, grp_opts, INVALID, nullptr, HelpHidden, DefaultVis, 0,
457 "Disable default reordering of global data accessed at launch time", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
458OPTION(prefix_1, "-no_order_inits", no_order_inits, Flag, grp_opts, INVALID, nullptr, HelpHidden, DefaultVis, 0,
459 "Disable default reordering of initializer and terminator functions", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
460OPTION(prefix_1, "-no_pie", no_pie, Flag, grp_main, INVALID, nullptr, 0, DefaultVis, 0,
461 "Do not build a position independent executable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
462OPTION(prefix_1, "-no_source_version", no_source_version, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
463 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
464OPTION(prefix_1, "-no_uuid", no_uuid, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
465 "Do not generate the LC_UUID load command", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
466OPTION(prefix_1, "-no_warn_duplicate_libraries", no_warn_duplicate_libraries, Flag, grp_ignored_silently, INVALID, nullptr, HelpHidden, DefaultVis, 0,
467 "Do not warn if the input contains duplicate library options.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
468OPTION(prefix_1, "-no_warn_inits", no_warn_inits, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
469 "Suppress warnings for static initializers in the output", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
470OPTION(prefix_1, "-no_weak_exports", no_weak_exports, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
471 "Fail if the linked image contains weak external symbols", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
472OPTION(prefix_1, "-no_weak_imports", no_weak_imports, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
473 "Fail if any symbols are weak imports, allowed to be NULL at runtime", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
474OPTION(prefix_1, "-no_zero_fill_sections", no_zero_fill_sections, Flag, grp_opts, INVALID, nullptr, HelpHidden, DefaultVis, 0,
475 "Explicitly store zeroed data in the final image", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
476OPTION(prefix_1, "-noall_load", noall_load, Flag, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
477 "Don't load all static members from archives, this is the default, this negates -all_load", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
478OPTION(prefix_1, "-nofixprebinding", nofixprebinding, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
479 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
480OPTION(prefix_1, "-nomultidefs", nomultidefs, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
481 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
482OPTION(prefix_1, "-non_global_symbols_no_strip_list", non_global_symbols_no_strip_list, Separate, grp_symtab, INVALID, nullptr, 0, DefaultVis, 0,
483 "Specify in <path> the non-global symbols that should remain in the output symbol table", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
484OPTION(prefix_1, "-non_global_symbols_strip_list", non_global_symbols_strip_list, Separate, grp_symtab, INVALID, nullptr, 0, DefaultVis, 0,
485 "Specify in <path> the non-global symbols that should be removed from the output symbol table", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
486OPTION(prefix_1, "-noprebind_all_twolevel_modules", noprebind_all_twolevel_modules, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
487 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
488OPTION(prefix_1, "-noprebind", noprebind, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
489 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
490OPTION(prefix_1, "-noseglinkedit", noseglinkedit, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
491 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
492OPTION(prefix_1, "-not_for_dyld_shared_cache", not_for_dyld_shared_cache, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
493 "Prevent system dylibs from being placed into the dylib shared cache", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
494OPTION(prefix_1, "-objc_abi_version", objc_abi_version, Separate, grp_ignored_silently, INVALID, nullptr, HelpHidden, DefaultVis, 0,
495 "This option only applies to i386 in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
496OPTION(prefix_1, "-objc_category_merging", objc_category_merging, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
497 "Merge Objective-C categories that share the same base class", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
498OPTION(prefix_1, "-objc_gc_compaction", objc_gc_compaction, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
499 "Mark the Objective-C image as compatible with compacting garbage collection", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
500OPTION(prefix_1, "-objc_gc_only", objc_gc_only, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
501 "Verify that all code was compiled with -fobjc-gc-only", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
502OPTION(prefix_1, "-objc_gc", objc_gc, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
503 "Verify that all code was compiled with -fobjc-gc or -fobjc-gc-only", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
504OPTION(prefix_1, "-objc_relative_method_lists", objc_relative_method_lists, Flag, grp_undocumented, INVALID, nullptr, 0, DefaultVis, 0,
505 "Emit relative method lists (more compact representation)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
506OPTION(prefix_1, "-objc_stubs_fast", objc_stubs_fast, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
507 "Produce larger stubs for Objective-C method calls with fewer jumps (default).", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
508OPTION(prefix_1, "-objc_stubs_small", objc_stubs_small, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
509 "Produce smaller stubs for Objective-C method calls with more jumps.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
510OPTION(prefix_1, "-ObjC", ObjC, Flag, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
511 "Load all members of static archives that are an Objective-C class or category.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
512OPTION(prefix_1, "-object_path_lto", object_path_lto, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
513 "Retain any temporary mach-o file in <path> that would otherwise be deleted during LTO", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
514OPTION(prefix_1, "-order_file_statistics", order_file_statistics, Flag, grp_introspect, INVALID, nullptr, HelpHidden, DefaultVis, 0,
515 "Logs information about -order_file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
516OPTION(prefix_1, "-order_file", order_file, Separate, grp_opts, INVALID, nullptr, 0, DefaultVis, 0,
517 "Layout functions and data according to specification in <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
518OPTION(prefix_1, "-oso_prefix", oso_prefix, Separate, grp_symtab, INVALID, nullptr, 0, DefaultVis, 0,
519 "Remove the prefix <path> from OSO symbols in the debug map", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
520OPTION(prefix_1, "-O", O, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
521 "Optimize output file size", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
522OPTION(prefix_1, "-o", o, Separate, grp_kind, INVALID, nullptr, 0, DefaultVis, 0,
523 "The name of the output file (default: `a.out')", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
524OPTION(prefix_1, "-page_align_data_atoms", page_align_data_atoms, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
525 "Distribute global variables on separate pages so page used/dirty status can guide creation of an order file to cluster commonly used/dirty globals", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
526OPTION(prefix_1, "-pagezero_size", pagezero_size, Separate, grp_main, INVALID, nullptr, 0, DefaultVis, 0,
527 "Size of unreadable segment at address zero is hex <size> (default is 4KB on 32-bit and 4GB on 64-bit)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<size>", nullptr)
528OPTION(prefix_1, "-pause", pause, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
529 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
530OPTION(prefix_2, "--pgo-warn-mismatch", pgo_warn_mismatch, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
531 "turn on warnings about profile cfg mismatch (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
532OPTION(prefix_1, "-pie", pie, Flag, grp_main, INVALID, nullptr, 0, DefaultVis, 0,
533 "Build a position independent executable (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
534OPTION(prefix_1, "-platform_version", platform_version, MultiArg, grp_version, INVALID, nullptr, 0, DefaultVis, 3,
535 "Platform (e.g., macos, ios, tvos, watchos, xros, bridgeos, mac-catalyst, ios-sim, tvos-sim, watchos-sim, xros-sim, driverkit) and version numbers", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<platform> <min_version> <sdk_version>", nullptr)
536OPTION(prefix_1, "-prebind_all_twolevel_modules", prebind_all_twolevel_modules, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
537 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
538OPTION(prefix_1, "-prebind_allow_overlap", prebind_allow_overlap, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
539 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
540OPTION(prefix_1, "-prebind", prebind, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
541 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
542OPTION(prefix_1, "-preload", preload, Flag, grp_kind, INVALID, nullptr, HelpHidden, DefaultVis, 0,
543 "Produce an unsegmented binary for embedded systems", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
544OPTION(prefix_2, "--print-dylib-search", print_dylib_search, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
545 "Print which paths lld searched when trying to find dylibs", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
546OPTION(prefix_2, "--print-symbol-order=", print_symbol_order_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
547 "Print a symbol order specified by --call-graph-profile-sort into the specified file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
548OPTION(prefix_1, "-print_statistics", print_statistics, Flag, grp_introspect, INVALID, nullptr, HelpHidden, DefaultVis, 0,
549 "Log the linker's memory and CPU usage", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
550OPTION(prefix_1, "-private_bundle", private_bundle, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
551 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
552OPTION(prefix_1, "-prune_after_lto", prune_after_lto, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
553 "Remove LTO cache entries after <seconds>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<seconds>", nullptr)
554OPTION(prefix_1, "-prune_interval_lto", prune_interval_lto, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
555 "Prune the incremental LTO cache after <seconds> (-1 disables pruning)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<seconds>", nullptr)
556OPTION(prefix_1, "-random_uuid", random_uuid, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
557 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
558OPTION(prefix_1, "-read_only_relocs", read_only_relocs, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
559 "Handle relocations that modify read-only pages according to <treatment> of warning, error, or suppress (i.e., allow)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
560OPTION(prefix_1, "-read_only_stubs", read_only_stubs, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
561 "On i386, make the __IMPORT segment of a final linked image read-only", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
562OPTION(prefix_1, "-reexport-l", reexport_l, Joined, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
563 "Like -l<name>, but export all symbols of <name> from newly created library", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
564OPTION(prefix_1, "-reexport_framework", reexport_framework, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
565 "Like -framework <name>, but export all symbols of <name> from the newly created library", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
566OPTION(prefix_1, "-reexport_library", reexport_library, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
567 "Like bare <path>, but export all symbols of <path> from newly created library", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
568OPTION(prefix_1, "-reexported_symbols_list", reexported_symbols_list, Separate, grp_resolve, INVALID, nullptr, HelpHidden, DefaultVis, 0,
569 "Symbols from dependent dylibs specified in <file> are reexported by this dylib", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
570OPTION(prefix_1, "-rename_section", rename_section, MultiArg, grp_rare, INVALID, nullptr, 0, DefaultVis, 4,
571 "Rename <from_segment>/<from_section> as <to_segment>/<to_section>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<from_segment> <from_section> <to_segment> <to_section>", nullptr)
572OPTION(prefix_1, "-rename_segment", rename_segment, MultiArg, grp_rare, INVALID, nullptr, 0, DefaultVis, 2,
573 "Rename <from_segment> as <to_segment>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<from_segment> <to_segment>", nullptr)
574OPTION(prefix_2, "--reproduce=", reproduce_eq, Joined, grp_lld, reproduce, nullptr, 0, DefaultVis, 0,
575 "Write tar file containing inputs and command to reproduce link", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
576OPTION(prefix_2, "--reproduce", reproduce, Separate, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
577OPTION(prefix_1, "-reproducible", reproducible, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
578 "Make the output reproducible by removing timestamps and other non-deterministic data. This is the default behavior.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
579OPTION(prefix_1, "-root_safe", root_safe, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
580 "Set the MH_ROOT_SAFE bit in the mach-o header", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
581OPTION(prefix_1, "-rpath", rpath, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
582 "Add <path> to dyld search list for dylibs with load path prefix `@rpath/'", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
583OPTION(prefix_1, "-run_init_lazily", run_init_lazily, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
584 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
585OPTION(prefix_1, "-r", r, Flag, grp_kind, INVALID, nullptr, HelpHidden, DefaultVis, 0,
586 "Merge multiple object files into one, retaining relocations", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
587OPTION(prefix_1, "-save-temps", save_temps, Flag, grp_introspect, INVALID, nullptr, 0, DefaultVis, 0,
588 "Save intermediate LTO compilation results", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
589OPTION(prefix_1, "-sdk_version", sdk_version, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
590 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
591OPTION(prefix_1, "-search_dylibs_first", search_dylibs_first, Flag, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
592 "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)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
593OPTION(prefix_1, "-search_paths_first", search_paths_first, Flag, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
594 "Search for lib<name>.dylib and lib<name>.a at each step in traversing search path (default for Xcode 4 and later)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
595OPTION(prefix_1, "-sect_diff_relocs", sect_diff_relocs, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
596 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
597OPTION(prefix_1, "-sectalign", sectalign, MultiArg, grp_rare, INVALID, nullptr, 0, DefaultVis, 3,
598 "Align <section> within <segment> to hex power-of-2 <boundary>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <section> <boundary>", nullptr)
599OPTION(prefix_1, "-sectcreate", sectcreate, MultiArg, grp_content, INVALID, nullptr, 0, DefaultVis, 3,
600 "Create <section> in <segment> from the contents of <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <section> <file>", nullptr)
601OPTION(prefix_1, "-section_order", section_order, MultiArg, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 2,
602 "With -preload, specify layout sequence of colon-separated <sections> in <segment>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <sections>", nullptr)
603OPTION(prefix_1, "-sectobjectsymbols", sectobjectsymbols, MultiArg, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 2,
604 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segname> <sectname>", nullptr)
605OPTION(prefix_1, "-sectorder_detail", sectorder_detail, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
606 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
607OPTION(prefix_1, "-sectorder", sectorder, MultiArg, grp_obsolete, INVALID, nullptr, 0, DefaultVis, 3,
608 "Obsolete. Replaced by more general -order_file option", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segname> <sectname> <orderfile>", nullptr)
609OPTION(prefix_1, "-seg1addr", seg1addr, Separate, grp_opts, image_base, nullptr, HelpHidden, DefaultVis, 0,
610 "Alias for -image_base", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<address>", nullptr)
611OPTION(prefix_1, "-seg_addr_table_filename", seg_addr_table_filename, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
612 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
613OPTION(prefix_1, "-seg_page_size", seg_page_size, MultiArg, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 2,
614 "Specifies the page <size> for <segment>. Segment size will be a multiple of its page size", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <size>", nullptr)
615OPTION(prefix_1, "-segaddr", segaddr, MultiArg, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 2,
616 "Specify the starting hex <address> at a 4KiB page boundary for <segment>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <address>", nullptr)
617OPTION(prefix_1, "-segalign", segalign, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
618 "Align all segments to hex power-of-2 <boundary>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<boundary>", nullptr)
619OPTION(prefix_1, "-segcreate", segcreate, MultiArg, grp_content, sectcreate, nullptr, 0, DefaultVis, 3,
620 "Alias for -sectcreate", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <section> <file>", nullptr)
621OPTION(prefix_1, "-seglinkedit", seglinkedit, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
622 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
623OPTION(prefix_1, "-segment_order", segment_order, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
624 "With -preload, specify layout sequence of colon-separated <segments>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<colon_separated_segment_list>", nullptr)
625OPTION(prefix_1, "-segprot", segprot, MultiArg, grp_rare, INVALID, nullptr, 0, DefaultVis, 3,
626 "Specifies the <max> and <init> virtual memory protection of <segment> as r/w/x/-seg_addr_table path", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<segment> <max> <init>", nullptr)
627OPTION(prefix_1, "-segs_read_only_addr", segs_read_only_addr, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
628 "This option is obsolete", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<address>", nullptr)
629OPTION(prefix_1, "-segs_read_write_addr", segs_read_write_addr, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
630 "This option is obsolete", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<address>", nullptr)
631OPTION(prefix_1, "-setuid_safe", setuid_safe, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
632 "Set the MH_SETUID_SAFE bit in the mach-o header", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
633OPTION(prefix_1, "-simulator_support", simulator_support, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
634 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
635OPTION(prefix_1, "-single_module", single_module, Flag, grp_deprecated, INVALID, nullptr, HelpHidden, DefaultVis, 0,
636 "Unnecessary option: this is already the default", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
637OPTION(prefix_1, "-Si", Si, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
638 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
639OPTION(prefix_1, "-slow_stubs", slow_stubs, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
640 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
641OPTION(prefix_1, "-snapshot_dir", snapshot_dir, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
642 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
643OPTION(prefix_1, "-Sn", Sn, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
644 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
645OPTION(prefix_1, "-source_version", source_version, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
646 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
647OPTION(prefix_1, "-Sp", Sp, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
648 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
649OPTION(prefix_1, "-stack_addr", stack_addr, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
650 "Initialize stack pointer to hex <address> rounded to a page boundary", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<address>", nullptr)
651OPTION(prefix_1, "-stack_size", stack_size, Separate, grp_main, INVALID, nullptr, HelpHidden, DefaultVis, 0,
652 "Maximum hex stack size for the main thread in a program. (default is 8MB)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<size>", nullptr)
653OPTION(prefix_2, "--start-lib", start_lib, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
654 "Start a grouping of objects that should be treated as if they were together in an archive", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
655OPTION(prefix_1, "-static", static, Flag, grp_kind, INVALID, nullptr, HelpHidden, DefaultVis, 0,
656 "Link statically", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
657OPTION(prefix_2, "--strict-auto-link", strict_auto_link, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
658 "Always warn for missing frameworks or libraries if they are loaded via LC_LINKER_OPTIONS", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
659OPTION(prefix_1, "-sub_library", sub_library, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
660 "Re-export the dylib as <name>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
661OPTION(prefix_1, "-sub_umbrella", sub_umbrella, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
662 "Re-export the framework as <name>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
663OPTION(prefix_1, "-syslibroot", syslibroot, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
664 "Prepend <rootdir> to all library and framework search paths", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<rootdir>", nullptr)
665OPTION(prefix_1, "-S", S, Flag, grp_symtab, INVALID, nullptr, 0, DefaultVis, 0,
666 "Strip debug information (STABS or DWARF) from the output", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
667OPTION(prefix_1, "-s", s, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
668 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
669OPTION(prefix_1, "-text_exec", text_exec, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
670 "Rename __segment TEXT to __TEXT_EXEC for sections __text and __stubs", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
671OPTION(prefix_2, "--thinlto-cache-policy=", thinlto_cache_policy_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
672 "Pruning policy for the ThinLTO cache", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
673OPTION(prefix_2, "--thinlto-emit-imports-files", thinlto_emit_imports_files, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
674OPTION(prefix_2, "--thinlto-emit-index-files", thinlto_emit_index_files, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
675OPTION(prefix_2, "--thinlto-index-only=", thinlto_index_only_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
676OPTION(prefix_2, "--thinlto-index-only", thinlto_index_only, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
677OPTION(prefix_2, "--thinlto-jobs=", thinlto_jobs_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
678 "Number of ThinLTO jobs. Default to --threads=", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
679OPTION(prefix_2, "--thinlto-object-suffix-replace=", thinlto_object_suffix_replace_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
680OPTION(prefix_2, "--thinlto-prefix-replace=", thinlto_prefix_replace_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
681OPTION(prefix_1, "-threaded_starts_section", threaded_starts_section, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
682 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
683OPTION(prefix_2, "--threads=", threads_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
684 "Number of threads. '1' disables multi-threading. By default all available hardware threads are used", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
685OPTION(prefix_2, "--time-trace-granularity=", time_trace_granularity_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
686 "Minimum time granularity (in microseconds) traced by time profiler", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
687OPTION(prefix_2, "--time-trace=", time_trace_eq, Joined, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
688 "Record time trace to <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
689OPTION(prefix_2, "--time-trace", anonymous_0, Flag, grp_lld, time_trace_eq, nullptr, 0, DefaultVis, 0,
690 "Record time trace to file next to output", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
691OPTION(prefix_1, "-trace_symbol_layout", trace_symbol_layout, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
692 "Show where and why symbols move, as specified by -move_to_ro_segment, -move_to_rw_segment, -rename_section, and -rename_segment", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
693OPTION(prefix_1, "-tvos_version_min", tvos_version_min, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
694 "Oldest tvOS version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
695OPTION(prefix_1, "-twolevel_namespace_hints", twolevel_namespace_hints, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
696 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
697OPTION(prefix_1, "-twolevel_namespace", twolevel_namespace, Flag, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
698 "Make dyld look up symbols by (dylib,name) pairs (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
699OPTION(prefix_1, "-t", t, Flag, grp_introspect, INVALID, nullptr, 0, DefaultVis, 0,
700 "Log every file the linker loads: object, archive, and dylib", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
701OPTION(prefix_1, "-uikitformac_version_min", uikitformac_version_min, Separate, grp_version, maccatalyst_version_min, nullptr, HelpHidden, DefaultVis, 0,
702 "Alias for -maccatalyst_version_min", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
703OPTION(prefix_1, "-umbrella", umbrella, Separate, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
704 "Re-export this dylib through the umbrella framework <name>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
705OPTION(prefix_1, "-unaligned_pointers", unaligned_pointers, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
706 "Handle unaligned pointers in __DATA segments according to <treatment>: warning, error, or suppress (default for arm64e is error, otherwise suppress)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
707OPTION(prefix_1, "-undefined", undefined, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
708 "Handle undefined symbols according to <treatment>: error, warning, suppress, or dynamic_lookup (default is error)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
709OPTION(prefix_1, "-unexported_symbols_list", unexported_symbols_list, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
710 "Global symbols specified in <file> become private externs", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<file>", nullptr)
711OPTION(prefix_1, "-unexported_symbol", unexported_symbol, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
712 "Global <symbol> becomes private extern", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
713OPTION(prefix_1, "-upward-l", upward_l, Joined, grp_libs, INVALID, nullptr, HelpHidden, DefaultVis, 0,
714 "Like -l<name>, but specify dylib as an upward dependency", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
715OPTION(prefix_1, "-upward_framework", upward_framework, Separate, grp_libs, INVALID, nullptr, HelpHidden, DefaultVis, 0,
716 "Like -framework <name>, but specify the framework as an upward dependency", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
717OPTION(prefix_1, "-upward_library", upward_library, Separate, grp_libs, INVALID, nullptr, HelpHidden, DefaultVis, 0,
718 "Like bare <path>, but specify dylib as an upward dependency", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
719OPTION(prefix_1, "-U", U, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
720 "Allow <symbol> to have no definition", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
721OPTION(prefix_1, "-u", u, Separate, grp_resolve, INVALID, nullptr, 0, DefaultVis, 0,
722 "Require that <symbol> be defined for the link to succeed", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
723OPTION(prefix_1, "-verbose_deduplicate", verbose_deduplicate, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
724 "Print function names eliminated by deduplication and the total size of code savings", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
725OPTION(prefix_1, "-verbose_optimization_hints", verbose_optimization_hints, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
726 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
727OPTION(prefix_2, "--verbose", verbose, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
728OPTION(prefix_1, "-version_details", version_details, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
729 "Print the linker version in JSON form", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
730OPTION(prefix_1, "-version_load_command", version_load_command, Flag, grp_undocumented, INVALID, nullptr, HelpHidden, DefaultVis, 0,
731 "This option is undocumented in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
732OPTION(prefix_2, "--version", version, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
733 "Display the version number and exit", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
734OPTION(prefix_1, "-v", v, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
735 "Print the linker version and search paths in addition to linking", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
736OPTION(prefix_2, "--warn-duplicate-rpath", warn_duplicate_rpath, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
737 "Warn if the same -rpath is specified multiple times (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
738OPTION(prefix_2, "--warn-dylib-install-name", warn_dylib_install_name, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
739 "Warn on -install_name if -dylib is not passed", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
740OPTION(prefix_2, "--warn-thin-archive-missing-members", warn_thin_archive_missing_members, Flag, grp_lld, INVALID, nullptr, 0, DefaultVis, 0,
741 "Warn on missing object files referenced by thin archives (default)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
742OPTION(prefix_1, "-warn_commons", warn_commons, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
743 "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", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
744OPTION(prefix_1, "-warn_compact_unwind", warn_compact_unwind, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
745 "Warn for each FDE that cannot compact into the __unwind_info section and must remain in the __eh_frame section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
746OPTION(prefix_1, "-warn_stabs", warn_stabs, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
747 "Warn when bad stab symbols inside a BINCL/EINCL prevent optimization", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
748OPTION(prefix_1, "-warn_weak_exports", warn_weak_exports, Flag, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
749 "Warn if the linked image contains weak external symbols", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
750OPTION(prefix_1, "-watchos_version_min", watchos_version_min, Separate, grp_version, INVALID, nullptr, HelpHidden, DefaultVis, 0,
751 "Oldest watchOS version for which linked output is usable", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<version>", nullptr)
752OPTION(prefix_1, "-weak-l", weak_l, Joined, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
753 "Like -l<name>, but mark library and its references as weak imports", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
754OPTION(prefix_1, "-weak_framework", weak_framework, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
755 "Like -framework <name>, but mark framework and its references as weak imports", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<name>", nullptr)
756OPTION(prefix_1, "-weak_library", weak_library, Separate, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
757 "Like bare <path>, but mark library and its references as weak imports", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<path>", nullptr)
758OPTION(prefix_1, "-weak_reference_mismatches", weak_reference_mismatches, Separate, grp_rare, INVALID, nullptr, HelpHidden, DefaultVis, 0,
759 "Resolve symbol imports of conflicting weakness according to <treatment> as weak, non-weak, or error (default is non-weak)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<treatment>", nullptr)
760OPTION(prefix_1, "-whatsloaded", whatsloaded, Flag, grp_introspect, INVALID, nullptr, HelpHidden, DefaultVis, 0,
761 "Logs only the object files the linker loads", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
762OPTION(prefix_1, "-why_live", why_live, Separate, grp_introspect, INVALID, nullptr, 0, DefaultVis, 0,
763 "Log a chain of references to <symbol>, for use with -dead_strip", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
764OPTION(prefix_1, "-why_load", why_load, Flag, grp_introspect, INVALID, nullptr, 0, DefaultVis, 0,
765 "Log why each object file is loaded from a static library", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
766OPTION(prefix_1, "-whyload", whyload, Flag, grp_introspect, why_load, nullptr, 0, DefaultVis, 0,
767 "Alias for -why_load", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
768OPTION(prefix_1, "-w", w, Flag, grp_rare, INVALID, nullptr, 0, DefaultVis, 0,
769 "Suppress all warnings", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
770OPTION(prefix_1, "-X", X, Flag, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
771 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
772OPTION(prefix_1, "-x", x, Flag, grp_symtab, INVALID, nullptr, 0, DefaultVis, 0,
773 "Exclude non-global symbols from the output symbol table", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
774OPTION(prefix_1, "-Y", Y, Separate, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
775 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<number>", nullptr)
776OPTION(prefix_1, "-y", y, Joined, grp_obsolete, INVALID, nullptr, HelpHidden, DefaultVis, 0,
777 "This option is obsolete in ld64", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<symbol>", nullptr)
778OPTION(prefix_1, "-Z", Z, Flag, grp_libs, INVALID, nullptr, 0, DefaultVis, 0,
779 "Remove standard directories from the library and framework search paths", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
780#endif // OPTION
781
782#ifdef SIMPLE_ENUM_VALUE_TABLE
783
784struct SimpleEnumValue {
785 const char *Name;
786 unsigned Value;
787};
788
789struct SimpleEnumValueTable {
790 const SimpleEnumValue *Table;
791 unsigned Size;
792};
793static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
794static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
795#endif // SIMPLE_ENUM_VALUE_TABLE
796
797
798