// dynobj.h -- dynamic object support for gold -*- C++ -*-
-// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
void
do_add_symbols(Symbol_table*, Read_symbols_data*, Layout*);
+ Archive::Should_include
+ do_should_include_member(Symbol_table* symtab, Read_symbols_data*,
+ std::string* why);
+
// Get the size of a section.
uint64_t
do_section_size(unsigned int shndx)
void
do_get_global_symbol_counts(const Symbol_table*, size_t*, size_t*) const;
+ // Get the global symbols.
+ const Symbols*
+ do_get_global_symbols() const
+ { return this->symbols_; }
+
private:
// For convenience.
typedef Sized_dynobj<size, big_endian> This;
// Set the version index.
void
- set_index(unsigned int vindex)
+ set_index(unsigned int index)
{
gold_assert(this->index_ == -1U);
- this->index_ = vindex;
+ this->index_ = index;
}
// Clear the weak flag in a version definition.
class Verdef : public Version_base
{
public:
- Verdef(const char* vname, const std::vector<std::string>& deps,
- bool is_base, bool vis_weak, bool vis_symbol_created)
- : name_(vname), deps_(deps), is_base_(is_base), is_weak_(vis_weak),
- is_symbol_created_(vis_symbol_created)
+ Verdef(const char* name, const std::vector<std::string>& deps,
+ bool is_base, bool is_weak, bool is_info, bool is_symbol_created)
+ : name_(name), deps_(deps), is_base_(is_base), is_weak_(is_weak),
+ is_info_(is_info), is_symbol_created_(is_symbol_created)
{ }
// Return the version name.
// Add a dependency to this version. The NAME should be
// canonicalized in the dynamic Stringpool.
void
- add_dependency(const char* dname)
- { this->deps_.push_back(dname); }
+ add_dependency(const char* name)
+ { this->deps_.push_back(name); }
// Return whether this definition is weak.
bool
clear_weak()
{ this->is_weak_ = false; }
+ // Return whether this definition is informational.
+ bool
+ is_info() const
+ { return this->is_info_; }
+
// Return whether a version symbol has been created for this
// definition.
bool
bool is_base_;
// Whether this version is weak.
bool is_weak_;
+ // Whether this version is informational.
+ bool is_info_;
// Whether a version symbol has been created.
bool is_symbol_created_;
};
class Verneed_version : public Version_base
{
public:
- Verneed_version(const char* ver)
- : version_(ver)
+ Verneed_version(const char* version)
+ : version_(version)
{ }
// Return the version name.
class Verneed
{
public:
- Verneed(const char* fname)
- : filename_(fname), need_versions_()
+ Verneed(const char* filename)
+ : filename_(filename), need_versions_()
{ }
~Verneed();