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