From 641ac26a0638837b53896d6733adf0708c8d089a Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 25 Sep 1995 16:45:16 +0000 Subject: [PATCH] * sunos.c (sunos_read_dynamic_info): Adjust offsets in an NMAGIC file. From Peter DeWolf . --- bfd/ChangeLog | 3 +++ bfd/sunos.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 86e0bd32a7..d810d836e5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,8 @@ Mon Sep 25 11:48:02 1995 Ian Lance Taylor + * sunos.c (sunos_read_dynamic_info): Adjust offsets in an NMAGIC + file. From Peter DeWolf . + * init.c (initialized): Remove static variable. (bfd_init): Don't bother setting initialized. (bfd_check_init): Remove. diff --git a/bfd/sunos.c b/bfd/sunos.c index c2cf4537fd..f5e2bc814f 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)