diff options
-rw-r--r-- | bfd/ChangeLog | 12 | ||||
-rw-r--r-- | bfd/elf64-alpha.c | 7 |
2 files changed, 13 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 78953a9..85f0981 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2000-04-01 Ken Block USG <block@zk3.dec.com> + + * elf64-alpha.c (elf64_alpha_relocate_section): Don't emit + relative relocations for non-loaded sections in shared objects. + (elf64_alpha_check_relocs): Similarly. + Mon Apr 3 13:37:15 2000 Hans-Peter Nilsson <hp@axis.com> * aoutx.h (NAME(aout,reloc_type_lookup)): Add BFD_RELOC_8 and @@ -31,7 +37,7 @@ Wed Mar 30 15:28:00 2000 Donald Lindsay <dlindsay@cygnus.com> The new logic in m32r_elf_lo16_reloc() has been removed, and it instead calls the new routine to obtain that functionality. -2000-03-27 Alan Modra <alan@linuxcare.com> +2000-03-27 Alan Modra <alan@linuxcare.com.au> * elf32-avr.c (elf32_avr_gc_mark_hook, elf32_avr_gc_sweep_hook, elf32_avr_check_relocs, avr_final_link_relocate, @@ -84,7 +90,7 @@ Wed Mar 30 15:28:00 2000 Donald Lindsay <dlindsay@cygnus.com> * coff-h8300.c (h8300_reloc16_extra_cases): Fix the sanity check for R_MOVL2. -2000-03-11 Alan Modra <alan@spri.levels.unisa.edu.au> +2000-03-11 Alan Modra <alan@linuxcare.com.au> * ieee.c (ieee_archive_p): Return bfd_error_wrong_format on a format mismatch rather than an "error" from bfd_read such as @@ -114,7 +120,7 @@ Wed Mar 30 15:28:00 2000 Donald Lindsay <dlindsay@cygnus.com> are paired. The addend for R_MIPS_GNU_REL16_S2 is shifted right two bits. -2000-03-10 Alan Modra <alan@spri.levels.unisa.edu.au> +2000-03-10 Alan Modra <alan@linuxcare.com.au> * reloc.c (bfd_perform_relocation): Undo emacs formatting of comment, and ensure it doesn't happen again. diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c index c8d8f0e..4da9e92 100644 --- a/bfd/elf64-alpha.c +++ b/bfd/elf64-alpha.c @@ -2581,9 +2581,10 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs) else rent->count++; } - else if (info->shared) + else if (info->shared && (sec->flags & SEC_ALLOC)) { - /* If this is a shared library, we need a RELATIVE reloc. */ + /* If this is a shared library, and the section is to be + loaded into memory, we need a RELATIVE reloc. */ sreloc->_raw_size += sizeof (Elf64_External_Rela); } break; @@ -3623,7 +3624,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section, outrel.r_addend = addend; addend = 0, relocation = 0; } - else if (info->shared) + else if (info->shared && (input_section->flags & SEC_ALLOC)) { outrel.r_info = ELF64_R_INFO(0, R_ALPHA_RELATIVE); outrel.r_addend = 0; |