diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3e6b591a3b5..585060e4675 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,9 @@
 Tue Apr 30 17:56:39 1996  Ian Lance Taylor  <ian@cygnus.com>
 
+	* aoutx.h (translate_from_native_sym_flags): Don't create
+	SEC_CONSTRUCTOR sections.
+	* ecoff.c (ecoff_set_symbol_info): Likewise.
+
 	* elf32-mips.c (mips_elf_copy_private_bfd_data): Copy elf_gp.
 	From Don Bowman <bowman@waterloo.hp.com>.
 
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 41a9b9a8d62..fd550e0e874 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -1414,6 +1414,10 @@ translate_from_native_sym_flags (abfd, cache_ptr)
     case N_SETD: case N_SETD | N_EXT:
     case N_SETB: case N_SETB | N_EXT:
       {
+	/* This code is no longer needed.  It used to be used to make
+           the linker handle set symbols, but they are now handled in
+           the add_symbols routine instead.  */
+#if 0
 	asection *section;
 	arelent_chain *reloc;
 	asection *into_section;
@@ -1490,6 +1494,8 @@ translate_from_native_sym_flags (abfd, cache_ptr)
 
 	reloc->relent.howto = CTOR_TABLE_RELOC_HOWTO(abfd);
 
+#endif /* 0 */
+
 	cache_ptr->symbol.flags |= BSF_CONSTRUCTOR;
       }
       break;
@@ -2351,7 +2357,8 @@ NAME(aout,squirt_out_relocs) (abfd, section)
   unsigned int count = section->reloc_count;
   size_t natsize;
 
-  if (count == 0) return true;
+  if (count == 0 || section->orelocation == NULL)
+    return true;
 
   each_size = obj_reloc_entry_size (abfd);
   natsize = each_size * count;