aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog3
-rw-r--r--bfd/elflink.h6
2 files changed, 6 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3bd90c7..5e78379 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,8 @@
Thu Apr 17 11:10:54 1997 Ian Lance Taylor <ian@cygnus.com>
+ * elflink.h (elf_link_add_object_symbols): Only subtract the
+ section VMA from the symbol value if this is a fully linked file.
+
* elf32-i386.c (struct elf_i386_pcrel_relocs_copied): Define.
(struct elf_i386_link_hash_entry): Define.
(struct elf_i386_link_hash_table): Define.
diff --git a/bfd/elflink.h b/bfd/elflink.h
index c44163c..8ab07e6 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -732,10 +732,10 @@ elf_link_add_object_symbols (abfd, info)
else if (sym.st_shndx > 0 && sym.st_shndx < SHN_LORESERVE)
{
sec = section_from_elf_index (abfd, sym.st_shndx);
- if (sec != NULL)
- value -= sec->vma;
- else
+ if (sec == NULL)
sec = bfd_abs_section_ptr;
+ else if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
+ value -= sec->vma;
}
else if (sym.st_shndx == SHN_ABS)
sec = bfd_abs_section_ptr;