2012-09-10 Sterling Augustine <saugustine@google.com>
* gdb-index.cc (Gdb_index::pubnames_read): New parameter. (Gdb_index::pubtypes_read): New parameter. (Gdb_index_info_reader::read_pubnames_and_pubtypes): Add parameters to calls. * gdb-index.h (Gdb_index): New fields pubnames_object_ and pubtypes_object_.
This commit is contained in:
parent
09be558e10
commit
c891b3f924
@ -1,3 +1,12 @@
|
|||||||
|
2012-09-10 Sterling Augustine <saugustine@google.com>
|
||||||
|
|
||||||
|
* gdb-index.cc (Gdb_index::pubnames_read): New parameter.
|
||||||
|
(Gdb_index::pubtypes_read): New parameter.
|
||||||
|
(Gdb_index_info_reader::read_pubnames_and_pubtypes): Add parameters
|
||||||
|
to calls.
|
||||||
|
* gdb-index.h (Gdb_index): New fields pubnames_object_ and
|
||||||
|
pubtypes_object_.
|
||||||
|
|
||||||
2012-09-09 Alan Modra <amodra@gmail.com>
|
2012-09-09 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* target.h (Target::gc_mark_symbol, do_gc_mark_symbol): New functions.
|
* target.h (Target::gc_mark_symbol, do_gc_mark_symbol): New functions.
|
||||||
|
@ -864,7 +864,8 @@ Gdb_index_info_reader::read_pubnames_and_pubtypes(Dwarf_die* die)
|
|||||||
&pubnames_shndx);
|
&pubnames_shndx);
|
||||||
if (pubnames_offset != -1)
|
if (pubnames_offset != -1)
|
||||||
{
|
{
|
||||||
if (this->gdb_index_->pubnames_read(pubnames_shndx, pubnames_offset))
|
if (this->gdb_index_->pubnames_read(this->object(), pubnames_shndx,
|
||||||
|
pubnames_offset))
|
||||||
ret = true;
|
ret = true;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -890,7 +891,8 @@ Gdb_index_info_reader::read_pubnames_and_pubtypes(Dwarf_die* die)
|
|||||||
&pubtypes_shndx);
|
&pubtypes_shndx);
|
||||||
if (pubtypes_offset != -1)
|
if (pubtypes_offset != -1)
|
||||||
{
|
{
|
||||||
if (this->gdb_index_->pubtypes_read(pubtypes_shndx, pubtypes_offset))
|
if (this->gdb_index_->pubtypes_read(this->object(),
|
||||||
|
pubtypes_shndx, pubtypes_offset))
|
||||||
ret = true;
|
ret = true;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -961,8 +963,10 @@ Gdb_index::Gdb_index(Output_section* gdb_index_section)
|
|||||||
symtab_offset_(0),
|
symtab_offset_(0),
|
||||||
cu_pool_offset_(0),
|
cu_pool_offset_(0),
|
||||||
stringpool_offset_(0),
|
stringpool_offset_(0),
|
||||||
|
pubnames_object_(NULL),
|
||||||
pubnames_shndx_(0),
|
pubnames_shndx_(0),
|
||||||
pubnames_offset_(0),
|
pubnames_offset_(0),
|
||||||
|
pubtypes_object_(NULL),
|
||||||
pubtypes_shndx_(0),
|
pubtypes_shndx_(0),
|
||||||
pubtypes_offset_(0)
|
pubtypes_offset_(0)
|
||||||
{
|
{
|
||||||
@ -1034,10 +1038,12 @@ Gdb_index::add_symbol(int cu_index, const char* sym_name)
|
|||||||
// OFFSET in section SHNDX
|
// OFFSET in section SHNDX
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Gdb_index::pubnames_read(unsigned int shndx, off_t offset)
|
Gdb_index::pubnames_read(const Relobj* object, unsigned int shndx, off_t offset)
|
||||||
{
|
{
|
||||||
bool ret = (this->pubnames_shndx_ == shndx
|
bool ret = (this->pubnames_object_ == object
|
||||||
|
&& this->pubnames_shndx_ == shndx
|
||||||
&& this->pubnames_offset_ == offset);
|
&& this->pubnames_offset_ == offset);
|
||||||
|
this->pubnames_object_ = object;
|
||||||
this->pubnames_shndx_ = shndx;
|
this->pubnames_shndx_ = shndx;
|
||||||
this->pubnames_offset_ = offset;
|
this->pubnames_offset_ = offset;
|
||||||
return ret;
|
return ret;
|
||||||
@ -1047,10 +1053,12 @@ Gdb_index::pubnames_read(unsigned int shndx, off_t offset)
|
|||||||
// OFFSET in section SHNDX
|
// OFFSET in section SHNDX
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Gdb_index::pubtypes_read(unsigned int shndx, off_t offset)
|
Gdb_index::pubtypes_read(const Relobj* object, unsigned int shndx, off_t offset)
|
||||||
{
|
{
|
||||||
bool ret = (this->pubtypes_shndx_ == shndx
|
bool ret = (this->pubtypes_object_ == object
|
||||||
|
&& this->pubtypes_shndx_ == shndx
|
||||||
&& this->pubtypes_offset_ == offset);
|
&& this->pubtypes_offset_ == offset);
|
||||||
|
this->pubtypes_object_ = object;
|
||||||
this->pubtypes_shndx_ = shndx;
|
this->pubtypes_shndx_ = shndx;
|
||||||
this->pubtypes_offset_ = offset;
|
this->pubtypes_offset_ = offset;
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -91,15 +91,15 @@ class Gdb_index : public Output_section_data
|
|||||||
void
|
void
|
||||||
add_symbol(int cu_index, const char* sym_name);
|
add_symbol(int cu_index, const char* sym_name);
|
||||||
|
|
||||||
// Return TRUE if we have already processed the pubnames set at
|
// Return TRUE if we have already processed the pubnames set for
|
||||||
// OFFSET in section SHNDX
|
// OBJECT at OFFSET in section SHNDX
|
||||||
bool
|
bool
|
||||||
pubnames_read(unsigned int shndx, off_t offset);
|
pubnames_read(const Relobj* object, unsigned int shndx, off_t offset);
|
||||||
|
|
||||||
// Return TRUE if we have already processed the pubtypes set at
|
// Return TRUE if we have already processed the pubtypes set for
|
||||||
// OFFSET in section SHNDX
|
// OBJECT at OFFSET in section SHNDX
|
||||||
bool
|
bool
|
||||||
pubtypes_read(unsigned int shndx, off_t offset);
|
pubtypes_read(const Relobj* object, unsigned int shndx, off_t offset);
|
||||||
|
|
||||||
// Print usage statistics.
|
// Print usage statistics.
|
||||||
static void
|
static void
|
||||||
@ -200,10 +200,12 @@ class Gdb_index : public Output_section_data
|
|||||||
off_t symtab_offset_;
|
off_t symtab_offset_;
|
||||||
off_t cu_pool_offset_;
|
off_t cu_pool_offset_;
|
||||||
off_t stringpool_offset_;
|
off_t stringpool_offset_;
|
||||||
// Section index and offset of last read pubnames section.
|
// Object, section index and offset of last read pubnames section.
|
||||||
|
const Relobj* pubnames_object_;
|
||||||
unsigned int pubnames_shndx_;
|
unsigned int pubnames_shndx_;
|
||||||
off_t pubnames_offset_;
|
off_t pubnames_offset_;
|
||||||
// Section index and offset of last read pubtypes section.
|
// Object, section index and offset of last read pubtypes section.
|
||||||
|
const Relobj* pubtypes_object_;
|
||||||
unsigned int pubtypes_shndx_;
|
unsigned int pubtypes_shndx_;
|
||||||
off_t pubtypes_offset_;
|
off_t pubtypes_offset_;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user