diff options
author | Nick Clifton <nickc@redhat.com> | 2000-05-18 17:12:31 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2000-05-18 17:12:31 +0000 |
commit | 7ad34365726a22e728f4508049ac3ac9c63401c6 (patch) | |
tree | fd06f150fd2022e0ae649117882bd9544c3ac478 /bfd | |
parent | 16ee897daa2d38e5cd63ba615d9856c4de9312b6 (diff) | |
download | gdb-7ad34365726a22e728f4508049ac3ac9c63401c6.zip gdb-7ad34365726a22e728f4508049ac3ac9c63401c6.tar.gz gdb-7ad34365726a22e728f4508049ac3ac9c63401c6.tar.bz2 |
Force relocs emited for an executable to contain virtual addresses.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.h | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f386002..795ba54 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2000-05-18 Momchil Velikov <velco@fadata.bg> + + * elflink.h (elf_bfd_final_link, elf_link_input_bfd): When emiting + relocs for an executable, ensure that they are virtual addresses. + Thu May 18 10:55:47 2000 Jeffrey A Law (law@cygnus.com) * config.bfd (hppa*64*-*-hpux11*): New target triplet. 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) |