From 7ad34365726a22e728f4508049ac3ac9c63401c6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 18 May 2000 17:12:31 +0000 Subject: Force relocs emited for an executable to contain virtual addresses. --- bfd/elflink.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'bfd/elflink.h') diff --git a/bfd/elflink.h b/bfd/elflink.h index 749d139..5d86bbc 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -4323,7 +4323,7 @@ elf_bfd_final_link (abfd, info) if (o != NULL) o->target_index = bfd_get_symcount (abfd); elfsym.st_shndx = i; - if (info->relocateable || info->emitrelocations || o == NULL) + if (info->relocateable || o == NULL) elfsym.st_value = 0; else elfsym.st_value = o->vma; @@ -5514,6 +5514,10 @@ elf_link_input_bfd (finfo, input_bfd) irela->r_offset += o->output_offset; + /* Relocs in an executable have to be virtual addresses. */ + if (finfo->info->emitrelocations) + irela->r_offset += o->output_section->vma; + r_symndx = ELF_R_SYM (irela->r_info); if (r_symndx == 0) -- cgit v1.1