"propogate" -> "propagate"
[binutils-gdb.git] / bfd / evax-alpha.c
index c97db588a4f314b3d21d5e4afe0418fe56b26e69..48bde0c19f66c7570c7cc32177f7eb56912f777c 100644 (file)
@@ -1,5 +1,5 @@
 /* evax-alpha.c -- BFD back-end for ALPHA EVAX (openVMS/Alpha) files.
-   Copyright 1996, 1997 Free Software Foundation, Inc.
+   Copyright 1996, 1997, 1998 Free Software Foundation, Inc.
    Written by Klaus K"ampf (kkaempf@progis.de)
    of proGIS Softwareentwicklung, Aachen, Germany
 
@@ -17,9 +17,6 @@ You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
-
-#include <stdio.h>
-
 #include "bfd.h"
 #include "sysdep.h"
 #include "bfdlink.h"
@@ -108,6 +105,8 @@ static bfd_byte *evax_bfd_get_relocated_section_contents
 static boolean evax_bfd_relax_section
   PARAMS ((bfd *abfd, asection *section, struct bfd_link_info *link_info,
           boolean *again));
+static boolean evax_bfd_gc_sections
+  PARAMS ((bfd *abfd, struct bfd_link_info *link_info));
 static struct bfd_link_hash_table *evax_bfd_link_hash_table_create
   PARAMS ((bfd *abfd));
 static boolean evax_bfd_link_add_symbols
@@ -513,7 +512,6 @@ evax_close_and_cleanup (abfd)
 {
   asection *sec;
   evax_section *es, *es1;
-  evax_reloc *er, *er1;
   int i;
 
 #if EVAX_DEBUG
@@ -1109,8 +1107,6 @@ evax_get_symbol_info (abfd, symbol, ret)
     ret->type = 'A';
   else if (bfd_is_und_section (sec))
     ret->type = 'U';
-  else if (bfd_is_abs_section (sec))
-    ret->type = 'A';
   else if (bfd_is_ind_section (sec))
     ret->type = 'I';
   else if (bfd_get_section_flags (abfd, sec) & SEC_CODE)
@@ -1143,7 +1139,7 @@ evax_bfd_is_local_label_name (abfd, name)
 #if EVAX_DEBUG
   evax_debug (1, "evax_bfd_is_local_label_name(%p, %s)\n", abfd, name);
 #endif
-  return false;
+  return name[0] == '$';
 }
 
 
@@ -1576,9 +1572,11 @@ evax_set_arch_mach (abfd, arch, mach)
 #if EVAX_DEBUG
   evax_debug (1, "evax_set_arch_mach(%p, %d, %ld)\n", abfd, arch, mach);
 #endif
-  abfd->arch_info = bfd_scan_arch("alpha");
+  if (arch != bfd_arch_alpha
+      && arch != bfd_arch_unknown)
+    return false;
 
-  return true;
+  return bfd_default_set_arch_mach (abfd, arch, mach);
 }
 
 
@@ -1661,6 +1659,18 @@ evax_bfd_relax_section (abfd, section, link_info, again)
   return true;
 }
 
+static boolean
+evax_bfd_gc_sections (abfd, link_info)
+     bfd *abfd;
+     struct bfd_link_info *link_info;
+     const char *entry;
+{
+#if EVAX_DEBUG
+  evax_debug (1, "evax_bfd_gc_sections(%p, %p)\n", abfd, link_info);
+#endif
+  return true;
+}
+
 
 /* Create a hash table for the linker.  Different backends store
    different information in this table.  */