/* 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
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"
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
{
asection *sec;
evax_section *es, *es1;
- evax_reloc *er, *er1;
int i;
#if EVAX_DEBUG
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)
#if EVAX_DEBUG
evax_debug (1, "evax_bfd_is_local_label_name(%p, %s)\n", abfd, name);
#endif
- return false;
+ return name[0] == '$';
}
#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);
}
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. */