Line 541... |
Line 541... |
Search_directory()
|
Search_directory()
|
: name_(NULL), put_in_sysroot_(false), is_in_sysroot_(false)
|
: name_(NULL), put_in_sysroot_(false), is_in_sysroot_(false)
|
{ }
|
{ }
|
|
|
// This is the usual constructor.
|
// This is the usual constructor.
|
Search_directory(const char* name, bool put_in_sysroot)
|
Search_directory(const std::string& name, bool put_in_sysroot)
|
: name_(name), put_in_sysroot_(put_in_sysroot), is_in_sysroot_(false)
|
: name_(name), put_in_sysroot_(put_in_sysroot), is_in_sysroot_(false)
|
{
|
{
|
if (this->name_.empty())
|
if (this->name_.empty())
|
this->name_ = ".";
|
this->name_ = ".";
|
}
|
}
|
Line 769... |
Line 769... |
|
|
DEFINE_bool(fix_cortex_a8, options::TWO_DASHES, '\0', false,
|
DEFINE_bool(fix_cortex_a8, options::TWO_DASHES, '\0', false,
|
N_("(ARM only) Fix binaries for Cortex-A8 erratum."),
|
N_("(ARM only) Fix binaries for Cortex-A8 erratum."),
|
N_("(ARM only) Do not fix binaries for Cortex-A8 erratum."));
|
N_("(ARM only) Do not fix binaries for Cortex-A8 erratum."));
|
|
|
|
DEFINE_bool(fix_arm1176, options::TWO_DASHES, '\0', true,
|
|
N_("(ARM only) Fix binaries for ARM1176 erratum."),
|
|
N_("(ARM only) Do not fix binaries for ARM1176 erratum."));
|
|
|
DEFINE_bool(merge_exidx_entries, options::TWO_DASHES, '\0', true,
|
DEFINE_bool(merge_exidx_entries, options::TWO_DASHES, '\0', true,
|
N_("(ARM only) Merge exidx entries in debuginfo."),
|
N_("(ARM only) Merge exidx entries in debuginfo."),
|
N_("(ARM only) Do not merge exidx entries in debuginfo."));
|
N_("(ARM only) Do not merge exidx entries in debuginfo."));
|
|
|
DEFINE_special(fix_v4bx, options::TWO_DASHES, '\0',
|
DEFINE_special(fix_v4bx, options::TWO_DASHES, '\0',
|
Line 785... |
Line 789... |
NULL);
|
NULL);
|
|
|
DEFINE_bool(g, options::EXACTLY_ONE_DASH, '\0', false,
|
DEFINE_bool(g, options::EXACTLY_ONE_DASH, '\0', false,
|
N_("Ignored"), NULL);
|
N_("Ignored"), NULL);
|
|
|
|
DEFINE_bool(gnu_unique, options::TWO_DASHES, '\0', true,
|
|
N_("Enable STB_GNU_UNIQUE symbol binding (default)"),
|
|
N_("Disable STB_GNU_UNIQUE symbol binding"));
|
|
|
DEFINE_string(soname, options::ONE_DASH, 'h', NULL,
|
DEFINE_string(soname, options::ONE_DASH, 'h', NULL,
|
N_("Set shared library name"), N_("FILENAME"));
|
N_("Set shared library name"), N_("FILENAME"));
|
|
|
DEFINE_double(hash_bucket_empty_fraction, options::TWO_DASHES, '\0', 0.0,
|
DEFINE_double(hash_bucket_empty_fraction, options::TWO_DASHES, '\0', 0.0,
|
N_("Min fraction of empty buckets in dynamic hash"),
|
N_("Min fraction of empty buckets in dynamic hash"),
|
Line 1379... |
Line 1387... |
// the --section-start option, return true and set *PADDR to the
|
// the --section-start option, return true and set *PADDR to the
|
// address. Otherwise return false.
|
// address. Otherwise return false.
|
bool
|
bool
|
section_start(const char* secname, uint64_t* paddr) const;
|
section_start(const char* secname, uint64_t* paddr) const;
|
|
|
|
// Return whether any --section-start option was used.
|
|
bool
|
|
any_section_start() const
|
|
{ return !this->section_starts_.empty(); }
|
|
|
enum Fix_v4bx
|
enum Fix_v4bx
|
{
|
{
|
// Leave original instruction.
|
// Leave original instruction.
|
FIX_V4BX_NONE,
|
FIX_V4BX_NONE,
|
// Replace instruction.
|
// Replace instruction.
|
Line 1448... |
Line 1461... |
set_static(bool value)
|
set_static(bool value)
|
{ static_ = value; }
|
{ static_ = value; }
|
|
|
// These are called by finalize() to set up the search-path correctly.
|
// These are called by finalize() to set up the search-path correctly.
|
void
|
void
|
add_to_library_path_with_sysroot(const char* arg)
|
add_to_library_path_with_sysroot(const std::string& arg)
|
{ this->add_search_directory_to_library_path(Search_directory(arg, true)); }
|
{ this->add_search_directory_to_library_path(Search_directory(arg, true)); }
|
|
|
// Apply any sysroot to the directory lists.
|
// Apply any sysroot to the directory lists.
|
void
|
void
|
add_sysroot();
|
add_sysroot();
|