forked from Imagelibrary/binutils-gdb
* configure.ac: Add --with-lib-path option. Define LIB_PATH and
NATIVE_LINKER. * Makefile.am (AM_CPPFLAGS): Define TOOLLIBDIR. * options.cc (General_options::finalize): Use library search path from configure script if specified. If not native and no sysroot, only search TOOLLIBDIR. * options.h (Search_directory::Search_directory): Change name to const std::string&. (General_options::add_to_library_path_with_sysroot): Change arg to const std::string&. * configure, Makefile.in, config.in: Rebuild.
This commit is contained in:
@@ -1121,33 +1121,48 @@ General_options::finalize()
|
||||
program_name);
|
||||
#endif
|
||||
|
||||
std::string libpath;
|
||||
if (this->user_set_Y())
|
||||
{
|
||||
std::string s = this->Y();
|
||||
if (s.compare(0, 2, "P,") == 0)
|
||||
s.erase(0, 2);
|
||||
libpath = this->Y();
|
||||
if (libpath.compare(0, 2, "P,") == 0)
|
||||
libpath.erase(0, 2);
|
||||
}
|
||||
else if (!this->nostdlib())
|
||||
{
|
||||
#ifndef NATIVE_LINKER
|
||||
#define NATIVE_LINKER 0
|
||||
#endif
|
||||
const char* p = LIB_PATH;
|
||||
if (strcmp(p, "::DEFAULT::") != 0)
|
||||
libpath = p;
|
||||
else if (NATIVE_LINKER
|
||||
|| this->user_set_sysroot()
|
||||
|| *TARGET_SYSTEM_ROOT != '\0')
|
||||
{
|
||||
this->add_to_library_path_with_sysroot("/lib");
|
||||
this->add_to_library_path_with_sysroot("/usr/lib");
|
||||
}
|
||||
else
|
||||
this->add_to_library_path_with_sysroot(TOOLLIBDIR);
|
||||
}
|
||||
|
||||
if (!libpath.empty())
|
||||
{
|
||||
size_t pos = 0;
|
||||
size_t next_pos;
|
||||
do
|
||||
{
|
||||
next_pos = s.find(':', pos);
|
||||
next_pos = libpath.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());
|
||||
this->add_to_library_path_with_sysroot(libpath.substr(pos, len));
|
||||
pos = next_pos + 1;
|
||||
}
|
||||
while (next_pos != std::string::npos);
|
||||
}
|
||||
else if (!this->nostdlib())
|
||||
{
|
||||
// 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");
|
||||
}
|
||||
|
||||
// Parse the contents of -retain-symbols-file into a set.
|
||||
if (this->retain_symbols_file())
|
||||
|
||||
Reference in New Issue
Block a user