This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gold patch] Fix internal error with -s


Sorry, I jumped the gun -- didn't mean to hit send until I tested it.
Try this one instead...

-cary


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.

diff --git a/gold/layout.cc b/gold/layout.cc
index 26ac130..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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]