From 641ac26a0638837b53896d6733adf0708c8d089a Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <ian@airs.com>
Date: Mon, 25 Sep 1995 16:45:16 +0000
Subject: 	* sunos.c (sunos_read_dynamic_info): Adjust offsets in an
 NMAGIC 	file.  From Peter DeWolf <pld@amt.tay1.dec.com>.

---
 bfd/sunos.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

(limited to 'bfd/sunos.c')

diff --git a/bfd/sunos.c b/bfd/sunos.c
index c2cf453..f5e2bc8 100644
--- a/bfd/sunos.c
+++ b/bfd/sunos.c
@@ -204,6 +204,20 @@ sunos_read_dynamic_info (abfd)
   info->dyninfo.ld_text = GET_WORD (abfd, linkinfo.ld_text);
   info->dyninfo.ld_plt_sz = GET_WORD (abfd, linkinfo.ld_plt_sz);
 
+  /* Reportedly the addresses need to be offset by the size of the
+     exec header in an NMAGIC file.  */
+  if (adata (abfd).magic == n_magic)
+    {
+      unsigned long exec_bytes_size = adata (abfd).exec_bytes_size;
+
+      info->dyninfo.ld_need += exec_bytes_size;
+      info->dyninfo.ld_rules += exec_bytes_size;
+      info->dyninfo.ld_rel += exec_bytes_size;
+      info->dyninfo.ld_hash += exec_bytes_size;
+      info->dyninfo.ld_stab += exec_bytes_size;
+      info->dyninfo.ld_symbols += exec_bytes_size;
+    }
+
   /* The only way to get the size of the symbol information appears to
      be to determine the distance between it and the string table.  */
   info->dynsym_count = ((info->dyninfo.ld_symbols - info->dyninfo.ld_stab)
-- 
cgit v1.1