]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Don't emit relative relocations for non-loaded sections in shared objects.
authorAlan Modra <amodra@gmail.com>
Tue, 4 Apr 2000 11:23:34 +0000 (11:23 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 4 Apr 2000 11:23:34 +0000 (11:23 +0000)
Fix for DWARF-2 sections .debug_info and .debug_line.

bfd/ChangeLog
bfd/elf64-alpha.c

index 6fba1475ff63eddbb3bf6273a8fabccf7f4d561e..9d93de1b8fadca1375a2085624da032de88ef67a 100644 (file)
@@ -1,7 +1,13 @@
 2000-04-03  H.J. Lu  <hjl@gnu.org>
 
        * cache.c (bfd_open_file): Unlink the output file only if
-       it has none zero size.
+       it has non-zero size.
+
+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.
 
 2000-03-31  Thomas de Lellis  <tdel@wrs.com>
 
@@ -19,7 +25,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,
@@ -72,7 +78,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
@@ -102,7 +108,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.
index c8d8f0e566fe2feacf86b833ecb56a088b2e7e42..4da9e925c636ea645570f3f90a06a3d829e5930d 100644 (file)
@@ -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;