replace direct invocation og elf vma print functions with indirect invocation
authorNick Clifton <nickc@redhat.com>
Sat, 11 Aug 2001 16:48:15 +0000 (16:48 +0000)
committerNick Clifton <nickc@redhat.com>
Sat, 11 Aug 2001 16:48:15 +0000 (16:48 +0000)
bfd/ChangeLog
bfd/bfd.c
bfd/elf-bfd.h
bfd/elf.c
bfd/elfxx-target.h

index 52648014be93c14902599c577f48939b089dccbe..fc32b09ff3be74d485d55fe7d87975c344c77144 100644 (file)
@@ -1,3 +1,23 @@
+2001-08-11  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf-bfd.h (struct elf_backend_data): Add new fields
+       'elf_backend_sprintf_vma' and 'elf_backend_fprintf_vma'.
+       (bfd_elf_sprintf_vma): Rename function prototype to
+       '_bfd_elf_sprintf_vma'.
+       (bfd_elf_fprintf_vma): Rename function prototype to
+       '_bfd_elf_fprintf_vma'.
+       * bfd.c (bfd_sprintf_vma): Do not invoke bfd_elf_sprintf_vma
+       directly, instead indirect via the elf_backend_data structure.
+       (bfd_fprintf_vma): Do not invoke bfd_elf_fprintf_vma directly,
+       instead indirect via the elf_backend_data structure.
+       * elf.c (bfd_elf_sprintf_vma): Rename to _bfd_elf_sprintf_vma.
+       (bfd_elf_fprintf_vma): Rename to _bfd_elf_fprintf_vma.
+       * elfxx-target.h (elf_backend_sprintf_vma): Initialise if not
+       already defined.
+       (elf_backend_fprintf_vma): Initialise if not already defined.
+        (struct elf_backend_data): Initialise the
+       elf_backend_sprintf_vma and elf_backend_fprintf_vma fields.
+
 2001-08-10  Andreas Jaeger  <aj@suse.de>
 
        * elf64-sparc.c: Add missing prototypes.
index 1a0078341b9a69df509bc586e460fa2cfca1c0e0..ca50aac13e7043b4b78e150bbf4d2a94726805a7 100644 (file)
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -1270,7 +1270,7 @@ bfd_sprintf_vma (abfd, buf, value)
      bfd_vma value;
 {
   if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
-    bfd_elf_sprintf_vma (abfd, buf, value);
+    get_elf_backend_data (abfd)->elf_backend_sprintf_vma (abfd, buf, value);
   else
     sprintf_vma (buf, value);
 }
@@ -1282,7 +1282,7 @@ bfd_fprintf_vma (abfd, stream, value)
      bfd_vma value;
 {
   if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
-    bfd_elf_fprintf_vma (abfd, stream, value);
+    get_elf_backend_data (abfd)->elf_backend_fprintf_vma (abfd, stream, value);
   else
     fprintf_vma ((FILE *) stream, value);
 }
index b0e20ea9aa640bc500cdd5a8554f36c8929c2ef0..1d684328d2ed091f044e53883f6cbb1f4feecf49 100644 (file)
@@ -636,6 +636,10 @@ struct elf_backend_data
      note is found in a core file. */
   boolean (*elf_backend_grok_psinfo) PARAMS ((bfd *, Elf_Internal_Note *));
 
+    /* Functions to print VMAs.  Special code to handle 64 bit ELF files.  */
+  void (* elf_backend_sprintf_vma) PARAMS ((bfd *, char *, bfd_vma));
+  void (* elf_backend_fprintf_vma) PARAMS ((bfd *, PTR, bfd_vma));
+
   /* The swapping table to use when dealing with ECOFF information.
      Used for the MIPS ELF .mdebug section.  */
   const struct ecoff_debug_swap *elf_backend_ecoff_debug_swap;
@@ -999,8 +1003,8 @@ extern void bfd_elf_print_symbol PARAMS ((bfd *, PTR, asymbol *,
 #define bfd_elf32_print_symbol bfd_elf_print_symbol
 #define bfd_elf64_print_symbol bfd_elf_print_symbol
 
-extern void bfd_elf_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
-extern void bfd_elf_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
+extern void _bfd_elf_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
+extern void _bfd_elf_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
 
 extern unsigned long bfd_elf_hash PARAMS ((const char *));
 
index a6332e2419648542f66e8faad2766a25d332bf2d..56b7926fb9234dd682f092dfa0531ed347082a3f 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -5996,7 +5996,7 @@ bfd_get_elf_phdrs (abfd, phdrs)
 }
 
 void
-bfd_elf_sprintf_vma (abfd, buf, value)
+_bfd_elf_sprintf_vma (abfd, buf, value)
      bfd *abfd ATTRIBUTE_UNUSED;
      char *buf;
      bfd_vma value;
@@ -6027,7 +6027,7 @@ bfd_elf_sprintf_vma (abfd, buf, value)
 }
 
 void
-bfd_elf_fprintf_vma (abfd, stream, value)
+_bfd_elf_fprintf_vma (abfd, stream, value)
      bfd *abfd ATTRIBUTE_UNUSED;
      PTR stream;
      bfd_vma value;
index 2b86aacabde8b0478d31c9590b072915ec3a45c1..2d0970e449a2ff1e61dcc366862f9d991a1d47a2 100644 (file)
@@ -338,6 +338,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #ifndef elf_backend_grok_psinfo
 #define elf_backend_grok_psinfo                        NULL
 #endif
+#ifndef elf_backend_sprintf_vma
+#define elf_backend_sprintf_vma                        _bfd_elf_sprintf_vma
+#endif
+#ifndef elf_backend_fprintf_vma
+#define elf_backend_fprintf_vma                        _bfd_elf_fprintf_vma
+#endif
 
 /* Previously, backends could only use SHT_REL or SHT_RELA relocation
    sections, but not both.  They defined USE_REL to indicate SHT_REL
@@ -423,6 +429,8 @@ static CONST struct elf_backend_data elfNN_bed =
   elf_backend_count_relocs,
   elf_backend_grok_prstatus,
   elf_backend_grok_psinfo,
+  elf_backend_sprintf_vma,
+  elf_backend_fprintf_vma,
   elf_backend_ecoff_debug_swap,
   ELF_MACHINE_ALT1,
   ELF_MACHINE_ALT2,