* options.h (General_options): Add entries for '-Y' and

'-relax'.
	* options.cc (General_options:finalize): If -Y was used, add those
	entries to the library path instead of the default "/lib" and
	"/usr/lib".
This commit is contained in:
Ian Lance Taylor 2008-04-11 20:28:34 +00:00
parent 52a952116f
commit 706e1f5e80
3 changed files with 43 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2008-04-11 David S. Miller <davem@davemloft.net>
Ian Lance Taylor <iant@google.com>
* options.h (General_options): Add entries for '-Y' and
'-relax'.
* options.cc (General_options:finalize): If -Y was used, add those
entries to the library path instead of the default "/lib" and
"/usr/lib".
2008-04-11 David S. Miller <davem@davemloft.net>
* testsuite/justsyms.t: Start at 0x100.

View File

@ -717,10 +717,33 @@ General_options::finalize()
program_name);
#endif
// Even if they don't specify it, we add -L /lib and -L /usr/lib.
// FIXME: We should only do this when configured in native mode.
this->add_to_library_path_with_sysroot("/lib");
this->add_to_library_path_with_sysroot("/usr/lib");
if (this->user_set_Y())
{
std::string s = this->Y();
if (s.compare(0, 2, "P,") == 0)
s.erase(0, 2);
size_t pos = 0;
size_t next_pos;
do
{
next_pos = s.find(':', pos);
size_t len = (next_pos == std::string::npos
? next_pos
: next_pos - pos);
if (len != 0)
this->add_to_library_path_with_sysroot(s.substr(pos, len).c_str());
pos = next_pos + 1;
}
while (next_pos != std::string::npos);
}
else
{
// Even if they don't specify it, we add -L /lib and -L /usr/lib.
// FIXME: We should only do this when configured in native mode.
this->add_to_library_path_with_sysroot("/lib");
this->add_to_library_path_with_sysroot("/usr/lib");
}
// Normalize library_path() by adding the sysroot to all directories
// in the path, as appropriate.

View File

@ -556,6 +556,9 @@ class General_options
DEFINE_bool(relocatable, options::EXACTLY_ONE_DASH, 'r', false,
N_("Generate relocatable output"), NULL);
DEFINE_bool(relax, options::TWO_DASHES, '\0', false,
N_("Relax branches on certain targets"), NULL);
// -R really means -rpath, but can mean --just-symbols for
// compatibility with GNU ld. -rpath is always -rpath, so we list
// it separately.
@ -626,6 +629,10 @@ class General_options
DEFINE_special(wrap, options::TWO_DASHES, '\0',
N_("Use wrapper functions for SYMBOL"), N_("SYMBOL"));
DEFINE_string(Y, options::EXACTLY_ONE_DASH, 'Y', "",
N_("Default search path for Solaris compatibility"),
N_("PATH"));
DEFINE_special(start_group, options::TWO_DASHES, '(',
N_("Start a library search group"), NULL);
DEFINE_special(end_group, options::TWO_DASHES, ')',