Support -d/--define-common.

This commit is contained in:
Ian Lance Taylor
2008-02-28 20:35:39 +00:00
parent da769d5629
commit 0dfbdef4c4
8 changed files with 65 additions and 10 deletions

View File

@ -488,6 +488,14 @@ options::Command_line_options::options[] =
N_("--compress-debug-sections=[none" ZLIB_STR "]"),
TWO_DASHES,
&General_options::set_compress_debug_sections),
GENERAL_NOARG('d', "define-common", N_("Define common symbols"),
NULL, TWO_DASHES, &General_options::set_define_common),
GENERAL_NOARG('\0', "dc", NULL, NULL, ONE_DASH,
&General_options::set_define_common),
GENERAL_NOARG('\0', "dp", NULL, NULL, ONE_DASH,
&General_options::set_define_common),
GENERAL_NOARG('\0', "no-define-common", N_("Do not define common symbols"),
NULL, TWO_DASHES, &General_options::set_no_define_common),
SPECIAL('\0', "defsym", N_("Define a symbol"),
N_("--defsym SYMBOL=EXPRESSION"), TWO_DASHES,
&add_to_defsym),
@ -664,7 +672,9 @@ const int options::Command_line_options::debug_options_size =
// The default values for the general options.
General_options::General_options()
: entry_(NULL),
: define_common_(false),
user_set_define_common_(false),
entry_(NULL),
export_dynamic_(false),
soname_(NULL),
dynamic_linker_(NULL),
@ -1138,6 +1148,10 @@ Command_line::normalize_options()
this->options_.set_strip_debug(true);
}
// Set default value for define_common.
if (!this->options_.user_set_define_common())
this->options_.set_define_common(!this->options_.relocatable());
// FIXME: we can/should be doing a lot more sanity checking here.
}