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_2, {llvm::StringLiteral("-") COMMA llvm::StringLiteral("")})
16PREFIX(prefix_1, {llvm::StringLiteral("--") COMMA llvm::StringLiteral("")})
17#undef COMMA
18#endif // PREFIX
19
20/////////
21// Prefix Union
22
23#ifdef PREFIX_UNION
24#define COMMA ,
25PREFIX_UNION({
26llvm::StringLiteral("-") COMMA llvm::StringLiteral("--") COMMA llvm::StringLiteral("")})
27#undef COMMA
28#endif // PREFIX_UNION
29
30/////////
31// ValuesCode
32
33#ifdef OPTTABLE_VALUES_CODE
34#endif
35/////////
36// Groups
37
38#ifdef OPTION
39OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "kind", grp_coff, Group, INVALID, INVALID, nullptr, 0, 0, 0,
40 "OPTIONS (COFF specific)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
41OPTION(llvm::ArrayRef<llvm::StringLiteral>(), "kind", grp_macho, Group, INVALID, INVALID, nullptr, 0, 0, 0,
42 "OPTIONS (Mach-O specific)", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
43
44//////////
45// Options
46
47OPTION(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)
48OPTION(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)
49OPTION(prefix_1, "--add-gnu-debuglink=", add_gnu_debuglink_eq, Joined, INVALID, add_gnu_debuglink, nullptr, 0, DefaultVis, 0,
50 "Add a .gnu_debuglink for <debug-file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "debug-file", nullptr)
51OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "debug-file", nullptr)
52OPTION(prefix_1, "--add-section=", add_section_eq, Joined, INVALID, add_section, nullptr, 0, DefaultVis, 0,
53 "Add a section named <section> with 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) }}), "section=file", nullptr)
54OPTION(prefix_1, "--add-section", add_section, Separate, 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) }}), "section=file", nullptr)
55OPTION(prefix_1, "--add-symbol=", add_symbol_eq, Joined, INVALID, add_symbol, nullptr, 0, DefaultVis, 0,
56 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "name=[section:]value[,flags]", nullptr)
57OPTION(prefix_1, "--add-symbol", add_symbol, Separate, 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) }}), "name=[section:]value[,flags]", nullptr)
58OPTION(prefix_1, "--adjust-start", adjust_start, JoinedOrSeparate, INVALID, change_start, nullptr, 0, DefaultVis, 0,
59 "Alias for --change-start", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
60OPTION(prefix_1, "--allow-broken-links", allow_broken_links, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
61 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
62OPTION(prefix_1, "--binary-architecture=", binary_architecture_eq, Joined, INVALID, binary_architecture, nullptr, 0, DefaultVis, 0,
63 "Ignored for compatibility", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
64OPTION(prefix_1, "--binary-architecture", binary_architecture, Separate, 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)
65OPTION(prefix_2, "-B", B, JoinedOrSeparate, INVALID, binary_architecture, nullptr, 0, DefaultVis, 0,
66 "Alias for --binary-architecture", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
67OPTION(prefix_1, "--change-section-lma=", change_section_lma_eq, Joined, INVALID, change_section_lma, nullptr, 0, DefaultVis, 0,
68 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "*{+|-}val", nullptr)
69OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "*{+|-}val", nullptr)
70OPTION(prefix_1, "--change-start=", change_start_eq, Joined, INVALID, change_start, nullptr, 0, DefaultVis, 0,
71 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "incr", nullptr)
72OPTION(prefix_1, "--change-start", change_start, Separate, 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) }}), "incr", nullptr)
73OPTION(prefix_1, "--compress-debug-sections=", compress_debug_sections, Joined, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
74 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "format", nullptr)
75OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
76OPTION(prefix_1, "--compress-sections=", compress_sections_eq, Joined, INVALID, compress_sections, nullptr, 0, DefaultVis, 0,
77 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "<section-glob>=<format>", nullptr)
78OPTION(prefix_1, "--compress-sections", compress_sections, Separate, 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) }}), "<section-glob>=<format>", nullptr)
79OPTION(prefix_1, "--decompress-debug-sections", decompress_debug_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
80 "Decompress DWARF debug sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
81OPTION(prefix_1, "--disable-deterministic-archives", disable_deterministic_archives, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
82 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
83OPTION(prefix_1, "--discard-all", discard_all, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
84 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
85OPTION(prefix_1, "--discard-locals", discard_locals, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
86 "Remove local symbols starting with .L", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
87OPTION(prefix_1, "--dump-section=", dump_section_eq, Joined, INVALID, dump_section, nullptr, 0, DefaultVis, 0,
88 "Dump contents of section named <section> into file <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section=file", nullptr)
89OPTION(prefix_1, "--dump-section", dump_section, Separate, 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) }}), "section=file", nullptr)
90OPTION(prefix_2, "-D", D, Flag, INVALID, enable_deterministic_archives, nullptr, 0, DefaultVis, 0,
91 "Alias for --enable-deterministic-archives", (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, "--enable-deterministic-archives", enable_deterministic_archives, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
93 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
94OPTION(prefix_1, "--extract-dwo", extract_dwo, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
95 "Remove all sections that are not DWARF .dwo sections from file", (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, "--extract-main-partition", extract_main_partition, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
97 "Extract main partition from the input file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
98OPTION(prefix_1, "--extract-partition=", extract_partition_eq, Joined, INVALID, extract_partition, nullptr, 0, DefaultVis, 0,
99 "Extract named partition from input file", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "name", nullptr)
100OPTION(prefix_1, "--extract-partition", extract_partition, Separate, 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) }}), "name", nullptr)
101OPTION(prefix_2, "-F", F, JoinedOrSeparate, INVALID, target, nullptr, 0, DefaultVis, 0,
102 "Alias for --target", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
103OPTION(prefix_1, "--gap-fill=", gap_fill_eq, Joined, INVALID, gap_fill, nullptr, 0, DefaultVis, 0,
104 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "value", nullptr)
105OPTION(prefix_1, "--gap-fill", gap_fill, Separate, 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) }}), "value", nullptr)
106OPTION(prefix_1, "--globalize-symbol=", globalize_symbol_eq, Joined, INVALID, globalize_symbol, nullptr, 0, DefaultVis, 0,
107 "Mark <symbol> as global", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
108OPTION(prefix_1, "--globalize-symbols=", globalize_symbols_eq, Joined, INVALID, globalize_symbols, nullptr, 0, DefaultVis, 0,
109 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
110OPTION(prefix_1, "--globalize-symbols", globalize_symbols, Separate, 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) }}), "filename", nullptr)
111OPTION(prefix_1, "--globalize-symbol", globalize_symbol, Separate, 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) }}), "symbol", nullptr)
112OPTION(prefix_2, "-G", G, JoinedOrSeparate, INVALID, keep_global_symbol, nullptr, 0, DefaultVis, 0,
113 "Alias for --keep-global-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
114OPTION(prefix_2, "-g", g, Flag, INVALID, strip_debug, nullptr, 0, DefaultVis, 0,
115 "Alias for --strip-debug", (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, "--help", help, Flag, 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)
117OPTION(prefix_2, "-h", h, Flag, INVALID, help, 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)
118OPTION(prefix_1, "--input-target=", input_target_eq, Joined, INVALID, input_target, nullptr, 0, DefaultVis, 0,
119 "Read the input as the specified format", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "format", nullptr)
120OPTION(prefix_1, "--input-target", input_target, Separate, 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) }}), "format", nullptr)
121OPTION(prefix_2, "-I", I, JoinedOrSeparate, INVALID, input_target, nullptr, 0, DefaultVis, 0,
122 "Alias for --input-target", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
123OPTION(prefix_2, "-j", j, JoinedOrSeparate, INVALID, only_section, nullptr, 0, DefaultVis, 0,
124 "Alias for --only-section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
125OPTION(prefix_1, "--keep-file-symbols", keep_file_symbols, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
126 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
127OPTION(prefix_1, "--keep-global-symbol=", keep_global_symbol_eq, Joined, INVALID, keep_global_symbol, nullptr, 0, DefaultVis, 0,
128 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
129OPTION(prefix_1, "--keep-global-symbols=", keep_global_symbols_eq, Joined, INVALID, keep_global_symbols, nullptr, 0, DefaultVis, 0,
130 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
131OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
132OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
133OPTION(prefix_1, "--keep-section=", keep_section_eq, Joined, INVALID, keep_section, nullptr, 0, DefaultVis, 0,
134 "Keep <section>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section", nullptr)
135OPTION(prefix_1, "--keep-section", keep_section, Separate, 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) }}), "section", nullptr)
136OPTION(prefix_1, "--keep-symbol=", keep_symbol_eq, Joined, INVALID, keep_symbol, nullptr, 0, DefaultVis, 0,
137 "When removing symbols, do not remove <symbol>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
138OPTION(prefix_1, "--keep-symbols=", keep_symbols_eq, Joined, INVALID, keep_symbols, nullptr, 0, DefaultVis, 0,
139 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
140OPTION(prefix_1, "--keep-symbols", keep_symbols, Separate, 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) }}), "filename", nullptr)
141OPTION(prefix_1, "--keep-symbol", keep_symbol, Separate, 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) }}), "symbol", nullptr)
142OPTION(prefix_1, "--keep-undefined", keep_undefined, Flag, grp_macho, INVALID, nullptr, 0, DefaultVis, 0,
143 "Do not remove undefined symbols", (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_2, "-K", K, JoinedOrSeparate, INVALID, keep_symbol, nullptr, 0, DefaultVis, 0,
145 "Alias for --keep-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
146OPTION(prefix_1, "--localize-hidden", localize_hidden, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
147 "Mark all symbols that have hidden or internal visibility as local", (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_1, "--localize-symbol=", localize_symbol_eq, Joined, INVALID, localize_symbol, nullptr, 0, DefaultVis, 0,
149 "Mark any defined non-common symbol named <symbol> as local", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
150OPTION(prefix_1, "--localize-symbols=", localize_symbols_eq, Joined, INVALID, localize_symbols, nullptr, 0, DefaultVis, 0,
151 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
152OPTION(prefix_1, "--localize-symbols", localize_symbols, Separate, 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) }}), "filename", nullptr)
153OPTION(prefix_1, "--localize-symbol", localize_symbol, Separate, 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) }}), "symbol", nullptr)
154OPTION(prefix_2, "-L", L, JoinedOrSeparate, INVALID, localize_symbol, nullptr, 0, DefaultVis, 0,
155 "Alias for --localize-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
156OPTION(prefix_1, "--new-symbol-visibility=", new_symbol_visibility_eq, Joined, INVALID, new_symbol_visibility, nullptr, 0, DefaultVis, 0,
157 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
158OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
159OPTION(prefix_1, "--no-verify-note-sections", no_verify_note_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
160 "Don't validate note sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
161OPTION(prefix_2, "-N", N, JoinedOrSeparate, INVALID, strip_symbol, nullptr, 0, DefaultVis, 0,
162 "Alias for --strip-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
163OPTION(prefix_1, "--only-keep-debug", only_keep_debug, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
164 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
165OPTION(prefix_1, "--only-section=", only_section_eq, Joined, INVALID, only_section, nullptr, 0, DefaultVis, 0,
166 "Remove all but <section>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section", nullptr)
167OPTION(prefix_1, "--only-section", only_section, Separate, 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) }}), "section", nullptr)
168OPTION(prefix_1, "--output-target=", output_target_eq, Joined, INVALID, output_target, nullptr, 0, DefaultVis, 0,
169 "Write the output as the specified format", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "format", nullptr)
170OPTION(prefix_1, "--output-target", output_target, Separate, 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) }}), "format", nullptr)
171OPTION(prefix_2, "-O", O, JoinedOrSeparate, INVALID, output_target, nullptr, 0, DefaultVis, 0,
172 "Alias for --output-target", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
173OPTION(prefix_1, "--pad-to=", pad_to_eq, Joined, INVALID, pad_to, nullptr, 0, DefaultVis, 0,
174 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "address", nullptr)
175OPTION(prefix_1, "--pad-to", pad_to, Separate, 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) }}), "address", nullptr)
176OPTION(prefix_1, "--prefix-alloc-sections=", prefix_alloc_sections_eq, Joined, INVALID, prefix_alloc_sections, nullptr, 0, DefaultVis, 0,
177 "Add <prefix> to the start of every allocated section name", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "prefix", nullptr)
178OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "prefix", nullptr)
179OPTION(prefix_1, "--prefix-symbols=", prefix_symbols_eq, Joined, INVALID, prefix_symbols, nullptr, 0, DefaultVis, 0,
180 "Add <prefix> to the start of every symbol name", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "prefix", nullptr)
181OPTION(prefix_1, "--prefix-symbols", prefix_symbols, Separate, 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) }}), "prefix", nullptr)
182OPTION(prefix_1, "--preserve-dates", preserve_dates, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
183 "Preserve access and modification timestamps", (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_2, "-p", p, Flag, INVALID, preserve_dates, nullptr, 0, DefaultVis, 0,
185 "Alias for --preserve-dates", (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, "--redefine-sym=", redefine_symbol_eq, Joined, INVALID, redefine_symbol, nullptr, 0, DefaultVis, 0,
187 "Change the name of a symbol old to new", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "old=new", nullptr)
188OPTION(prefix_1, "--redefine-syms=", redefine_symbols_eq, Joined, INVALID, redefine_symbols, nullptr, 0, DefaultVis, 0,
189 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
190OPTION(prefix_1, "--redefine-syms", redefine_symbols, Separate, 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) }}), "filename", nullptr)
191OPTION(prefix_1, "--redefine-sym", redefine_symbol, Separate, 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) }}), "old=new", nullptr)
192OPTION(prefix_1, "--regex", regex, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
193 "Permit regular expressions in name comparison", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
194OPTION(prefix_1, "--remove-section=", remove_section_eq, Joined, INVALID, remove_section, nullptr, 0, DefaultVis, 0,
195 "Remove <section>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section", nullptr)
196OPTION(prefix_1, "--remove-section", remove_section, Separate, 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) }}), "section", nullptr)
197OPTION(prefix_1, "--remove-symbol-prefix=", remove_symbol_prefix_eq, Joined, INVALID, remove_symbol_prefix, nullptr, 0, DefaultVis, 0,
198 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "prefix", nullptr)
199OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "prefix", nullptr)
200OPTION(prefix_1, "--rename-section=", rename_section_eq, Joined, INVALID, rename_section, nullptr, 0, DefaultVis, 0,
201 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "old=new[,flag1,...]", nullptr)
202OPTION(prefix_1, "--rename-section", rename_section, Separate, 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) }}), "old=new[,flag1,...]", nullptr)
203OPTION(prefix_2, "-R", R, JoinedOrSeparate, INVALID, remove_section, nullptr, 0, DefaultVis, 0,
204 "Alias for --remove-section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
205OPTION(prefix_1, "--set-section-alignment=", set_section_alignment_eq, Joined, INVALID, set_section_alignment, nullptr, 0, DefaultVis, 0,
206 "Set alignment for a given section", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section=align", nullptr)
207OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section=align", nullptr)
208OPTION(prefix_1, "--set-section-flags=", set_section_flags_eq, Joined, INVALID, set_section_flags, nullptr, 0, DefaultVis, 0,
209 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section=flag1[,flag2,...]", nullptr)
210OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section=flag1[,flag2,...]", nullptr)
211OPTION(prefix_1, "--set-section-type=", set_section_type_eq, Joined, INVALID, set_section_type, nullptr, 0, DefaultVis, 0,
212 "Set the type of section <section> to the integer <type>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section=type", nullptr)
213OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "section=type", nullptr)
214OPTION(prefix_1, "--set-start=", set_start_eq, Joined, INVALID, set_start, nullptr, 0, DefaultVis, 0,
215 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "addr", nullptr)
216OPTION(prefix_1, "--set-start", set_start, Separate, 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) }}), "addr", nullptr)
217OPTION(prefix_1, "--set-symbol-visibility=", set_symbol_visibility_eq, Joined, INVALID, set_symbol_visibility, nullptr, 0, DefaultVis, 0,
218 "Change the visibility of a symbol to the specified value", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol=visibility", nullptr)
219OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol=visibility", nullptr)
220OPTION(prefix_1, "--set-symbols-visibility=", set_symbols_visibility_eq, Joined, INVALID, set_symbols_visibility, nullptr, 0, DefaultVis, 0,
221 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename=visibility", nullptr)
222OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename=visibility", nullptr)
223OPTION(prefix_1, "--skip-symbol=", skip_symbol_eq, Joined, INVALID, skip_symbol, nullptr, 0, DefaultVis, 0,
224 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
225OPTION(prefix_1, "--skip-symbols=", skip_symbols_eq, Joined, INVALID, skip_symbols, nullptr, 0, DefaultVis, 0,
226 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
227OPTION(prefix_1, "--skip-symbols", skip_symbols, Separate, 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) }}), "filename", nullptr)
228OPTION(prefix_1, "--skip-symbol", skip_symbol, Separate, 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) }}), "symbol", nullptr)
229OPTION(prefix_1, "--split-dwo=", split_dwo_eq, Joined, INVALID, split_dwo, nullptr, 0, DefaultVis, 0,
230 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "dwo-file", nullptr)
231OPTION(prefix_1, "--split-dwo", split_dwo, Separate, 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) }}), "dwo-file", nullptr)
232OPTION(prefix_1, "--strip-all-gnu", strip_all_gnu, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
233 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
234OPTION(prefix_1, "--strip-all", strip_all, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
235 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
236OPTION(prefix_1, "--strip-debug", strip_debug, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
237 "Remove all debug sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
238OPTION(prefix_1, "--strip-dwo", strip_dwo, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
239 "Remove all DWARF .dwo sections", (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, "--strip-non-alloc", strip_non_alloc, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
241 "Remove all non-allocated sections that are not within segments", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
242OPTION(prefix_1, "--strip-sections", strip_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
243 "Remove all section headers and all section data not within segments", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
244OPTION(prefix_1, "--strip-symbol=", strip_symbol_eq, Joined, INVALID, strip_symbol, nullptr, 0, DefaultVis, 0,
245 "Strip <symbol>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
246OPTION(prefix_1, "--strip-symbols=", strip_symbols_eq, Joined, INVALID, strip_symbols, nullptr, 0, DefaultVis, 0,
247 "Remove all symbols whose names appear in the file <filename>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
248OPTION(prefix_1, "--strip-symbols", strip_symbols, Separate, 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) }}), "filename", nullptr)
249OPTION(prefix_1, "--strip-symbol", strip_symbol, Separate, 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) }}), "symbol", nullptr)
250OPTION(prefix_1, "--strip-unneeded-symbol=", strip_unneeded_symbol_eq, Joined, INVALID, strip_unneeded_symbol, nullptr, 0, DefaultVis, 0,
251 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
252OPTION(prefix_1, "--strip-unneeded-symbols=", strip_unneeded_symbols_eq, Joined, INVALID, strip_unneeded_symbols, nullptr, 0, DefaultVis, 0,
253 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
254OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
255OPTION(prefix_1, "--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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
256OPTION(prefix_1, "--strip-unneeded", strip_unneeded, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
257 "Remove all symbols not needed by relocations", (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, "--subsystem=", subsystem_eq, Joined, grp_coff, subsystem, nullptr, 0, DefaultVis, 0,
259 "Set the PE subsystem, and optionally subsystem version", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "name[:version]", nullptr)
260OPTION(prefix_1, "--subsystem", subsystem, Separate, grp_coff, 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) }}), "name[:version]", nullptr)
261OPTION(prefix_2, "-S", S, Flag, INVALID, strip_all, nullptr, 0, DefaultVis, 0,
262 "Alias for --strip-all", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
263OPTION(prefix_1, "--target=", target_eq, Joined, INVALID, target, nullptr, 0, DefaultVis, 0,
264 "Equivalent to --input-target and --output-target for the specified format", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, "binary")
265OPTION(prefix_1, "--target", target, Separate, 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, "binary")
266OPTION(prefix_1, "--update-section=", update_section_eq, Joined, INVALID, update_section, nullptr, 0, DefaultVis, 0,
267 "Replace the contents of section <name> with contents from a file <file>", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "name=file", nullptr)
268OPTION(prefix_1, "--update-section", update_section, Separate, 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) }}), "name=file", nullptr)
269OPTION(prefix_2, "-U", U, Flag, INVALID, disable_deterministic_archives, nullptr, 0, DefaultVis, 0,
270 "Alias for --disable-deterministic-archives", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
271OPTION(prefix_1, "--verify-note-sections", verify_note_sections, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
272 "Validate note sections", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
273OPTION(prefix_1, "--version", version, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
274 "Print the version 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)
275OPTION(prefix_2, "-V", V, Flag, INVALID, version, nullptr, 0, DefaultVis, 0,
276 "Alias for --version", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
277OPTION(prefix_1, "--weaken-symbol=", weaken_symbol_eq, Joined, INVALID, weaken_symbol, nullptr, 0, DefaultVis, 0,
278 "Mark global symbols named <symbol> as weak", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "symbol", nullptr)
279OPTION(prefix_1, "--weaken-symbols=", weaken_symbols_eq, Joined, INVALID, weaken_symbols, nullptr, 0, DefaultVis, 0,
280 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), "filename", nullptr)
281OPTION(prefix_1, "--weaken-symbols", weaken_symbols, Separate, 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) }}), "filename", nullptr)
282OPTION(prefix_1, "--weaken-symbol", weaken_symbol, Separate, 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) }}), "symbol", nullptr)
283OPTION(prefix_1, "--weaken", weaken, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
284 "Mark all defined global symbols as weak", (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, "--wildcard", wildcard, Flag, INVALID, INVALID, nullptr, 0, DefaultVis, 0,
286 "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::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
287OPTION(prefix_2, "-W", W, JoinedOrSeparate, INVALID, weaken_symbol, nullptr, 0, DefaultVis, 0,
288 "Alias for --weaken-symbol", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
289OPTION(prefix_2, "-w", w, Flag, INVALID, wildcard, nullptr, 0, DefaultVis, 0,
290 "Alias for --wildcard", (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, "-X", X, Flag, INVALID, discard_locals, nullptr, 0, DefaultVis, 0,
292 "Alias for --discard-locals", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
293OPTION(prefix_2, "-x", x, Flag, INVALID, discard_all, nullptr, 0, DefaultVis, 0,
294 "Alias for --discard-all", (std::array<std::pair<std::array<unsigned, 2>, const char*>, 1>{{ std::make_pair(std::array<unsigned, 2>{{0, 0}}, nullptr) }}), nullptr, nullptr)
295#endif // OPTION
296
297#ifdef SIMPLE_ENUM_VALUE_TABLE
298
299struct SimpleEnumValue {
300 const char *Name;
301 unsigned Value;
302};
303
304struct SimpleEnumValueTable {
305 const SimpleEnumValue *Table;
306 unsigned Size;
307};
308static const SimpleEnumValueTable SimpleEnumValueTables[] = {};
309static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables);
310#endif // SIMPLE_ENUM_VALUE_TABLE
311
312
313