Don't emit relative relocations for non-loaded sections in shared objects.
Fix for DWARF-2 sections .debug_info and .debug_line.
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 @@
 	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 @@
 	* 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 @@
 	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 @@
 	      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 @@
 		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;