This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[committed] vms: use default libbfd methods


Hi,

the VMS backend redefined almost all the routines instead of using the predefined default one (such as
_bfd_nocore_*).  With this patch, the default routines are used which will simplify maintenance.

Furthermore the module name was not correct when the suffix of the object file name was not .obj.  This is
now fixed: any suffix is removed.

Finally to avoid #ifdef/#endif, vms_debug2 is replacing vms_debug.

Compiled on alpha-vms.

Tristan.

2009-11-24  Tristan Gingold  <gingold@adacore.com>

	* vms-hdr.c (_bfd_vms_write_hdr): Strip any suffix to create module
	name.
	* vms.h (vms_debug2): Add vms_debug2.
	* vms.c (vms_archive_p): Remove
	(vms_bfd_free_cached_info): Remove the function, use libbfd.h macro
	instead.
	(vms_get_section_contents_in_window): Ditto.
	(vms_bfd_copy_private_bfd_data): Ditto.
	(vms_bfd_copy_private_section_data): Ditto.
	(vms_bfd_copy_private_symbol_data): Ditto.
	(vms_bfd_print_private_bfd_data): Ditto.
	(vms_bfd_set_private_flags): Ditto.
	(vms_bfd_merge_private_bfd_data): Ditto.
	(vms_read_minisymbols): Ditto.
	(vms_minisymbol_to_symbol): Ditto.
	(vms_get_lineno): Ditto.
	(vms_find_nearest_line): Ditto.
	(vms_bfd_make_debug_symbol): Ditto.
	(vms_core_file_failing_command): Remove.
	(vms_core_file_failing_signal): Remove.
	(vms_core_file_matches_executable_p): Remove.
	(vms_slurp_armap): Remove.
	(vms_slurp_extended_name_table): Remove.
	(vms_construct_extended_name_table): Remove.
	(vms_truncate_arname): Remove.
	(vms_write_armap): Remove.
	(vms_read_ar_hdr): Remove.
	(vms_get_elt_at_index): Remove.
	(vms_openr_next_archived_file): Remove.
	(vms_update_armap_timestamp): Remove.
	(vms_generic_stat_arch_elt): Remove.
	(vms_get_symtab_upper_bound): Remove.
	(vms_sizeof_headers): Remove.
	(vms_bfd_get_relocated_section_contents): Remove.
	(vms_bfd_relax_section): Remove.
	(vms_bfd_gc_sections): Remove.
	(vms_bfd_merge_sections): Remove.
	(vms_bfd_link_hash_table_create): Remove.
	(vms_bfd_link_hash_table_free): Remove.
	(vms_bfd_link_add_symbols): Remove.
	(vms_bfd_final_link): Remove.
	(vms_bfd_link_split_section): Remove.
	(vms_get_dynamic_symtab_upper_bound): Remove.
	(vms_canonicalize_dynamic_symtab): Remove.
	(vms_get_dynamic_reloc_upper_bound): Remove.
	(vms_canonicalize_dynamic_reloc): Remove.
	(fill_section_ptr): Use vms_debug2 instead of vms_debug.
	(_bfd_vms_slurp_object_records): Ditto.
	(vms_object_p): Ditto.
	(vms_mkobject): Ditto.
	(vms_write_object_contents): Ditto.
	(vms_close_and_cleanup): Ditto.
	(vms_new_section_hook): Ditto.
	(vms_get_section_contents): Ditto.
	(vms_get_symtab_upper_bound): Ditto.
	(vms_canonicalize_symtab): Ditto.
	(vms_print_symbol): Ditto.
	(vms_get_symbol_info): Ditto.
	(vms_bfd_is_local_label_name): Ditto.
	(vms_find_nearest_line): Ditto.
	(vms_slurp_reloc_table): Ditto.
	(vms_bfd_reloc_type_lookup): Ditto.
	(vms_set_arch_mach): Ditto.
	(vms_alpha_vec, vms_vax_vec): Use _bfd_nocore, _bfd_noarchive,
	_bfd_nolink and _bfd_nodynamic methods instead of vms stubs.

Index: vms-hdr.c
===================================================================
RCS file: /cvs/src/src/bfd/vms-hdr.c,v
retrieving revision 1.24
diff -c -r1.24 vms-hdr.c
*** vms-hdr.c	18 Mar 2009 11:47:18 -0000	1.24
--- vms-hdr.c	24 Nov 2009 13:07:48 -0000
***************
*** 234,239 ****
--- 234,240 ----
        _bfd_vms_output_long (abfd, MAX_OUTREC_SIZE);
      }
  
+   /* Create module name from filename.  */
    if (bfd_get_filename (abfd) != 0)
      {
        /* Strip path and suffix information.  */
***************
*** 256,264 ****
        if (fptr != NULL)
  	fout = fptr + 1;
  
!       /* Strip .obj suffix.  */
        fptr = strrchr (fout, '.');
!       if (fptr != 0 && strcasecmp (fptr, ".OBJ") == 0)
  	*fptr = 0;
  
        /* Convert to upper case and truncate at 31 characters.
--- 257,265 ----
        if (fptr != NULL)
  	fout = fptr + 1;
  
!       /* Strip suffix.  */
        fptr = strrchr (fout, '.');
!       if (fptr != 0)
  	*fptr = 0;
  
        /* Convert to upper case and truncate at 31 characters.
Index: vms.c
===================================================================
RCS file: /cvs/src/src/bfd/vms.c,v
retrieving revision 1.51
diff -c -r1.51 vms.c
*** vms.c	23 Nov 2009 14:41:31 -0000	1.51
--- vms.c	24 Nov 2009 13:07:48 -0000
***************
*** 46,100 ****
  static int vms_slurp_module (bfd *abfd);
  static int vms_slurp_image (bfd *abfd);
  static const struct bfd_target *vms_object_p (bfd *abfd);
- static const struct bfd_target *vms_archive_p (bfd *abfd);
  static bfd_boolean vms_mkobject (bfd *abfd);
  static bfd_boolean vms_write_object_contents (bfd *abfd);
  static void free_reloc_stream (bfd *abfd, asection *section, void *data);
  static bfd_boolean vms_close_and_cleanup (bfd *abfd);
- static bfd_boolean vms_bfd_free_cached_info (bfd *abfd);
  static bfd_boolean vms_new_section_hook (bfd *abfd, asection *section);
  static bfd_boolean vms_get_section_contents
    (bfd *abfd, asection *section, PTR x1, file_ptr x2, bfd_size_type x3);
- static bfd_boolean vms_get_section_contents_in_window
-   (bfd *abfd, asection *section, bfd_window *w, file_ptr offset,
-    bfd_size_type count);
- static bfd_boolean vms_bfd_copy_private_bfd_data (bfd *src, bfd *dest);
- static bfd_boolean vms_bfd_copy_private_section_data
-   (bfd *srcbfd, asection *srcsec, bfd *dstbfd, asection *dstsec);
- static bfd_boolean vms_bfd_copy_private_symbol_data
-   (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
- static bfd_boolean vms_bfd_print_private_bfd_data (bfd *abfd, void *file);
- static char *vms_core_file_failing_command (bfd *abfd);
- static int vms_core_file_failing_signal (bfd *abfd);
- static bfd_boolean vms_core_file_matches_executable_p (bfd *abfd, bfd *bbfd);
- static bfd_boolean vms_slurp_armap (bfd *abfd);
- static bfd_boolean vms_slurp_extended_name_table (bfd *abfd);
- static bfd_boolean vms_construct_extended_name_table
-   (bfd *abfd, char **tabloc, bfd_size_type *tablen, const char **name);
- static void vms_truncate_arname (bfd *abfd, const char *pathname, char *arhdr);
- static bfd_boolean vms_write_armap
-   (bfd *arch, unsigned int elen, struct orl *map, unsigned int cnt, int idx);
- static PTR vms_read_ar_hdr (bfd *abfd);
- static bfd *vms_get_elt_at_index (bfd *abfd, symindex index);
- static bfd *vms_openr_next_archived_file (bfd *arch, bfd *prev);
- static bfd_boolean vms_update_armap_timestamp (bfd *abfd);
- static int vms_generic_stat_arch_elt (bfd *, struct stat *);
  static long vms_get_symtab_upper_bound (bfd *abfd);
  static long vms_canonicalize_symtab (bfd *abfd, asymbol **symbols);
  static void vms_print_symbol (bfd *abfd, PTR file, asymbol *symbol,
  			      bfd_print_symbol_type how);
  static void vms_get_symbol_info (bfd *abfd, asymbol *symbol, symbol_info *ret);
  static bfd_boolean vms_bfd_is_local_label_name (bfd *abfd, const char *);
- static alent *vms_get_lineno (bfd *abfd, asymbol *symbol);
  static bfd_boolean vms_find_nearest_line
    (bfd *abfd, asection *section, asymbol **symbols, bfd_vma offset,
     const char **file, const char **func, unsigned int *line);
- static asymbol *vms_bfd_make_debug_symbol (bfd *abfd, void *ptr,
- 					   unsigned long size);
- static long vms_read_minisymbols (bfd *abfd, bfd_boolean dynamic,
- 				  PTR *minisymsp, unsigned int *sizep);
- static asymbol *vms_minisymbol_to_symbol
-   (bfd *abfd, bfd_boolean dynamic, const PTR minisym, asymbol *sym);
  static void alloc_reloc_stream (bfd *abfd, asection *section,
  				void *alloc_error);
  static bfd_boolean vms_slurp_reloc_table (bfd *abfd, asection *section,
--- 46,67 ----
***************
*** 109,141 ****
  static bfd_boolean vms_set_section_contents
    (bfd *abfd, asection *section, const PTR location, file_ptr offset,
     bfd_size_type count);
- static int vms_sizeof_headers (bfd *abfd,
- 			       struct bfd_link_info *info ATTRIBUTE_UNUSED);
- static bfd_byte *vms_bfd_get_relocated_section_contents
-   (bfd *abfd, struct bfd_link_info *link_info,
-    struct bfd_link_order *link_order, bfd_byte *data,
-    bfd_boolean relocatable, asymbol **symbols);
- static bfd_boolean vms_bfd_relax_section
-   (bfd *abfd, asection *section, struct bfd_link_info *link_info,
-    bfd_boolean *again);
- static bfd_boolean vms_bfd_gc_sections
-   (bfd *abfd, struct bfd_link_info *link_info);
- static bfd_boolean vms_bfd_merge_sections
-   (bfd *abfd, struct bfd_link_info *link_info);
- static struct bfd_link_hash_table *vms_bfd_link_hash_table_create (bfd *abfd);
- static void vms_bfd_link_hash_table_free (struct bfd_link_hash_table *hash);
- static bfd_boolean vms_bfd_link_add_symbols
-   (bfd *abfd, struct bfd_link_info *link_info);
- static bfd_boolean vms_bfd_final_link (bfd *abfd,
- 				       struct bfd_link_info *link_info);
- static bfd_boolean vms_bfd_link_split_section (bfd *abfd, asection *section);
- static long vms_get_dynamic_symtab_upper_bound (bfd *abfd);
- static long vms_canonicalize_dynamic_symtab (bfd *abfd, asymbol **symbols);
- static long vms_get_dynamic_reloc_upper_bound (bfd *abfd);
- static long vms_canonicalize_dynamic_reloc
-   (bfd *abfd, arelent **arel, asymbol **symbols);
- static bfd_boolean vms_bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
- static bfd_boolean vms_bfd_set_private_flags (bfd *abfd, flagword flags);
  
  #define vms_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
  #define vms_make_empty_symbol             _bfd_generic_make_empty_symbol
--- 76,81 ----
***************
*** 149,154 ****
--- 89,107 ----
  #define vms_bfd_copy_private_header_data  _bfd_generic_bfd_copy_private_header_data
  #define vms_get_synthetic_symtab          _bfd_nodynamic_get_synthetic_symtab
  
+ #define vms_bfd_copy_private_bfd_data	  _bfd_generic_bfd_copy_private_bfd_data
+ #define vms_bfd_print_private_bfd_data	  _bfd_generic_bfd_print_private_bfd_data
+ #define vms_bfd_free_cached_info	  _bfd_generic_bfd_free_cached_info
+ #define vms_bfd_copy_private_section_data _bfd_generic_bfd_copy_private_section_data
+ #define vms_bfd_copy_private_symbol_data  _bfd_generic_bfd_copy_private_symbol_data
+ #define vms_bfd_set_private_flags         _bfd_generic_bfd_set_private_flags
+ #define vms_bfd_merge_private_bfd_data    _bfd_generic_bfd_merge_private_bfd_data
+ #define vms_get_section_contents_in_window _bfd_generic_get_section_contents_in_window
+ #define vms_read_minisymbols               _bfd_generic_read_minisymbols
+ #define vms_minisymbol_to_symbol           _bfd_generic_minisymbol_to_symbol
+ #define vms_get_lineno                     _bfd_nosymbols_get_lineno
+ #define vms_find_inliner_info              _bfd_nosymbols_find_inliner_info
+ #define vms_bfd_make_debug_symbol          _bfd_nosymbols_bfd_make_debug_symbol
  

  #ifdef VMS_DEBUG
  /* Cause debug info to be emitted for the structure.  */
***************
*** 231,239 ****
    struct pair *data = (struct pair *)sections;
    unsigned long sec = (unsigned long)sym->section;
  
! #if VMS_DEBUG
!   vms_debug (6, "fill_section_ptr: sym %p, sec %p\n", sym, sec);
! #endif
  
    if (sec < data->section_count)
      {
--- 184,190 ----
    struct pair *data = (struct pair *)sections;
    unsigned long sec = (unsigned long)sym->section;
  
!   vms_debug2 ((6, "fill_section_ptr: sym %p, sec %lu\n", sym, sec));
  
    if (sec < data->section_count)
      {
***************
*** 273,287 ****
  
    do
      {
! #if VMS_DEBUG
!       vms_debug (7, "reading at %08lx\n", bfd_tell (abfd));
! #endif
        new_type = _bfd_vms_get_object_record (abfd);
        if (new_type < 0)
  	{
! #if VMS_DEBUG
! 	  vms_debug (2, "next_record failed\n");
! #endif
  	  return -1;
  	}
  
--- 224,235 ----
  
    do
      {
!       vms_debug2 ((7, "reading at %08lx\n", bfd_tell (abfd)));
! 
        new_type = _bfd_vms_get_object_record (abfd);
        if (new_type < 0)
  	{
! 	  vms_debug2 ((2, "next_record failed\n"));
  	  return -1;
  	}
  
***************
*** 289,297 ****
  	{
  	  if (! vms_fixup_sections (abfd))
  	    {
! #if VMS_DEBUG
! 	      vms_debug (2, "vms_fixup_sections failed\n");
! #endif
  	      return -1;
  	    }
  	}
--- 237,243 ----
  	{
  	  if (! vms_fixup_sections (abfd))
  	    {
! 	      vms_debug2 ((2, "vms_fixup_sections failed\n"));
  	      return -1;
  	    }
  	}
***************
*** 335,343 ****
  	}
        if (err != 0)
  	{
! #if VMS_DEBUG
! 	  vms_debug (2, "slurp type %d failed with %d\n", type, err);
! #endif
  	  return err;
  	}
      }
--- 281,287 ----
  	}
        if (err != 0)
  	{
! 	  vms_debug2 ((2, "slurp type %d failed with %d\n", type, err));
  	  return err;
  	}
      }
***************
*** 405,413 ****
    bfd_vma saddr_save = bfd_get_start_address (abfd);
    int err = 0;
  
! #if VMS_DEBUG
!   vms_debug (1, "vms_object_p(%p)\n", abfd);
! #endif
  
    if (!vms_initialize (abfd))
      goto error_ret;
--- 349,355 ----
    bfd_vma saddr_save = bfd_get_start_address (abfd);
    int err = 0;
  
!   vms_debug2 ((1, "vms_object_p(%p)\n", abfd));
  
    if (!vms_initialize (abfd))
      goto error_ret;
***************
*** 438,464 ****
      {
        if (! vms_fixup_sections (abfd))
  	{
! #if VMS_DEBUG
! 	  vms_debug (2, "vms_fixup_sections failed\n");
! #endif
  	  goto err_wrong_format;
  	}
  
        target_vector = &vms_vax_vec;
        arch = bfd_scan_arch ("vax");
  
! #if VMS_DEBUG
!       vms_debug (2, "arch is vax\n");
! #endif
      }
    else
      {
        /* Set arch_info to alpha.   */
        target_vector = &vms_alpha_vec;
        arch = bfd_scan_arch ("alpha");
! #if VMS_DEBUG
!       vms_debug (2, "arch is alpha\n");
! #endif
      }
  
    abfd->arch_info = arch;
--- 380,400 ----
      {
        if (! vms_fixup_sections (abfd))
  	{
! 	  vms_debug2 ((2, "vms_fixup_sections failed\n"));
  	  goto err_wrong_format;
  	}
  
        target_vector = &vms_vax_vec;
        arch = bfd_scan_arch ("vax");
  
!       vms_debug2 ((2, "arch is vax\n"));
      }
    else
      {
        /* Set arch_info to alpha.   */
        target_vector = &vms_alpha_vec;
        arch = bfd_scan_arch ("alpha");
!       vms_debug2 ((2, "arch is alpha\n"));
      }
  
    abfd->arch_info = arch;
***************
*** 475,493 ****
    return NULL;
  }
  
- /* Check the format for a file being read.
-    Return a (bfd_target *) if it's an archive file or zero.  */
- 
- static const struct bfd_target *
- vms_archive_p (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_archive_p (%p)\n", abfd);
- #endif
- 
-   return NULL;
- }
- 
  /* Set the format of a file being written.  */
  
  static bfd_boolean
--- 411,416 ----
***************
*** 495,503 ****
  {
    const bfd_arch_info_type *arch;
  
! #if VMS_DEBUG
!   vms_debug (1, "vms_mkobject (%p)\n", abfd);
! #endif
  
    if (!vms_initialize (abfd))
      return FALSE;
--- 418,424 ----
  {
    const bfd_arch_info_type *arch;
  
!   vms_debug2 ((1, "vms_mkobject (%p)\n", abfd));
  
    if (!vms_initialize (abfd))
      return FALSE;
***************
*** 522,530 ****
  static bfd_boolean
  vms_write_object_contents (bfd * abfd)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_write_object_contents (%p)\n", abfd);
! #endif
  
    if (abfd->section_count > 0)			/* we have sections */
      {
--- 443,449 ----
  static bfd_boolean
  vms_write_object_contents (bfd * abfd)
  {
!   vms_debug2 ((1, "vms_write_object_contents (%p)\n", abfd));
  
    if (abfd->section_count > 0)			/* we have sections */
      {
***************
*** 633,641 ****
  static bfd_boolean
  vms_close_and_cleanup (bfd * abfd)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_close_and_cleanup (%p)\n", abfd);
! #endif
    if (abfd == NULL || abfd->tdata.any == NULL)
      return TRUE;
  
--- 552,559 ----
  static bfd_boolean
  vms_close_and_cleanup (bfd * abfd)
  {
!   vms_debug2 ((1, "vms_close_and_cleanup (%p)\n", abfd));
! 
    if (abfd == NULL || abfd->tdata.any == NULL)
      return TRUE;
  
***************
*** 668,684 ****
    return TRUE;
  }
  
- /* Ask the BFD to free all cached information.  */
- 
- static bfd_boolean
- vms_bfd_free_cached_info (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_free_cached_info (%p)\n", abfd);
- #endif
-   return TRUE;
- }
- 
  /* Called when a new section is created.  */
  
  static bfd_boolean
--- 586,591 ----
***************
*** 689,698 ****
    /* Count hasn't been incremented yet.  */
    unsigned int section_count = abfd->section_count + 1;
  
! #if VMS_DEBUG
!   vms_debug (1, "vms_new_section_hook (%p, [%d]%s), count %d\n",
! 	     abfd, section->index, section->name, section_count);
! #endif
  
    bfd_set_section_alignment (abfd, section, 0);
  
--- 596,603 ----
    /* Count hasn't been incremented yet.  */
    unsigned int section_count = abfd->section_count + 1;
  
!   vms_debug2 ((1, "vms_new_section_hook (%p, [%d]%s), count %d\n",
!                abfd, section->index, section->name, section_count));
  
    bfd_set_section_alignment (abfd, section, 0);
  
***************
*** 706,720 ****
        PRIV (section_count) = section_count;
      }
  
! #if VMS_DEBUG
!   vms_debug (6, "section_count: %d\n", PRIV (section_count));
! #endif
  
    PRIV (sections)[section->index] = section;
  
! #if VMS_DEBUG
!   vms_debug (7, "%d: %s\n", section->index, section->name);
! #endif
  
    amt = sizeof (struct vms_section_data_struct);
    section->used_by_bfd = (PTR) bfd_zalloc (abfd, amt);
--- 611,621 ----
        PRIV (section_count) = section_count;
      }
  
!   vms_debug2 ((6, "section_count: %d\n", PRIV (section_count)));
  
    PRIV (sections)[section->index] = section;
  
!   vms_debug2 ((7, "%d: %s\n", section->index, section->name));
  
    amt = sizeof (struct vms_section_data_struct);
    section->used_by_bfd = (PTR) bfd_zalloc (abfd, amt);
***************
*** 737,746 ****
  {
    bfd_size_type size = section->size;
  
! #if VMS_DEBUG
!   vms_debug (1, "vms_get_section_contents (%p, %s, %p, off %ld, size %d)\n",
! 		 abfd, section->name, buf, offset, (int)buf_size);
! #endif
  
    if (section->contents)
      abort ();
--- 638,645 ----
  {
    bfd_size_type size = section->size;
  
!   vms_debug2 ((1, "vms_get_section_contents (%p, %s, %p, off %ld, size %d)\n",
!                abfd, section->name, buf, offset, (int)buf_size));
  
    if (section->contents)
      abort ();
***************
*** 773,1049 ****
    return TRUE;
  }
  
- /* Read the contents of a section.
-    buf points to a buffer of buf_size bytes to be filled with
-    section data (starting at offset into section).  */
- 
- static bfd_boolean
- vms_get_section_contents_in_window (bfd * abfd ATTRIBUTE_UNUSED,
- 				    asection *section ATTRIBUTE_UNUSED,
- 				    bfd_window *w ATTRIBUTE_UNUSED,
- 				    file_ptr offset ATTRIBUTE_UNUSED,
- 				    bfd_size_type count ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_get_section_contents_in_window (%p, %s, %p, off %ld, count %d)\n",
- 		 abfd, section->name, w, offset, (int)count);
- #endif
- 
-   /* Shouldn't be called, since all sections are IN_MEMORY.  */
-   return FALSE;
- }
- 
- /* Part 4.2, copy private data.  */
- 
- /* Called to copy BFD general private data from one object file
-    to another.  */
- 
- static bfd_boolean
- vms_bfd_copy_private_bfd_data (bfd *src ATTRIBUTE_UNUSED,
- 			       bfd *dest ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_copy_private_bfd_data (%p, %p)\n", src, dest);
- #endif
-   return TRUE;
- }
- 
- /* Merge private BFD information from the BFD @var{ibfd} to the
-    the output file BFD @var{obfd} when linking.  Return <<TRUE>>
-    on success, <<FALSE>> on error.  Possible error returns are:
- 
-    o <<bfd_error_no_memory>> -
-      Not enough memory exists to create private data for @var{obfd}.  */
- 
- static bfd_boolean
- vms_bfd_merge_private_bfd_data (bfd * ibfd ATTRIBUTE_UNUSED,
- 				bfd * obfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1,"vms_bfd_merge_private_bfd_data (%p, %p)\n", ibfd, obfd);
- #endif
-   return TRUE;
- }
- 
- /* Set private BFD flag information in the BFD @var{abfd}.
-    Return <<TRUE>> on success, <<FALSE>> on error.  Possible error
-    returns are:
- 
-    o <<bfd_error_no_memory>> -
-      Not enough memory exists to create private data for @var{obfd}.  */
- 
- static bfd_boolean
- vms_bfd_set_private_flags (bfd * abfd ATTRIBUTE_UNUSED,
- 			   flagword flags ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1,"vms_bfd_set_private_flags (%p, %lx)\n", abfd, (long)flags);
- #endif
-   return TRUE;
- }
- 
- /* Called to copy BFD private section data from one object file
-    to another.  */
- 
- static bfd_boolean
- vms_bfd_copy_private_section_data (bfd *srcbfd ATTRIBUTE_UNUSED,
- 				   asection *srcsec ATTRIBUTE_UNUSED,
- 				   bfd *dstbfd ATTRIBUTE_UNUSED,
- 				   asection *dstsec ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_copy_private_section_data (%p, %s, %p, %s)\n",
- 		 srcbfd, srcsec->name, dstbfd, dstsec->name);
- #endif
-   return TRUE;
- }
- 
- /* Called to copy BFD private symbol data from one object file
-    to another.  */
- 
- static bfd_boolean
- vms_bfd_copy_private_symbol_data (bfd *ibfd ATTRIBUTE_UNUSED,
- 				  asymbol *isym ATTRIBUTE_UNUSED,
- 				  bfd *obfd ATTRIBUTE_UNUSED,
- 				  asymbol *osym ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_copy_private_symbol_data (%p, %s, %p, %s)\n",
- 		 ibfd, isym->name, obfd, osym->name);
- #endif
-   return TRUE;
- }
- 
- /* Part 4.3, core file.  */
- 
- /* Return a read-only string explaining which program was running
-    when it failed and produced the core file abfd.  */
- 
- static char *
- vms_core_file_failing_command (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_core_file_failing_command (%p)\n", abfd);
- #endif
-   return NULL;
- }
- 
- /* Returns the signal number which caused the core dump which
-    generated the file the BFD abfd is attached to.  */
- 
- static int
- vms_core_file_failing_signal (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_core_file_failing_signal (%p)\n", abfd);
- #endif
-   return 0;
- }
- 
- /* Return TRUE if the core file attached to core_bfd was generated
-    by a run of the executable file attached to exec_bfd, FALSE otherwise.  */
- 
- static bfd_boolean
- vms_core_file_matches_executable_p (bfd * abfd ATTRIBUTE_UNUSED,
- 				    bfd *bbfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_core_file_matches_executable_p (%p, %p)\n", abfd, bbfd);
- #endif
-   return FALSE;
- }
- 
- /* Part 4.4, archive.  */
- 
- /* ???	do something with an archive map.
-    Return FALSE on error, TRUE otherwise.  */
- 
- static bfd_boolean
- vms_slurp_armap (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_slurp_armap (%p)\n", abfd);
- #endif
-   return FALSE;
- }
- 
- /* ???	do something with an extended name table.
-    Return FALSE on error, TRUE otherwise.  */
- 
- static bfd_boolean
- vms_slurp_extended_name_table (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_slurp_extended_name_table (%p)\n", abfd);
- #endif
-   return FALSE;
- }
- 
- /* ???	do something with an extended name table.
-    Return FALSE on error, TRUE otherwise.  */
- 
- static bfd_boolean
- vms_construct_extended_name_table (bfd * abfd ATTRIBUTE_UNUSED,
- 				   char **tabloc ATTRIBUTE_UNUSED,
- 				   bfd_size_type *tablen ATTRIBUTE_UNUSED,
- 				   const char **name ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_construct_extended_name_table (%p)\n", abfd);
- #endif
-   return FALSE;
- }
- 
- /* Truncate the name of an archive to match system-dependent restrictions.  */
- 
- static void
- vms_truncate_arname (bfd * abfd ATTRIBUTE_UNUSED,
- 		     const char *pathname ATTRIBUTE_UNUSED,
- 		     char *arhdr ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_truncate_arname (%p, %s, %s)\n", abfd, pathname, arhdr);
- #endif
- }
- 
- /* ???	write archive map.  */
- 
- static bfd_boolean
- vms_write_armap (bfd *arch ATTRIBUTE_UNUSED,
- 		 unsigned int elength ATTRIBUTE_UNUSED,
- 		 struct orl *map ATTRIBUTE_UNUSED,
- 		 unsigned int orl_count ATTRIBUTE_UNUSED,
- 		 int stridx ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_write_armap (%p, %d, %p, %d %d)\n",
- 	arch, elength, map, orl_count, stridx);
- #endif
-   return TRUE;
- }
- 
- /* Read archive header ???  */
- 
- static void *
- vms_read_ar_hdr (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_read_ar_hdr (%p)\n", abfd);
- #endif
-   return NULL;
- }
- 
- /* Provided a BFD, @var{archive}, containing an archive and NULL, open
-    an input BFD on the first contained element and returns that.
-    Subsequent calls should pass the archive and the previous return value
-    to return a created BFD to the next contained element.
-    NULL is returned when there are no more.  */
- 
- static bfd *
- vms_openr_next_archived_file (bfd *arch ATTRIBUTE_UNUSED,
- 			      bfd *prev ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_openr_next_archived_file (%p, %p)\n", arch, prev);
- #endif
-   return NULL;
- }
- 
- /* Return the BFD which is referenced by the symbol in ABFD indexed by
-    INDEX.  INDEX should have been returned by bfd_get_next_mapent.  */
- 
- static bfd *
- vms_get_elt_at_index (bfd * abfd, symindex index)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_get_elt_at_index (%p, %p)\n", abfd, index);
- #endif
-   return _bfd_generic_get_elt_at_index (abfd, index);
- }
- 
- /* ???
-    -> bfd_generic_stat_arch_elt.  */
- 
- static int
- vms_generic_stat_arch_elt (bfd * abfd, struct stat *st)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_generic_stat_arch_elt (%p, %p)\n", abfd, st);
- #endif
-   return bfd_generic_stat_arch_elt (abfd, st);
- }
- 
- /* This is a new function in bfd 2.5.  */
- 
- static bfd_boolean
- vms_update_armap_timestamp (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_update_armap_timestamp (%p)\n", abfd);
- #endif
-   return TRUE;
- }
- 
  /* Part 4.5, symbols.  */
  
  /* Return the number of bytes required to store a vector of pointers
--- 672,677 ----
***************
*** 1054,1062 ****
  static long
  vms_get_symtab_upper_bound (bfd * abfd)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_get_symtab_upper_bound (%p), %d symbols\n", abfd, PRIV (gsd_sym_count));
! #endif
    return (PRIV (gsd_sym_count) + 1) * sizeof (asymbol *);
  }
  
--- 682,690 ----
  static long
  vms_get_symtab_upper_bound (bfd * abfd)
  {
!   vms_debug2 ((1, "vms_get_symtab_upper_bound (%p), %d symbols\n",
!                abfd, PRIV (gsd_sym_count)));
! 
    return (PRIV (gsd_sym_count) + 1) * sizeof (asymbol *);
  }
  
***************
*** 1086,1094 ****
  static long
  vms_canonicalize_symtab (bfd * abfd, asymbol **symbols)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_canonicalize_symtab (%p, <ret>)\n", abfd);
! #endif
  
    /* Init counter.  */
    copy_symbols (NULL, abfd);
--- 714,720 ----
  static long
  vms_canonicalize_symtab (bfd * abfd, asymbol **symbols)
  {
!   vms_debug2 ((1, "vms_canonicalize_symtab (%p, <ret>)\n", abfd));
  
    /* Init counter.  */
    copy_symbols (NULL, abfd);
***************
*** 1113,1121 ****
  		  asymbol *symbol,
  		  bfd_print_symbol_type how)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_print_symbol (%p, %p, %p, %d)\n", abfd, file, symbol, how);
! #endif
  
    switch (how)
      {
--- 739,746 ----
  		  asymbol *symbol,
  		  bfd_print_symbol_type how)
  {
!   vms_debug2 ((1, "vms_print_symbol (%p, %p, %p, %d)\n",
!                abfd, file, symbol, how));
  
    switch (how)
      {
***************
*** 1157,1165 ****
  {
    asection *sec;
  
! #if VMS_DEBUG
!   vms_debug (1, "vms_get_symbol_info (%p, %p, %p)\n", abfd, symbol, ret);
! #endif
  
    sec = symbol->section;
  
--- 782,788 ----
  {
    asection *sec;
  
!   vms_debug2 ((1, "vms_get_symbol_info (%p, %p, %p)\n", abfd, symbol, ret));
  
    sec = symbol->section;
  
***************
*** 1199,1222 ****
  vms_bfd_is_local_label_name (bfd * abfd ATTRIBUTE_UNUSED,
  			     const char *name)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_bfd_is_local_label_name (%p, %s)\n", abfd, name);
! #endif
    return name[0] == '$';
  }
  
- /* Get source line number for symbol.  */
- 
- static alent *
- vms_get_lineno (bfd * abfd ATTRIBUTE_UNUSED,
- 		asymbol *symbol ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_get_lineno (%p, %p)\n", abfd, symbol);
- #endif
-   return NULL;
- }
- 
  /* Provided a BFD, a section and an offset into the section, calculate and
     return the name of the source file and the line nearest to the wanted
     location.  */
--- 822,831 ----
  vms_bfd_is_local_label_name (bfd * abfd ATTRIBUTE_UNUSED,
  			     const char *name)
  {
!   vms_debug2 ((1, "vms_bfd_is_local_label_name (%p, %s)\n", abfd, name));
    return name[0] == '$';
  }
  
  /* Provided a BFD, a section and an offset into the section, calculate and
     return the name of the source file and the line nearest to the wanted
     location.  */
***************
*** 1230,1302 ****
  		       const char **func ATTRIBUTE_UNUSED,
  		       unsigned int *line ATTRIBUTE_UNUSED)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_find_nearest_line (%p, %s, %p, %ld, <ret>, <ret>, <ret>)\n",
! 	      abfd, section->name, symbols, (long int)offset);
! #endif
    return _bfd_vms_find_nearest_dst_line (abfd, section, symbols, offset, file, func, line);
  }
  
- static bfd_boolean
- vms_find_inliner_info (bfd * abfd ATTRIBUTE_UNUSED,
- 		       const char **file ATTRIBUTE_UNUSED,
- 		       const char **func ATTRIBUTE_UNUSED,
- 		       unsigned int *line ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_find_inliner_info (%p, <ret>, <ret>, <ret>)\n",
- 	     abfd);
- #endif
-   return FALSE;
- }
- 
- /* Back-door to allow format-aware applications to create debug symbols
-    while using BFD for everything else.  Currently used by the assembler
-    when creating COFF files.  */
- 
- static asymbol *
- vms_bfd_make_debug_symbol (bfd * abfd ATTRIBUTE_UNUSED,
- 			   void *ptr ATTRIBUTE_UNUSED,
- 			   unsigned long size ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_make_debug_symbol (%p, %p, %ld)\n", abfd, ptr, size);
- #endif
-   return NULL;
- }
- 
- /* Read minisymbols.  For minisymbols, we use the unmodified a.out
-    symbols.  The minisymbol_to_symbol function translates these into
-    BFD asymbol structures.  */
- 
- static long
- vms_read_minisymbols (bfd * abfd,
- 		      bfd_boolean dynamic,
- 		      void * *minisymsp,
- 		      unsigned int *sizep)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_read_minisymbols (%p, %d, %p, %d)\n", abfd, dynamic, minisymsp, *sizep);
- #endif
-   return _bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep);
- }
- 
- /* Convert a minisymbol to a BFD asymbol.  A minisymbol is just an
-    unmodified a.out symbol.  The SYM argument is a structure returned
-    by bfd_make_empty_symbol, which we fill in here.  */
- 
- static asymbol *
- vms_minisymbol_to_symbol (bfd * abfd,
- 			  bfd_boolean dynamic,
- 			  const void * minisym,
- 			  asymbol *sym)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_minisymbol_to_symbol (%p, %d, %p, %p)\n", abfd, dynamic, minisym, sym);
- #endif
-   return _bfd_generic_minisymbol_to_symbol (abfd, dynamic, minisym, sym);
- }
- 
  /* Part 4.6, relocations.  */
  
  /* Allocate the reloc buffer for the specified section.  */
--- 839,849 ----
  		       const char **func ATTRIBUTE_UNUSED,
  		       unsigned int *line ATTRIBUTE_UNUSED)
  {
!   vms_debug2 ((1, "vms_find_nearest_line (%p, %s, %p, %ld, ...)\n",
!                abfd, section->name, symbols, (long int)offset));
    return _bfd_vms_find_nearest_dst_line (abfd, section, symbols, offset, file, func, line);
  }
  
  /* Part 4.6, relocations.  */
  
  /* Allocate the reloc buffer for the specified section.  */
***************
*** 1390,1398 ****
  	  err = _bfd_vms_slurp_relocs (abfd);
  	  if (err != 0)
  	    {
! #if VMS_DEBUG
! 	      vms_debug (2, "slurp relocs failed with %d\n", err);
! #endif
  	      return FALSE;
  	    }
  	}
--- 937,943 ----
  	  err = _bfd_vms_slurp_relocs (abfd);
  	  if (err != 0)
  	    {
! 	      vms_debug2 ((2, "slurp relocs failed with %d\n", err));
  	      return FALSE;
  	    }
  	}
***************
*** 1408,1416 ****
    err = _bfd_vms_decode_relocs (abfd, internal_relocs, section, symbols);
    if (err != 0)
      {
! #if VMS_DEBUG
!       vms_debug (2, "decode relocs failed with %d\n", err);
! #endif
        return FALSE;
      }
  
--- 953,959 ----
    err = _bfd_vms_decode_relocs (abfd, internal_relocs, section, symbols);
    if (err != 0)
      {
!       vms_debug2 ((2, "decode relocs failed with %d\n", err));
        return FALSE;
      }
  
***************
*** 1772,1780 ****
  {
    int alpha_type;
  
! #if VMS_DEBUG
!   vms_debug (1, "vms_bfd_reloc_type_lookup (%p, %d)\t", abfd, code);
! #endif
  
    switch (code)
      {
--- 1315,1321 ----
  {
    int alpha_type;
  
!   vms_debug2 ((1, "vms_bfd_reloc_type_lookup (%p, %d)\t", abfd, code));
  
    switch (code)
      {
***************
*** 1797,1805 ****
  	(*_bfd_error_handler) ("reloc (%d) is *UNKNOWN*", code);
  	return NULL;
      }
! #if VMS_DEBUG
!   vms_debug (2, "reloc is %s\n", alpha_howto_table[alpha_type].name);
! #endif
    return & alpha_howto_table[alpha_type];
  }
  
--- 1338,1344 ----
  	(*_bfd_error_handler) ("reloc (%d) is *UNKNOWN*", code);
  	return NULL;
      }
!   vms_debug2 ((2, "reloc is %s\n", alpha_howto_table[alpha_type].name));
    return & alpha_howto_table[alpha_type];
  }
  
***************
*** 1830,1838 ****
  		   enum bfd_architecture arch ATTRIBUTE_UNUSED,
  		   unsigned long mach ATTRIBUTE_UNUSED)
  {
! #if VMS_DEBUG
!   vms_debug (1, "vms_set_arch_mach (%p, %d, %ld)\n", abfd, arch, mach);
! #endif
  
    if (arch != bfd_arch_alpha
        && arch != bfd_arch_vax
--- 1369,1375 ----
  		   enum bfd_architecture arch ATTRIBUTE_UNUSED,
  		   unsigned long mach ATTRIBUTE_UNUSED)
  {
!   vms_debug2 ((1, "vms_set_arch_mach (%p, %d, %ld)\n", abfd, arch, mach));
  
    if (arch != bfd_arch_alpha
        && arch != bfd_arch_vax
***************
*** 1874,2068 ****
    memcpy (section->contents + offset, location, (size_t) count);
    return TRUE;
  }
- 
- /* Part 4.8, linker.  */
- 
- /* Get the size of the section headers.  */
- 
- static int
- vms_sizeof_headers (bfd * abfd ATTRIBUTE_UNUSED,
- 		    struct bfd_link_info *info ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_sizeof_headers (%p, %s)\n", abfd, (reloc)?"True":"False");
- #endif
-   return 0;
- }
- 
- /* Provides default handling of relocation effort for back ends
-    which can't be bothered to do it efficiently.  */
- 
- static bfd_byte *
- vms_bfd_get_relocated_section_contents (bfd * abfd ATTRIBUTE_UNUSED,
- 					struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
- 					struct bfd_link_order *link_order ATTRIBUTE_UNUSED,
- 					bfd_byte *data ATTRIBUTE_UNUSED,
- 					bfd_boolean relocatable ATTRIBUTE_UNUSED,
- 					asymbol **symbols ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_get_relocated_section_contents (%p, %p, %p, %p, %s, %p)\n",
- 	     abfd, link_info, link_order, data, (relocatable)?"True":"False", symbols);
- #endif
-   return NULL;
- }
- 
- /* ???  */
- 
- static bfd_boolean
- vms_bfd_relax_section (bfd * abfd ATTRIBUTE_UNUSED,
- 		       asection *section ATTRIBUTE_UNUSED,
- 		       struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
- 		       bfd_boolean *again ATTRIBUTE_UNUSED)
- {
-   if (link_info->relocatable)
-     (*link_info->callbacks->einfo)
-       (_("%P%F: --relax and -r may not be used together\n"));
- 
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_relax_section (%p, %s, %p, <ret>)\n",
- 	     abfd, section->name, link_info);
- #endif
-   return TRUE;
- }
- 
- static bfd_boolean
- vms_bfd_gc_sections (bfd * abfd ATTRIBUTE_UNUSED,
- 		     struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_gc_sections (%p, %p)\n", abfd, link_info);
- #endif
-   return TRUE;
- }
- 
- static bfd_boolean
- vms_bfd_merge_sections (bfd * abfd ATTRIBUTE_UNUSED,
- 			struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_merge_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.  */
- 
- static struct bfd_link_hash_table *
- vms_bfd_link_hash_table_create (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_link_hash_table_create (%p)\n", abfd);
- #endif
-   return NULL;
- }
- 
- /* Free a linker hash table.  */
- 
- static void
- vms_bfd_link_hash_table_free (struct bfd_link_hash_table *hash ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_link_hash_table_free (%p)\n", abfd);
- #endif
- }
- 
- /* Add symbols from this object file into the hash table.  */
- 
- static bfd_boolean
- vms_bfd_link_add_symbols (bfd * abfd ATTRIBUTE_UNUSED,
- 			  struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_link_add_symbols (%p, %p)\n", abfd, link_info);
- #endif
-   return FALSE;
- }
- 
- /* Do a link based on the link_order structures attached to each
-    section of the BFD.  */
- 
- static bfd_boolean
- vms_bfd_final_link (bfd * abfd ATTRIBUTE_UNUSED,
- 		    struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_final_link (%p, %p)\n", abfd, link_info);
- #endif
-   return TRUE;
- }
- 
- /* Should this section be split up into smaller pieces during linking.  */
- 
- static bfd_boolean
- vms_bfd_link_split_section (bfd * abfd ATTRIBUTE_UNUSED,
- 			    asection *section ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_link_split_section (%p, %s)\n", abfd, section->name);
- #endif
-   return FALSE;
- }
- 
- /* Part 4.9, dynamic symbols and relocations.  */
- 
- /* Get the amount of memory required to hold the dynamic symbols.  */
- 
- static long
- vms_get_dynamic_symtab_upper_bound (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_get_dynamic_symtab_upper_bound (%p)\n", abfd);
- #endif
-   return 0L;
- }
- 
- static bfd_boolean
- vms_bfd_print_private_bfd_data (bfd * abfd ATTRIBUTE_UNUSED,
- 				void *file ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_bfd_print_private_bfd_data (%p)\n", abfd);
- #endif
-   return FALSE;
- }
- 
- /* Read in the dynamic symbols.  */
- 
- static long
- vms_canonicalize_dynamic_symtab (bfd * abfd ATTRIBUTE_UNUSED,
- 				 asymbol **symbols ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_canonicalize_dynamic_symtab (%p, <ret>)\n", abfd);
- #endif
-   return 0L;
- }
- 
- /* Get the amount of memory required to hold the dynamic relocs.  */
- 
- static long
- vms_get_dynamic_reloc_upper_bound (bfd * abfd ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_get_dynamic_reloc_upper_bound (%p)\n", abfd);
- #endif
-   return 0L;
- }
- 
- /* Read in the dynamic relocs.  */
- 
- static long
- vms_canonicalize_dynamic_reloc (bfd * abfd ATTRIBUTE_UNUSED,
- 				arelent **arel ATTRIBUTE_UNUSED,
- 				asymbol **symbols ATTRIBUTE_UNUSED)
- {
- #if VMS_DEBUG
-   vms_debug (1, "vms_canonicalize_dynamic_reloc (%p)\n", abfd);
- #endif
-   return 0L;
- }
  

  const bfd_target vms_alpha_vec =
  {
--- 1411,1416 ----
***************
*** 2087,2107 ****
    bfd_getl16, bfd_getl_signed_16, bfd_putl16,
  
    {_bfd_dummy_target, vms_object_p,		/* bfd_check_format.  */
!    vms_archive_p, _bfd_dummy_target},
    {bfd_false, vms_mkobject,			/* bfd_set_format.  */
!    _bfd_generic_mkarchive, bfd_false},
    {bfd_false, vms_write_object_contents,	/* bfd_write_contents.  */
!    _bfd_write_archive_contents, bfd_false},
  
    BFD_JUMP_TABLE_GENERIC (vms),
    BFD_JUMP_TABLE_COPY (vms),
!   BFD_JUMP_TABLE_CORE (vms),
!   BFD_JUMP_TABLE_ARCHIVE (vms),
    BFD_JUMP_TABLE_SYMBOLS (vms),
    BFD_JUMP_TABLE_RELOCS (vms),
    BFD_JUMP_TABLE_WRITE (vms),
!   BFD_JUMP_TABLE_LINK (vms),
!   BFD_JUMP_TABLE_DYNAMIC (vms),
  
    NULL,
  
--- 1435,1455 ----
    bfd_getl16, bfd_getl_signed_16, bfd_putl16,
  
    {_bfd_dummy_target, vms_object_p,		/* bfd_check_format.  */
!    _bfd_dummy_target, _bfd_dummy_target},
    {bfd_false, vms_mkobject,			/* bfd_set_format.  */
!    bfd_false, bfd_false},
    {bfd_false, vms_write_object_contents,	/* bfd_write_contents.  */
!    bfd_false, bfd_false},
  
    BFD_JUMP_TABLE_GENERIC (vms),
    BFD_JUMP_TABLE_COPY (vms),
!   BFD_JUMP_TABLE_CORE (_bfd_nocore),
!   BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
    BFD_JUMP_TABLE_SYMBOLS (vms),
    BFD_JUMP_TABLE_RELOCS (vms),
    BFD_JUMP_TABLE_WRITE (vms),
!   BFD_JUMP_TABLE_LINK (_bfd_nolink),
!   BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
  
    NULL,
  
***************
*** 2133,2153 ****
    bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs.  */
  
    {_bfd_dummy_target, vms_object_p,		/* bfd_check_format.  */
!    vms_archive_p, _bfd_dummy_target},
    {bfd_false, vms_mkobject,			/* bfd_set_format.  */
!    _bfd_generic_mkarchive, bfd_false},
    {bfd_false, vms_write_object_contents,	/* bfd_write_contents.  */
!    _bfd_write_archive_contents, bfd_false},
  
    BFD_JUMP_TABLE_GENERIC (vms),
    BFD_JUMP_TABLE_COPY (vms),
!   BFD_JUMP_TABLE_CORE (vms),
!   BFD_JUMP_TABLE_ARCHIVE (vms),
    BFD_JUMP_TABLE_SYMBOLS (vms),
    BFD_JUMP_TABLE_RELOCS (vms),
    BFD_JUMP_TABLE_WRITE (vms),
!   BFD_JUMP_TABLE_LINK (vms),
!   BFD_JUMP_TABLE_DYNAMIC (vms),
  
    NULL,
  
--- 1481,1501 ----
    bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Hdrs.  */
  
    {_bfd_dummy_target, vms_object_p,		/* bfd_check_format.  */
!    _bfd_dummy_target, _bfd_dummy_target},
    {bfd_false, vms_mkobject,			/* bfd_set_format.  */
!    bfd_false, bfd_false},
    {bfd_false, vms_write_object_contents,	/* bfd_write_contents.  */
!    bfd_false, bfd_false},
  
    BFD_JUMP_TABLE_GENERIC (vms),
    BFD_JUMP_TABLE_COPY (vms),
!   BFD_JUMP_TABLE_CORE (_bfd_nocore),
!   BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
    BFD_JUMP_TABLE_SYMBOLS (vms),
    BFD_JUMP_TABLE_RELOCS (vms),
    BFD_JUMP_TABLE_WRITE (vms),
!   BFD_JUMP_TABLE_LINK (_bfd_nolink),
!   BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
  
    NULL,
  
Index: vms.h
===================================================================
RCS file: /cvs/src/src/bfd/vms.h,v
retrieving revision 1.15
diff -c -r1.15 vms.h
*** vms.h	2 Sep 2009 07:18:37 -0000	1.15
--- vms.h	24 Nov 2009 13:07:48 -0000
***************
*** 854,861 ****
  #if VMS_DEBUG				 
  extern void _bfd_vms_debug (int, char *, ...) ATTRIBUTE_PRINTF_2;
  extern void _bfd_hexdump   (int, unsigned char *, int, int);
! 					 
! #define vms_debug _bfd_vms_debug	 
  #endif					 
  					 
  extern struct bfd_hash_entry * _bfd_vms_hash_newfunc (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
--- 854,864 ----
  #if VMS_DEBUG				 
  extern void _bfd_vms_debug (int, char *, ...) ATTRIBUTE_PRINTF_2;
  extern void _bfd_hexdump   (int, unsigned char *, int, int);
! 
! #define vms_debug _bfd_vms_debug
! #define vms_debug2(X) _bfd_vms_debug X
! #else
! #define vms_debug2(X)
  #endif					 
  					 
  extern struct bfd_hash_entry * _bfd_vms_hash_newfunc (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]