N_("Only set DT_NEEDED for dynamic libs if used"),
N_("Always DT_NEEDED for dynamic libs"));
+ DEFINE_enum(assert, options::ONE_DASH, '\0', NULL,
+ N_("Ignored"), N_("[ignored]"),
+ {"definitions", "nodefinitions", "nosymbolic", "pure-text"});
+
// This should really be an "enum", but it's too easy for folks to
// forget to update the list as they add new targets. So we just
// accept any string. We'll fail later (when the string is parsed),
N_("Try to detect violations of the One Definition Rule"),
NULL);
+ DEFINE_bool(discard_all, options::TWO_DASHES, 'x', false,
+ N_("Delete all local symbols"), NULL);
DEFINE_bool(discard_locals, options::TWO_DASHES, 'X', false,
N_("Delete all temporary local symbols"), NULL);
DEFINE_string(fini, options::ONE_DASH, '\0', "_fini",
N_("Call SYMBOL at unload-time"), N_("SYMBOL"));
+ DEFINE_bool(g, options::EXACTLY_ONE_DASH, '\0', false,
+ N_("Ignored"), NULL);
+
DEFINE_string(soname, options::ONE_DASH, 'h', NULL,
N_("Set shared library name"), N_("FILENAME"));
+ DEFINE_bool(i, options::EXACTLY_ONE_DASH, '\0', false,
+ N_("Ignored"), NULL);
+
DEFINE_double(hash_bucket_empty_fraction, options::TWO_DASHES, '\0', 0.0,
N_("Min fraction of empty buckets in dynamic hash"),
N_("FRACTION"));
DEFINE_special(just_symbols, options::TWO_DASHES, '\0',
N_("Read only symbol values from FILE"), N_("FILE"));
+ DEFINE_bool(keep_files_mapped, options::TWO_DASHES, '\0',
+ sizeof(void*) >= 8,
+ N_("Map whole files to memory (default on 64-bit hosts)"),
+ N_("Map relevant file parts to memory (default on 32-bit "
+ "hosts)"));
+
DEFINE_special(library, options::TWO_DASHES, 'l',
N_("Search for library LIBNAME"), N_("LIBNAME"));
DEFINE_bool(relax, options::TWO_DASHES, '\0', false,
N_("Relax branches on certain targets"), NULL);
- DEFINE_string(retain_symbols_file, options::EXACTLY_ONE_DASH, '\0', NULL,
- N_("keep only symbols listed in this file"), N_("[file]"));
+ DEFINE_string(retain_symbols_file, options::TWO_DASHES, '\0', NULL,
+ N_("keep only symbols listed in this file"), N_("FILE"));
// -R really means -rpath, but can mean --just-symbols for
// compatibility with GNU ld. -rpath is always -rpath, so we list
N_("Add DIR to link time shared library search path"),
N_("DIR"));
+ DEFINE_optional_string(sort_common, options::TWO_DASHES, '\0', NULL,
+ N_("Sort common symbols by alignment"),
+ N_("[={ascending,descending}]"));
+
DEFINE_bool(strip_all, options::TWO_DASHES, 's', false,
N_("Strip all symbols"), NULL);
DEFINE_bool(strip_debug, options::TWO_DASHES, 'S', false,
N_("Use less memory and more disk I/O "
"(included only for compatibility with GNU ld)"), NULL);
- DEFINE_bool(shared, options::ONE_DASH, '\0', false,
+ DEFINE_bool(shared, options::ONE_DASH, 'G', false,
N_("Generate shared library"), NULL);
DEFINE_bool(Bshareable, options::ONE_DASH, '\0', false,
DEFINE_special(version_script, options::TWO_DASHES, '\0',
N_("Read version script"), N_("FILE"));
+ DEFINE_bool(warn_common, options::TWO_DASHES, '\0', false,
+ N_("Warn about duplicate common symbols"),
+ N_("Do not warn about duplicate common symbols (default)"));
+
+ DEFINE_bool(warn_constructors, options::TWO_DASHES, '\0', false,
+ N_("Ignored"), N_("Ignored"));
+
DEFINE_bool(warn_search_mismatch, options::TWO_DASHES, '\0', true,
N_("Warn when skipping an incompatible library"),
N_("Don't warn when skipping an incompatible library"));
in_dynamic_list(const char* symbol) const
{ return this->dynamic_list_.version_script_info()->symbol_is_local(symbol); }
+ // Finalize the dynamic list.
+ void
+ finalize_dynamic_list()
+ { this->dynamic_list_.version_script_info()->finalize(); }
+
// The disposition given by the --incremental-changed,
// --incremental-unchanged or --incremental-unknown option. The
// value may change as we proceed parsing the command line flags.
script_options()
{ return this->script_options_; }
- // Get the version-script options: a convenience routine.
+ // Finalize the version-script options and return them.
const Version_script_info&
- version_script() const
- { return *this->script_options_.version_script_info(); }
+ version_script();
// Get the input files.
Input_arguments&