1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Option Parsing Definitions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9/////////
10// String table
11
12#ifdef OPTTABLE_STR_TABLE_CODE
13
14#ifdef __GNUC__
15#pragma GCC diagnostic push
16#pragma GCC diagnostic ignored "-Woverlength-strings"
17#endif
18static constexpr char OptionStrTableStorage[] =
19 "\0"
20 "-\0"
21 "--\0"
22 "kind\0"
23 "<input>\0"
24 "<unknown>\0"
25 "--add-gnu-debuglink=\0"
26 "--add-gnu-debuglink\0"
27 "--add-section=\0"
28 "--add-section\0"
29 "--add-symbol=\0"
30 "--add-symbol\0"
31 "--adjust-section-vma\0"
32 "--adjust-start\0"
33 "--allow-broken-links\0"
34 "--binary-architecture=\0"
35 "--binary-architecture\0"
36 "-B\0"
37 "--change-section-address=\0"
38 "--change-section-address\0"
39 "--change-section-lma=\0"
40 "--change-section-lma\0"
41 "--change-start=\0"
42 "--change-start\0"
43 "--compress-debug-sections=\0"
44 "--compress-debug-sections\0"
45 "--compress-sections=\0"
46 "--compress-sections\0"
47 "--decompress-debug-sections\0"
48 "--disable-deterministic-archives\0"
49 "--discard-all\0"
50 "--discard-locals\0"
51 "--dump-section=\0"
52 "--dump-section\0"
53 "-D\0"
54 "--enable-deterministic-archives\0"
55 "--extract-dwo\0"
56 "--extract-main-partition\0"
57 "--extract-partition=\0"
58 "--extract-partition\0"
59 "-F\0"
60 "--gap-fill=\0"
61 "--gap-fill\0"
62 "--globalize-symbol=\0"
63 "--globalize-symbols=\0"
64 "--globalize-symbols\0"
65 "--globalize-symbol\0"
66 "-G\0"
67 "-g\0"
68 "--help\0"
69 "-h\0"
70 "--input-target=\0"
71 "--input-target\0"
72 "-I\0"
73 "-j\0"
74 "--keep-file-symbols\0"
75 "--keep-global-symbol=\0"
76 "--keep-global-symbols=\0"
77 "--keep-global-symbols\0"
78 "--keep-global-symbol\0"
79 "--keep-section=\0"
80 "--keep-section\0"
81 "--keep-symbol=\0"
82 "--keep-symbols=\0"
83 "--keep-symbols\0"
84 "--keep-symbol\0"
85 "--keep-undefined\0"
86 "-K\0"
87 "--localize-hidden\0"
88 "--localize-symbol=\0"
89 "--localize-symbols=\0"
90 "--localize-symbols\0"
91 "--localize-symbol\0"
92 "-L\0"
93 "--new-symbol-visibility=\0"
94 "--new-symbol-visibility\0"
95 "--no-verify-note-sections\0"
96 "-N\0"
97 "--only-keep-debug\0"
98 "--only-section=\0"
99 "--only-section\0"
100 "--output-target=\0"
101 "--output-target\0"
102 "-O\0"
103 "--pad-to=\0"
104 "--pad-to\0"
105 "--prefix-alloc-sections=\0"
106 "--prefix-alloc-sections\0"
107 "--prefix-symbols=\0"
108 "--prefix-symbols\0"
109 "--preserve-dates\0"
110 "-p\0"
111 "--redefine-sym=\0"
112 "--redefine-syms=\0"
113 "--redefine-syms\0"
114 "--redefine-sym\0"
115 "--regex\0"
116 "--remove-note=\0"
117 "--remove-note\0"
118 "--remove-section=\0"
119 "--remove-section\0"
120 "--remove-symbol-prefix=\0"
121 "--remove-symbol-prefix\0"
122 "--rename-section=\0"
123 "--rename-section\0"
124 "-R\0"
125 "--set-section-alignment=\0"
126 "--set-section-alignment\0"
127 "--set-section-flags=\0"
128 "--set-section-flags\0"
129 "--set-section-type=\0"
130 "--set-section-type\0"
131 "--set-start=\0"
132 "--set-start\0"
133 "--set-symbol-visibility=\0"
134 "--set-symbol-visibility\0"
135 "--set-symbols-visibility=\0"
136 "--set-symbols-visibility\0"
137 "--skip-symbol=\0"
138 "--skip-symbols=\0"
139 "--skip-symbols\0"
140 "--skip-symbol\0"
141 "--split-dwo=\0"
142 "--split-dwo\0"
143 "--strip-all-gnu\0"
144 "--strip-all\0"
145 "--strip-debug\0"
146 "--strip-dwo\0"
147 "--strip-non-alloc\0"
148 "--strip-sections\0"
149 "--strip-symbol=\0"
150 "--strip-symbols=\0"
151 "--strip-symbols\0"
152 "--strip-symbol\0"
153 "--strip-unneeded-symbol=\0"
154 "--strip-unneeded-symbols=\0"
155 "--strip-unneeded-symbols\0"
156 "--strip-unneeded-symbol\0"
157 "--strip-unneeded\0"
158 "--subsystem=\0"
159 "--subsystem\0"
160 "-S\0"
161 "--target=\0"
162 "--target\0"
163 "--update-section=\0"
164 "--update-section\0"
165 "-U\0"
166 "--verify-note-sections\0"
167 "--version\0"
168 "-V\0"
169 "--weaken-symbol=\0"
170 "--weaken-symbols=\0"
171 "--weaken-symbols\0"
172 "--weaken-symbol\0"
173 "--weaken\0"
174 "--wildcard\0"
175 "-W\0"
176 "-w\0"
177 "-X\0"
178 "-x\0"
179 ;
180#ifdef __GNUC__
181#pragma GCC diagnostic pop
182#endif
183
184static constexpr llvm::StringTable OptionStrTable =
185 OptionStrTableStorage;
186#endif // OPTTABLE_STR_TABLE_CODE
187
188/////////
189// Prefixes
190
191#ifdef OPTTABLE_PREFIXES_TABLE_CODE
192static constexpr llvm::StringTable::Offset OptionPrefixesTable[] = {
193 0 /* prefixes */,
194 1 /* prefixes */, 1 /* '-' */,
195 1 /* prefixes */, 3 /* '--' */
196};
197#endif // OPTTABLE_PREFIXES_TABLE_CODE
198
199/////////
200// Prefix Union
201
202#ifdef OPTTABLE_PREFIXES_UNION_CODE
203static constexpr llvm::StringTable::Offset OptionPrefixesUnion[] = {
204 1 /* '-' */, 3 /* '--' */
205};
206#endif // OPTTABLE_PREFIXES_UNION_CODE
207
208/////////
209// ValuesCode
210
211#ifdef OPTTABLE_VALUES_CODE
212#endif
213/////////
214// Groups
215
216#ifdef OPTION
217OPTION(0 /* no prefixes */, 6 /* kind */, grp_coff, Group, INVALID, INVALID, nullptr, 0, 0, 0,
218 "OPTIONS (COFF specific)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
219OPTION(0 /* no prefixes */, 6 /* kind */, grp_macho, Group, INVALID, INVALID, nullptr, 0, 0, 0,
220 "OPTIONS (Mach-O specific)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
221
222//////////
223// Options
224
225OPTION(0, 11 /* <input> */, INPUT, Input, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
226OPTION(0, 19 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
227OPTION(3, 29 /* --add-gnu-debuglink= */, add_gnu_debuglink_eq, Joined, INVALID, add_gnu_debuglink, nullptr, 0, DefaultVis, 0,
228 "Add a .gnu_debuglink for <debug-file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "debug-file", nullptr)
229OPTION(3, 50 /* --add-gnu-debuglink */, add_gnu_debuglink, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "debug-file", nullptr)
230OPTION(3, 70 /* --add-section= */, add_section_eq, Joined, INVALID, add_section, nullptr, 0, DefaultVis, 0,
231 "Add a section named <section> with the contents of <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=file", nullptr)
232OPTION(3, 85 /* --add-section */, add_section, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=file", nullptr)
233OPTION(3, 99 /* --add-symbol= */, add_symbol_eq, Joined, INVALID, add_symbol, nullptr, 0, DefaultVis, 0,
234 "Add new symbol <name> to .symtab. Accepted flags: global, local, weak, default, hidden, protected, file, section, object, function, indirect-function. Accepted but ignored for compatibility: debug, constructor, warning, indirect, synthetic, unique-object, before", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name=[section:]value[,flags]", nullptr)
235OPTION(3, 113 /* --add-symbol */, add_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name=[section:]value[,flags]", nullptr)
236OPTION(3, 126 /* --adjust-section-vma */, adjust_section_vma, JoinedOrSeparate, INVALID, change_section_address, nullptr, 0, DefaultVis, 0,
237 "Alias for --change-section-address", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
238OPTION(3, 147 /* --adjust-start */, adjust_start, JoinedOrSeparate, INVALID, change_start, nullptr, 0, DefaultVis, 0,
239 "Alias for --change-start", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
240OPTION(3, 162 /* --allow-broken-links */, allow_broken_links, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
241 "Allow the tool to remove sections even if it would leave invalid section references. The appropriate sh_link fields will be set to zero.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
242OPTION(3, 183 /* --binary-architecture= */, binary_architecture_eq, Joined, INVALID, binary_architecture, nullptr, 0, DefaultVis, 0,
243 "Ignored for compatibility", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
244OPTION(3, 206 /* --binary-architecture */, binary_architecture, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
245OPTION(1, 228 /* -B */, B, JoinedOrSeparate, INVALID, binary_architecture, nullptr, 0, DefaultVis, 0,
246 "Alias for --binary-architecture", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
247OPTION(3, 231 /* --change-section-address= */, change_section_address_eq, Joined, INVALID, change_section_address, nullptr, 0, DefaultVis, 0,
248 "Set the address of the <section> to, or adjust it by, <val>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "sectionpattern{=|+|-}val", nullptr)
249OPTION(3, 257 /* --change-section-address */, change_section_address, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "sectionpattern{=|+|-}val", nullptr)
250OPTION(3, 282 /* --change-section-lma= */, change_section_lma_eq, Joined, INVALID, change_section_lma, nullptr, 0, DefaultVis, 0,
251 "Shift LMA of non-zero-sized sections in the program header by <val>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "*{+|-}val", nullptr)
252OPTION(3, 304 /* --change-section-lma */, change_section_lma, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "*{+|-}val", nullptr)
253OPTION(3, 325 /* --change-start= */, change_start_eq, Joined, INVALID, change_start, nullptr, 0, DefaultVis, 0,
254 "Add <incr> to the start address. Can be specified multiple times, all values will be applied cumulatively", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "incr", nullptr)
255OPTION(3, 341 /* --change-start */, change_start, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "incr", nullptr)
256OPTION(3, 356 /* --compress-debug-sections= */, compress_debug_sections, Joined, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
257 "Compress DWARF debug sections using specified format. Supported formats: zlib, zstd. Select zlib if <format> is omitted", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "format", nullptr)
258OPTION(3, 383 /* --compress-debug-sections */, anonymous_0, Flag, INVALID, compress_debug_sections, "zlib\0", 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
259OPTION(3, 409 /* --compress-sections= */, compress_sections_eq, Joined, INVALID, compress_sections, nullptr, 0, DefaultVis, 0,
260 "Compress or decompress sections using specified format. Supported formats: zlib, zstd. Specify 'none' for decompression", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "<section-glob>=<format>", nullptr)
261OPTION(3, 430 /* --compress-sections */, compress_sections, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "<section-glob>=<format>", nullptr)
262OPTION(3, 450 /* --decompress-debug-sections */, decompress_debug_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
263 "Decompress DWARF debug sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
264OPTION(3, 478 /* --disable-deterministic-archives */, disable_deterministic_archives, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
265 "Disable deterministic mode when operating on archives (use real values for UIDs, GIDs, and timestamps).", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
266OPTION(3, 511 /* --discard-all */, discard_all, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
267 "Remove most local symbols. Different file formats may limit this to a subset. For ELF, file and section symbols are not discarded. Additionally, remove all debug sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
268OPTION(3, 525 /* --discard-locals */, discard_locals, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
269 "Remove local symbols starting with .L", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
270OPTION(3, 542 /* --dump-section= */, dump_section_eq, Joined, INVALID, dump_section, nullptr, 0, DefaultVis, 0,
271 "Dump contents of section named <section> into file <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=file", nullptr)
272OPTION(3, 558 /* --dump-section */, dump_section, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=file", nullptr)
273OPTION(1, 573 /* -D */, D, Flag, INVALID, enable_deterministic_archives, nullptr, 0, DefaultVis, 0,
274 "Alias for --enable-deterministic-archives", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
275OPTION(3, 576 /* --enable-deterministic-archives */, enable_deterministic_archives, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
276 "Enable deterministic mode when operating on archives (use zero for UIDs, GIDs, and timestamps).", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
277OPTION(3, 608 /* --extract-dwo */, extract_dwo, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
278 "Remove all sections that are not DWARF .dwo sections from file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
279OPTION(3, 622 /* --extract-main-partition */, extract_main_partition, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
280 "Extract main partition from the input file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
281OPTION(3, 647 /* --extract-partition= */, extract_partition_eq, Joined, INVALID, extract_partition, nullptr, 0, DefaultVis, 0,
282 "Extract named partition from input file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name", nullptr)
283OPTION(3, 668 /* --extract-partition */, extract_partition, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name", nullptr)
284OPTION(1, 688 /* -F */, F, JoinedOrSeparate, INVALID, target, nullptr, 0, DefaultVis, 0,
285 "Alias for --target", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
286OPTION(3, 691 /* --gap-fill= */, gap_fill_eq, Joined, INVALID, gap_fill, nullptr, 0, DefaultVis, 0,
287 "Fill the gaps between sections with <value> instead of zero. <value> must be an unsigned 8-bit integer. This option is only supported for ELF input and binary output", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "value", nullptr)
288OPTION(3, 703 /* --gap-fill */, gap_fill, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "value", nullptr)
289OPTION(3, 714 /* --globalize-symbol= */, globalize_symbol_eq, Joined, INVALID, globalize_symbol, nullptr, 0, DefaultVis, 0,
290 "Mark <symbol> as global", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
291OPTION(3, 734 /* --globalize-symbols= */, globalize_symbols_eq, Joined, INVALID, globalize_symbols, nullptr, 0, DefaultVis, 0,
292 "Read a list of symbols from <filename> and mark defined symbols with those names as global", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
293OPTION(3, 755 /* --globalize-symbols */, globalize_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
294OPTION(3, 775 /* --globalize-symbol */, globalize_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
295OPTION(1, 794 /* -G */, G, JoinedOrSeparate, INVALID, keep_global_symbol, nullptr, 0, DefaultVis, 0,
296 "Alias for --keep-global-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
297OPTION(1, 797 /* -g */, g, Flag, INVALID, strip_debug, nullptr, 0, DefaultVis, 0,
298 "Alias for --strip-debug", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
299OPTION(3, 800 /* --help */, help, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
300OPTION(1, 807 /* -h */, h, Flag, INVALID, help, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
301OPTION(3, 810 /* --input-target= */, input_target_eq, Joined, INVALID, input_target, nullptr, 0, DefaultVis, 0,
302 "Read the input as the specified format", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "format", nullptr)
303OPTION(3, 826 /* --input-target */, input_target, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "format", nullptr)
304OPTION(1, 841 /* -I */, I, JoinedOrSeparate, INVALID, input_target, nullptr, 0, DefaultVis, 0,
305 "Alias for --input-target", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
306OPTION(1, 844 /* -j */, j, JoinedOrSeparate, INVALID, only_section, nullptr, 0, DefaultVis, 0,
307 "Alias for --only-section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
308OPTION(3, 847 /* --keep-file-symbols */, keep_file_symbols, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
309 "Keep symbols of type STT_FILE, even if they would otherwise be stripped", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
310OPTION(3, 867 /* --keep-global-symbol= */, keep_global_symbol_eq, Joined, INVALID, keep_global_symbol, nullptr, 0, DefaultVis, 0,
311 "Mark all symbols local, except for symbols with the name <symbol>. Can be specified multiple times to ignore multiple symbols", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
312OPTION(3, 889 /* --keep-global-symbols= */, keep_global_symbols_eq, Joined, INVALID, keep_global_symbols, nullptr, 0, DefaultVis, 0,
313 "Read a list of symbols from <filename> and run as if --keep-global-symbol=<symbol> is set for each one. <filename> contains one symbol per line and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
314OPTION(3, 912 /* --keep-global-symbols */, keep_global_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
315OPTION(3, 934 /* --keep-global-symbol */, keep_global_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
316OPTION(3, 955 /* --keep-section= */, keep_section_eq, Joined, INVALID, keep_section, nullptr, 0, DefaultVis, 0,
317 "Keep <section>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section", nullptr)
318OPTION(3, 971 /* --keep-section */, keep_section, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section", nullptr)
319OPTION(3, 986 /* --keep-symbol= */, keep_symbol_eq, Joined, INVALID, keep_symbol, nullptr, 0, DefaultVis, 0,
320 "When removing symbols, do not remove <symbol>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
321OPTION(3, 1001 /* --keep-symbols= */, keep_symbols_eq, Joined, INVALID, keep_symbols, nullptr, 0, DefaultVis, 0,
322 "Read a list of symbols from <filename> and run as if --keep-symbol=<symbol> is set for each one. <filename> contains one symbol per line and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
323OPTION(3, 1017 /* --keep-symbols */, keep_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
324OPTION(3, 1032 /* --keep-symbol */, keep_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
325OPTION(3, 1046 /* --keep-undefined */, keep_undefined, Flag, grp_macho, INVALID, nullptr, 0, DefaultVis, 0,
326 "Do not remove undefined symbols", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
327OPTION(1, 1063 /* -K */, K, JoinedOrSeparate, INVALID, keep_symbol, nullptr, 0, DefaultVis, 0,
328 "Alias for --keep-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
329OPTION(3, 1066 /* --localize-hidden */, localize_hidden, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
330 "Mark all symbols that have hidden or internal visibility as local", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
331OPTION(3, 1084 /* --localize-symbol= */, localize_symbol_eq, Joined, INVALID, localize_symbol, nullptr, 0, DefaultVis, 0,
332 "Mark any defined non-common symbol named <symbol> as local", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
333OPTION(3, 1103 /* --localize-symbols= */, localize_symbols_eq, Joined, INVALID, localize_symbols, nullptr, 0, DefaultVis, 0,
334 "Read a list of names from <filename> and mark any defined non-common symbols with those names as local", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
335OPTION(3, 1123 /* --localize-symbols */, localize_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
336OPTION(3, 1142 /* --localize-symbol */, localize_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
337OPTION(1, 1160 /* -L */, L, JoinedOrSeparate, INVALID, localize_symbol, nullptr, 0, DefaultVis, 0,
338 "Alias for --localize-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
339OPTION(3, 1163 /* --new-symbol-visibility= */, new_symbol_visibility_eq, Joined, INVALID, new_symbol_visibility, nullptr, 0, DefaultVis, 0,
340 "Specify the visibility of symbols automatically created when using binary input or --add-symbol. The default is 'default'", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
341OPTION(3, 1188 /* --new-symbol-visibility */, new_symbol_visibility, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
342OPTION(3, 1212 /* --no-verify-note-sections */, no_verify_note_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
343 "Don't validate note sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
344OPTION(1, 1238 /* -N */, N, JoinedOrSeparate, INVALID, strip_symbol, nullptr, 0, DefaultVis, 0,
345 "Alias for --strip-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
346OPTION(3, 1241 /* --only-keep-debug */, only_keep_debug, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
347 "Produce a debug file as the output that only preserves contents of sections useful for debugging purposes", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
348OPTION(3, 1259 /* --only-section= */, only_section_eq, Joined, INVALID, only_section, nullptr, 0, DefaultVis, 0,
349 "Remove all but <section>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section", nullptr)
350OPTION(3, 1275 /* --only-section */, only_section, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section", nullptr)
351OPTION(3, 1290 /* --output-target= */, output_target_eq, Joined, INVALID, output_target, nullptr, 0, DefaultVis, 0,
352 "Write the output as the specified format", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "format", nullptr)
353OPTION(3, 1307 /* --output-target */, output_target, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "format", nullptr)
354OPTION(1, 1323 /* -O */, O, JoinedOrSeparate, INVALID, output_target, nullptr, 0, DefaultVis, 0,
355 "Alias for --output-target", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
356OPTION(3, 1326 /* --pad-to= */, pad_to_eq, Joined, INVALID, pad_to, nullptr, 0, DefaultVis, 0,
357 "Pad the output up to the load address <address>, using a value of zero or the value specified by the --gap-fill option. This option is only supported for ELF input and binary output", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "address", nullptr)
358OPTION(3, 1336 /* --pad-to */, pad_to, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "address", nullptr)
359OPTION(3, 1345 /* --prefix-alloc-sections= */, prefix_alloc_sections_eq, Joined, INVALID, prefix_alloc_sections, nullptr, 0, DefaultVis, 0,
360 "Add <prefix> to the start of every allocated section name", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "prefix", nullptr)
361OPTION(3, 1370 /* --prefix-alloc-sections */, prefix_alloc_sections, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "prefix", nullptr)
362OPTION(3, 1394 /* --prefix-symbols= */, prefix_symbols_eq, Joined, INVALID, prefix_symbols, nullptr, 0, DefaultVis, 0,
363 "Add <prefix> to the start of every symbol name", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "prefix", nullptr)
364OPTION(3, 1412 /* --prefix-symbols */, prefix_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "prefix", nullptr)
365OPTION(3, 1429 /* --preserve-dates */, preserve_dates, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
366 "Preserve access and modification timestamps", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
367OPTION(1, 1446 /* -p */, p, Flag, INVALID, preserve_dates, nullptr, 0, DefaultVis, 0,
368 "Alias for --preserve-dates", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
369OPTION(3, 1449 /* --redefine-sym= */, redefine_symbol_eq, Joined, INVALID, redefine_symbol, nullptr, 0, DefaultVis, 0,
370 "Change the name of a symbol old to new", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "old=new", nullptr)
371OPTION(3, 1465 /* --redefine-syms= */, redefine_symbols_eq, Joined, INVALID, redefine_symbols, nullptr, 0, DefaultVis, 0,
372 "Read a list of symbol pairs from <filename> and run as if --redefine-sym=<old>=<new> is set for each one. <filename> contains two symbols per line separated with whitespace and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
373OPTION(3, 1482 /* --redefine-syms */, redefine_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
374OPTION(3, 1498 /* --redefine-sym */, redefine_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "old=new", nullptr)
375OPTION(3, 1513 /* --regex */, regex, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
376 "Permit regular expressions in name comparison", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
377OPTION(3, 1521 /* --remove-note= */, remove_note_eq, Joined, INVALID, remove_note, nullptr, 0, DefaultVis, 0,
378 "Remove note(s) with <type_id> and optional <name>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "[name/]type_id", nullptr)
379OPTION(3, 1536 /* --remove-note */, remove_note, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "[name/]type_id", nullptr)
380OPTION(3, 1550 /* --remove-section= */, remove_section_eq, Joined, INVALID, remove_section, nullptr, 0, DefaultVis, 0,
381 "Remove <section>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section", nullptr)
382OPTION(3, 1568 /* --remove-section */, remove_section, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section", nullptr)
383OPTION(3, 1585 /* --remove-symbol-prefix= */, remove_symbol_prefix_eq, Joined, INVALID, remove_symbol_prefix, nullptr, 0, DefaultVis, 0,
384 "Remove <prefix> from the start of every symbol name. No-op for symbols that do not start with <prefix>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "prefix", nullptr)
385OPTION(3, 1609 /* --remove-symbol-prefix */, remove_symbol_prefix, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "prefix", nullptr)
386OPTION(3, 1632 /* --rename-section= */, rename_section_eq, Joined, INVALID, rename_section, nullptr, 0, DefaultVis, 0,
387 "Rename sections called <old> to <new>, and apply any specified <flag> values. See --set-section-flags for a list of supported flags", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "old=new[,flag1,...]", nullptr)
388OPTION(3, 1650 /* --rename-section */, rename_section, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "old=new[,flag1,...]", nullptr)
389OPTION(1, 1667 /* -R */, R, JoinedOrSeparate, INVALID, remove_section, nullptr, 0, DefaultVis, 0,
390 "Alias for --remove-section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
391OPTION(3, 1670 /* --set-section-alignment= */, set_section_alignment_eq, Joined, INVALID, set_section_alignment, nullptr, 0, DefaultVis, 0,
392 "Set alignment for a given section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=align", nullptr)
393OPTION(3, 1695 /* --set-section-alignment */, set_section_alignment, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=align", nullptr)
394OPTION(3, 1719 /* --set-section-flags= */, set_section_flags_eq, Joined, INVALID, set_section_flags, nullptr, 0, DefaultVis, 0,
395 "Set section properties based on the specified <flags>. Supported flag names are: alloc, load, noload, readonly, exclude, debug, code, data, rom, share, contents, merge, strings, large", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=flag1[,flag2,...]", nullptr)
396OPTION(3, 1740 /* --set-section-flags */, set_section_flags, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=flag1[,flag2,...]", nullptr)
397OPTION(3, 1760 /* --set-section-type= */, set_section_type_eq, Joined, INVALID, set_section_type, nullptr, 0, DefaultVis, 0,
398 "Set the type of section <section> to the integer <type>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=type", nullptr)
399OPTION(3, 1780 /* --set-section-type */, set_section_type, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "section=type", nullptr)
400OPTION(3, 1799 /* --set-start= */, set_start_eq, Joined, INVALID, set_start, nullptr, 0, DefaultVis, 0,
401 "Set the start address to <addr>. Overrides any previous --change-start or --adjust-start values", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "addr", nullptr)
402OPTION(3, 1812 /* --set-start */, set_start, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "addr", nullptr)
403OPTION(3, 1824 /* --set-symbol-visibility= */, set_symbol_visibility_eq, Joined, INVALID, set_symbol_visibility, nullptr, 0, DefaultVis, 0,
404 "Change the visibility of a symbol to the specified value", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol=visibility", nullptr)
405OPTION(3, 1849 /* --set-symbol-visibility */, set_symbol_visibility, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol=visibility", nullptr)
406OPTION(3, 1873 /* --set-symbols-visibility= */, set_symbols_visibility_eq, Joined, INVALID, set_symbols_visibility, nullptr, 0, DefaultVis, 0,
407 "Read a list of symbols from <filename> and change their visibility to the specified value. Visibility values: default, internal, hidden, protected", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename=visibility", nullptr)
408OPTION(3, 1899 /* --set-symbols-visibility */, set_symbols_visibility, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename=visibility", nullptr)
409OPTION(3, 1924 /* --skip-symbol= */, skip_symbol_eq, Joined, INVALID, skip_symbol, nullptr, 0, DefaultVis, 0,
410 "Do not change parameters of symbol <symbol> when executing other options that can change the symbol's name, binding or visibility", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
411OPTION(3, 1939 /* --skip-symbols= */, skip_symbols_eq, Joined, INVALID, skip_symbols, nullptr, 0, DefaultVis, 0,
412 "Read a list of symbols from <filename> and run as if --skip-symbol=<symbol> is set for each one. <filename> contains one symbol per line and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
413OPTION(3, 1955 /* --skip-symbols */, skip_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
414OPTION(3, 1970 /* --skip-symbol */, skip_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
415OPTION(3, 1984 /* --split-dwo= */, split_dwo_eq, Joined, INVALID, split_dwo, nullptr, 0, DefaultVis, 0,
416 "Equivalent to --extract-dwo and <dwo-file> as the output file and no other options, and then --strip-dwo on the input file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "dwo-file", nullptr)
417OPTION(3, 1997 /* --split-dwo */, split_dwo, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "dwo-file", nullptr)
418OPTION(3, 2009 /* --strip-all-gnu */, strip_all_gnu, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
419 "Remove all symbols, debug sections and relocations. Compatible with GNU's --strip-all", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
420OPTION(3, 2025 /* --strip-all */, strip_all, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
421 "For ELF, remove all symbols and non-alloc sections not within segments, except for .gnu.warning*, .ARM.attribute, and the section name table. For COFF and Mach-O, remove all symbols, debug sections, and relocations", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
422OPTION(3, 2037 /* --strip-debug */, strip_debug, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
423 "Remove all debug sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
424OPTION(3, 2051 /* --strip-dwo */, strip_dwo, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
425 "Remove all DWARF .dwo sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
426OPTION(3, 2063 /* --strip-non-alloc */, strip_non_alloc, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
427 "Remove all non-allocated sections that are not within segments", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
428OPTION(3, 2081 /* --strip-sections */, strip_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
429 "Remove all section headers and all section data not within segments", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
430OPTION(3, 2098 /* --strip-symbol= */, strip_symbol_eq, Joined, INVALID, strip_symbol, nullptr, 0, DefaultVis, 0,
431 "Strip <symbol>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
432OPTION(3, 2114 /* --strip-symbols= */, strip_symbols_eq, Joined, INVALID, strip_symbols, nullptr, 0, DefaultVis, 0,
433 "Remove all symbols whose names appear in the file <filename>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
434OPTION(3, 2131 /* --strip-symbols */, strip_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
435OPTION(3, 2147 /* --strip-symbol */, strip_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
436OPTION(3, 2162 /* --strip-unneeded-symbol= */, strip_unneeded_symbol_eq, Joined, INVALID, strip_unneeded_symbol, nullptr, 0, DefaultVis, 0,
437 "Remove all symbols named <symbol> that are local or undefined and are not required by any relocation", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
438OPTION(3, 2187 /* --strip-unneeded-symbols= */, strip_unneeded_symbols_eq, Joined, INVALID, strip_unneeded_symbols, nullptr, 0, DefaultVis, 0,
439 "Remove all symbols whose names appear in the file <file>, if they are local or undefined and are not required by any relocation", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
440OPTION(3, 2213 /* --strip-unneeded-symbols */, strip_unneeded_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
441OPTION(3, 2238 /* --strip-unneeded-symbol */, strip_unneeded_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
442OPTION(3, 2262 /* --strip-unneeded */, strip_unneeded, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
443 "Remove all symbols not needed by relocations", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
444OPTION(3, 2279 /* --subsystem= */, subsystem_eq, Joined, grp_coff, subsystem, nullptr, 0, DefaultVis, 0,
445 "Set the PE subsystem, and optionally subsystem version", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name[:version]", nullptr)
446OPTION(3, 2292 /* --subsystem */, subsystem, Separate, grp_coff, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name[:version]", nullptr)
447OPTION(1, 2304 /* -S */, S, Flag, INVALID, strip_all, nullptr, 0, DefaultVis, 0,
448 "Alias for --strip-all", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
449OPTION(3, 2307 /* --target= */, target_eq, Joined, INVALID, target, nullptr, 0, DefaultVis, 0,
450 "Equivalent to --input-target and --output-target for the specified format", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, "binary")
451OPTION(3, 2317 /* --target */, target, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, "binary")
452OPTION(3, 2326 /* --update-section= */, update_section_eq, Joined, INVALID, update_section, nullptr, 0, DefaultVis, 0,
453 "Replace the contents of section <name> with contents from a file <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name=file", nullptr)
454OPTION(3, 2344 /* --update-section */, update_section, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "name=file", nullptr)
455OPTION(1, 2361 /* -U */, U, Flag, INVALID, disable_deterministic_archives, nullptr, 0, DefaultVis, 0,
456 "Alias for --disable-deterministic-archives", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
457OPTION(3, 2364 /* --verify-note-sections */, verify_note_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
458 "Validate note sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
459OPTION(3, 2387 /* --version */, version, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
460 "Print the version and exit.", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
461OPTION(1, 2397 /* -V */, V, Flag, INVALID, version, nullptr, 0, DefaultVis, 0,
462 "Alias for --version", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
463OPTION(3, 2400 /* --weaken-symbol= */, weaken_symbol_eq, Joined, INVALID, weaken_symbol, nullptr, 0, DefaultVis, 0,
464 "Mark global symbols named <symbol> as weak", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
465OPTION(3, 2417 /* --weaken-symbols= */, weaken_symbols_eq, Joined, INVALID, weaken_symbols, nullptr, 0, DefaultVis, 0,
466 "Read a list of symbols from <filename> and mark global symbols with those names as weak", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
467OPTION(3, 2435 /* --weaken-symbols */, weaken_symbols, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "filename", nullptr)
468OPTION(3, 2452 /* --weaken-symbol */, weaken_symbol, Separate, INVALID, INVALID, nullptr, 0, DefaultVis, 0, nullptr, (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), "symbol", nullptr)
469OPTION(3, 2468 /* --weaken */, weaken, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
470 "Mark all defined global symbols as weak", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
471OPTION(3, 2477 /* --wildcard */, wildcard, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
472 "Allow wildcard syntax for symbol-related flags. Incompatible with --regex. Allows using '*' to match any number of characters, '?' to match any single character, '' to escape special characters, and '[]' to define character classes. Wildcards beginning with '!' will prevent a match, for example \"-N '*' -N '!x'\" will strip all symbols except for \"x\".", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
473OPTION(1, 2488 /* -W */, W, JoinedOrSeparate, INVALID, weaken_symbol, nullptr, 0, DefaultVis, 0,
474 "Alias for --weaken-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
475OPTION(1, 2491 /* -w */, w, Flag, INVALID, wildcard, nullptr, 0, DefaultVis, 0,
476 "Alias for --wildcard", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
477OPTION(1, 2494 /* -X */, X, Flag, INVALID, discard_locals, nullptr, 0, DefaultVis, 0,
478 "Alias for --discard-locals", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
479OPTION(1, 2497 /* -x */, x, Flag, INVALID, discard_all, nullptr, 0, DefaultVis, 0,
480 "Alias for --discard-all", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ {std::array<unsigned, 2>{{0, 0}}, nullptr} }}), nullptr, nullptr)
481#endif // OPTION
482
483#ifdef SIMPLE_ENUM_VALUE_TABLE
484
485struct SimpleEnumValue {
486 const char *Name;
487 unsigned Value;
488};
489
490struct SimpleEnumValueTable {
491 const SimpleEnumValue *Table;
492 unsigned Size;
493};
494static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
495static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
496#endif // SIMPLE_ENUM_VALUE_TABLE
497
498
499