* gold/layout.cc (Layout::symtab_section_offset): New function.

* gold/layout.h (Layout::symtab_section_offset): New function.
	* gold/reloc.cc (Sized_relobj::do_relocate): Call it.
This commit is contained in:
Cary Coutant 2011-04-14 23:29:41 +00:00
parent 902cc293a0
commit bec5b57944
4 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2011-04-14 Cary Coutant <ccoutant@google.com>
* gold/layout.cc (Layout::symtab_section_offset): New function.
* gold/layout.h (Layout::symtab_section_offset): New function.
* gold/reloc.cc (Sized_relobj::do_relocate): Call it.
2011-04-12 Ian Lance Taylor <iant@google.com>
* configure.ac: Check for sys/mman.h and mmap. Check for mremap

View File

@ -4371,6 +4371,16 @@ Layout::make_output_segment(elfcpp::Elf_Word type, elfcpp::Elf_Word flags)
return oseg;
}
// Return the file offset of the normal symbol table.
off_t
Layout::symtab_section_offset() const
{
if (this->symtab_section_ != NULL)
return this->symtab_section_->offset();
return 0;
}
// Write out the Output_sections. Most won't have anything to write,
// since most of the data will come from input sections which are
// handled elsewhere. But some Output_sections do have Output_data.

View File

@ -685,6 +685,10 @@ class Layout
return this->symtab_section_;
}
// Return the file offset of the normal symbol table.
off_t
symtab_section_offset() const;
// Return the dynamic symbol table.
Output_section*
dynsym_section() const

View File

@ -691,7 +691,7 @@ Sized_relobj<size, big_endian>::do_relocate(const Symbol_table* symtab,
// Write out the local symbols.
this->write_local_symbols(of, layout->sympool(), layout->dynpool(),
layout->symtab_xindex(), layout->dynsym_xindex(),
layout->symtab_section()->offset());
layout->symtab_section_offset());
}
// Sort a Read_multiple vector by file offset.