Go to the documentation of this file.
24 "--validate-goto-model",
81 "--major-image-version",
83 "--major-subsystem-version",
84 "--minor-image-version",
86 "--minor-subsystem-version",
88 "--retain-symbols-file",
91 "--section-alignment",
93 "--spare-dynamic-tags",
102 "--unresolved-symbols",
103 "--version-exports-section",
110 "--macosx_version_min",
123 "--no-export-dynamic",
146 "--no-strip-discarded",
163 "--accept-unknown-input-arch",
164 "--no-accept-unknown-input-arch",
177 "--Bsymbolic-functions",
179 "--no-check-sections",
180 "--copy-dt-needed-entries",
181 "--no-copy-dt-needed-entries",
186 "--no-fatal-warnings",
187 "--force-exe-suffix",
190 "--print-gc-sections",
191 "--no-print-gc-sections",
193 "--no-define-common",
197 "--allow-shlib-undefined",
198 "--no-allow-shlib-undefined",
199 "--allow-multiple-definition",
200 "--no-undefined-version",
202 "--default-imported-symver",
203 "--no-warn-mismatch",
204 "--no-warn-search-mismatch",
205 "--no-whole-archive",
209 "--print-output-format",
211 "--reduce-memory-overheads",
224 "--traditional-format",
228 "--dynamic-list-data",
229 "--dynamic-list-cpp-new",
230 "--dynamic-list-cpp-typeinfo",
232 "--warn-constructors",
233 "--warn-multiple-gp",
235 "--warn-section-align",
236 "--warn-shared-textrel",
237 "--warn-alternate-em",
238 "--warn-unresolved-symbols",
239 "--error-unresolved-symbols",
243 "--enable-new-dtags",
259 for(
int i=1; i<argc; i++)
261 std::string argv_i=argv[i];
280 *o!=
nullptr && !found;
287 (os.size()>=3 && os[0]==
'-' && os[1]==
'-' &&
"-"+argv_i==os))
297 std::cerr <<
"Warning: missing argument for " << argv_i <<
'\n';
301 else if(os.size()>2 &&
has_prefix(argv_i, os+
"="))
304 set(os, argv[i]+os.size()+1);
322 (os.size()>=3 && os[0]==
'-' && os[1]==
'-' &&
"-"+argv_i==os))
340 (os.size()>=3 && os[0]==
'-' && os[1]==
'-' &&
"-"+argv_i==os))
351 std::cerr <<
"Warning: missing argument for " << argv_i <<
'\n';
355 else if(os.size()==2 &&
has_prefix(argv_i, os))
358 set(os, argv[i]+os.size());
360 else if(os.size()>2 &&
has_prefix(argv_i, os+
"="))
363 set(os, argv[i]+os.size()+1);
366 else if(os.size()>2 &&
has_prefix(
"-"+argv_i, os+
"="))
369 set(os, argv[i]+os.size()+1-1);
376 std::cerr <<
"Warning: uninterpreted ld option '" << argv_i
void set(const std::string &opt, const char *value) override
Set option option to value.
virtual bool parse(int, const char **)
parses the command line options into a cmdlinet
bool has_prefix(const std::string &s, const std::string &prefix)
const char * goto_ld_options_with_argument[]
const char * ld_options_without_argument[]
const char * ld_options_with_argument[]
void add_infile_arg(const std::string &arg)
void add_arg(const std::string &arg)