From 1d7e34e1efcf7b0bb92d31e56d2815e665473a0b Mon Sep 17 00:00:00 2001
From: Jim Kingdon <jkingdon@engr.sgi.com>
Date: Sat, 3 Apr 1993 01:19:16 +0000
Subject: [PATCH] * xcoffread.c (xcoff_symfile_offsets): Use 0 not addr for
 offsets.

---
 gdb/ChangeLog   |  4 +++-
 gdb/xcoffread.c | 10 +++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 70337e0521..679b2344ad 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,7 +1,9 @@
 Fri Apr  2 08:23:14 1993  Jim Kingdon  (kingdon@cygnus.com)
 
+	* xcoffread.c (xcoff_symfile_offsets): Use 0 not addr for offsets.
+
 	* rs6000-tdep.c (frameless_function_invocation): Don't even think
-	about framlessness except on the innermost frame.
+	about framelessness except on the innermost frame.
 
 	* xcoffexec.c: Call fatal() not abort().
 
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 6299cb8055..cbe5f2cc56 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -2335,8 +2335,16 @@ xcoff_symfile_offsets (objfile, addr)
        sizeof (struct section_offsets)
        + sizeof (section_offsets->offsets) * (objfile->num_sections));
 
+  /* syms_from_objfile kindly subtracts from addr the bfd_section_vma
+     of the .text section.  This strikes me as wrong--whether the
+     offset to be applied to symbol reading is relative to the start
+     address of the section depends on the symbol format.  In any
+     event, this whole "addr" concept is pretty broken (it doesn't
+     handle any section but .text sensibly), so just ignore the addr
+     parameter and use 0.  That matches the fact that xcoff_symfile_read
+     ignores the section_offsets).  */
   for (i = 0; i < objfile->num_sections; i++)
-    ANOFFSET (section_offsets, i) = addr;
+    ANOFFSET (section_offsets, i) = 0;
   
   return section_offsets;
 }