diff options
-rw-r--r-- | gold/ChangeLog | 6 | ||||
-rw-r--r-- | gold/layout.cc | 10 | ||||
-rw-r--r-- | gold/layout.h | 4 | ||||
-rw-r--r-- | gold/reloc.cc | 2 |
4 files changed, 21 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index bb29127..38d528c 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -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 diff --git a/gold/layout.cc b/gold/layout.cc index 26ac130d..7afb21f 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -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. diff --git a/gold/layout.h b/gold/layout.h index 917856e..907181f 100644 --- a/gold/layout.h +++ b/gold/layout.h @@ -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 diff --git a/gold/reloc.cc b/gold/reloc.cc index 7103572..c58e42b 100644 --- a/gold/reloc.cc +++ b/gold/reloc.cc @@ -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. |