diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2014-11-25 09:28:32 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2014-11-25 09:28:32 -0800 |
commit | 60bb06bc89858ee50ad02907a833565dcc317182 (patch) | |
tree | 6f396310778df81bb2336bf51744c4e0a6d7c8e8 | |
parent | bb4d2ac2cc637c61232624d9d359b8d3f031e3e9 (diff) | |
download | gdb-60bb06bc89858ee50ad02907a833565dcc317182.zip gdb-60bb06bc89858ee50ad02907a833565dcc317182.tar.gz gdb-60bb06bc89858ee50ad02907a833565dcc317182.tar.bz2 |
Use get_symbol_version_string in BFD_JUMP_TABLE_SYMBOLS
This patch adds get_symbol_version_string to BFD_JUMP_TABLE_SYMBOLS so
that we can use bfd_get_symbol_version_string in objdump for non-ELF
targets.
bfd/
* targets.c (BFD_JUMP_TABLE_SYMBOLS): Use
NAME##_get_symbol_version_string.
(bfd_get_symbol_version_string): New.
* aout-adobe.c (aout_32_get_symbol_version_string): Define using
_bfd_nosymbols define.
* aout-target.h (MY_get_symbol_version_string): Likewise.
* aout-tic30.c (MY_get_symbol_version_string): Likewise.
* binary.c (binary_get_symbol_version_string): Likewise.
* bout.c (aout_32_get_symbol_version_string): Likewise.
* coff-rs6000.c (_bfd_xcoff_get_symbol_version_string): Likewise.
* i386msdos.c (msdos_get_symbol_version_string): Likewise.
* i386os9k.c (aout_32_get_symbol_version_string): Likewise.
* ieee.c (ieee_get_symbol_version_string): Likewise.
* ihex.c (ihex_get_symbol_version_string): Likewise.
* libecoff.h (_bfd_ecoff_get_symbol_version_string): Likewise.
* mach-o-target.c (bfd_mach_o_get_symbol_version_string): Likewise.
* mmo.c (mmo_get_symbol_version_string): Likewise.
* nlm-target.h (nlm_get_symbol_version_string): Likewise.
* oasys.c (oasys_get_symbol_version_string): Likewise.
* pef.c (bfd_pef_get_symbol_version_string): Likewise.
* plugin.c (bfd_plugin_get_symbol_version_string): Likewise.
* ppcboot.c (ppcboot_get_symbol_version_string): Likewise.
* som.c (som_get_symbol_version_string): Likewise.
* srec.c (srec_get_symbol_version_string): Likewise.
* tekhex.c (tekhex_get_symbol_version_string): Likewise.
* versados.c (versados_get_symbol_version_string): Likewise.
* vms-alpha.c (alpha_vms_get_symbol_version_string): Likewise.
* xsym.c (bfd_sym_get_symbol_version_string): Likewise.
* coff64-rs6000.c (rs6000_xcoff64_vec): Use
coff_get_symbol_version_string.
(rs6000_xcoff64_aix_vec): Likewise.
* elf-bfd.h (bfd_elf_get_symbol_version_string): Renamed to ...
(_bfd_elf_get_symbol_version_string): This.
* elf.c: Likewise.
(bfd_elf_print_symbol): Updated.
* elfxx-target.h (bfd_elfNN_get_symbol_version_string): Define.
* libbfd-in.h (_bfd_nosymbols_get_symbol_version_string): Define.
* libcoff-in.h (coff_get_symbol_version_string): Likewise.
* bfd-in2.h: Regenerated.
* libbfd.h: Likewise.
* libcoff.h: Likewise.
binutils/
* objdump.c (objdump_print_symname): Replace
bfd_elf_get_symbol_version_string with
bfd_get_symbol_version_string.
-rw-r--r-- | bfd/ChangeLog | 47 | ||||
-rw-r--r-- | bfd/aout-adobe.c | 1 | ||||
-rw-r--r-- | bfd/aout-target.h | 4 | ||||
-rw-r--r-- | bfd/aout-tic30.c | 4 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 4 | ||||
-rw-r--r-- | bfd/binary.c | 2 | ||||
-rw-r--r-- | bfd/bout.c | 1 | ||||
-rw-r--r-- | bfd/coff-rs6000.c | 2 | ||||
-rw-r--r-- | bfd/coff64-rs6000.c | 2 | ||||
-rw-r--r-- | bfd/elf-bfd.h | 2 | ||||
-rw-r--r-- | bfd/elf.c | 10 | ||||
-rw-r--r-- | bfd/elfxx-target.h | 4 | ||||
-rw-r--r-- | bfd/i386msdos.c | 2 | ||||
-rw-r--r-- | bfd/i386os9k.c | 2 | ||||
-rw-r--r-- | bfd/ieee.c | 2 | ||||
-rw-r--r-- | bfd/ihex.c | 1 | ||||
-rw-r--r-- | bfd/libbfd-in.h | 2 | ||||
-rw-r--r-- | bfd/libbfd.h | 2 | ||||
-rw-r--r-- | bfd/libcoff-in.h | 2 | ||||
-rw-r--r-- | bfd/libcoff.h | 2 | ||||
-rw-r--r-- | bfd/libecoff.h | 2 | ||||
-rw-r--r-- | bfd/mach-o-target.c | 1 | ||||
-rw-r--r-- | bfd/mmo.c | 3 | ||||
-rw-r--r-- | bfd/nlm-target.h | 1 | ||||
-rw-r--r-- | bfd/oasys.c | 1 | ||||
-rw-r--r-- | bfd/pef.c | 1 | ||||
-rw-r--r-- | bfd/plugin.c | 1 | ||||
-rw-r--r-- | bfd/ppcboot.c | 2 | ||||
-rw-r--r-- | bfd/som.c | 1 | ||||
-rw-r--r-- | bfd/srec.c | 1 | ||||
-rw-r--r-- | bfd/targets.c | 4 | ||||
-rw-r--r-- | bfd/tekhex.c | 1 | ||||
-rw-r--r-- | bfd/versados.c | 1 | ||||
-rw-r--r-- | bfd/vms-alpha.c | 3 | ||||
-rw-r--r-- | bfd/xsym.c | 1 | ||||
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/objdump.c | 4 |
37 files changed, 123 insertions, 9 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7b3971e..54942a1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,52 @@ 2014-11-25 H.J. Lu <hongjiu.lu@intel.com> + * targets.c (BFD_JUMP_TABLE_SYMBOLS): Use + NAME##_get_symbol_version_string. + (bfd_get_symbol_version_string): New. + * aout-adobe.c (aout_32_get_symbol_version_string): Define using + _bfd_nosymbols define. + * aout-target.h (MY_get_symbol_version_string): Likewise. + * aout-tic30.c (MY_get_symbol_version_string): Likewise. + * binary.c (binary_get_symbol_version_string): Likewise. + * bout.c (aout_32_get_symbol_version_string): Likewise. + * coff-rs6000.c (_bfd_xcoff_get_symbol_version_string): Likewise. + * i386msdos.c (msdos_get_symbol_version_string): Likewise. + * i386os9k.c (aout_32_get_symbol_version_string): Likewise. + * ieee.c (ieee_get_symbol_version_string): Likewise. + * ihex.c (ihex_get_symbol_version_string): Likewise. + * libecoff.h (_bfd_ecoff_get_symbol_version_string): Likewise. + * mach-o-target.c (bfd_mach_o_get_symbol_version_string): Likewise. + * mmo.c (mmo_get_symbol_version_string): Likewise. + * nlm-target.h (nlm_get_symbol_version_string): Likewise. + * oasys.c (oasys_get_symbol_version_string): Likewise. + * pef.c (bfd_pef_get_symbol_version_string): Likewise. + * plugin.c (bfd_plugin_get_symbol_version_string): Likewise. + * ppcboot.c (ppcboot_get_symbol_version_string): Likewise. + * som.c (som_get_symbol_version_string): Likewise. + * srec.c (srec_get_symbol_version_string): Likewise. + * tekhex.c (tekhex_get_symbol_version_string): Likewise. + * versados.c (versados_get_symbol_version_string): Likewise. + * vms-alpha.c (alpha_vms_get_symbol_version_string): Likewise. + * xsym.c (bfd_sym_get_symbol_version_string): Likewise. + + * coff64-rs6000.c (rs6000_xcoff64_vec): Use + coff_get_symbol_version_string. + (rs6000_xcoff64_aix_vec): Likewise. + + * elf-bfd.h (bfd_elf_get_symbol_version_string): Renamed to ... + (_bfd_elf_get_symbol_version_string): This. + * elf.c: Likewise. + (bfd_elf_print_symbol): Updated. + * elfxx-target.h (bfd_elfNN_get_symbol_version_string): Define. + + * libbfd-in.h (_bfd_nosymbols_get_symbol_version_string): Define. + * libcoff-in.h (coff_get_symbol_version_string): Likewise. + * bfd-in2.h: Regenerated. + * libbfd.h: Likewise. + * libcoff.h: Likewise. + +2014-11-25 H.J. Lu <hongjiu.lu@intel.com> + PR binutils/16496 * elf-bfd.h (bfd_elf_get_symbol_version_string): New. * elf.c (bfd_elf_get_symbol_version_string): New. Extracted diff --git a/bfd/aout-adobe.c b/bfd/aout-adobe.c index cfdcc64..50394a2 100644 --- a/bfd/aout-adobe.c +++ b/bfd/aout-adobe.c @@ -447,6 +447,7 @@ aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED, /* Build the transfer vector for Adobe A.Out files. */ #define aout_32_find_line _bfd_nosymbols_find_line +#define aout_32_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define aout_32_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup #define aout_32_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup diff --git a/bfd/aout-target.h b/bfd/aout-target.h index 3bca8b5..7982bf0 100644 --- a/bfd/aout-target.h +++ b/bfd/aout-target.h @@ -459,6 +459,10 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #ifndef MY_get_symbol_info #define MY_get_symbol_info NAME (aout, get_symbol_info) #endif +#ifndef MY_get_symbol_version_string +#define MY_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string +#endif #ifndef MY_get_lineno #define MY_get_lineno NAME (aout, get_lineno) #endif diff --git a/bfd/aout-tic30.c b/bfd/aout-tic30.c index e74464d..e164446 100644 --- a/bfd/aout-tic30.c +++ b/bfd/aout-tic30.c @@ -917,6 +917,10 @@ tic30_aout_set_arch_mach (bfd *abfd, #ifndef MY_get_symbol_info #define MY_get_symbol_info NAME (aout, get_symbol_info) #endif +#ifndef MY_get_symbol_version_string +#define MY_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string +#endif #ifndef MY_get_lineno #define MY_get_lineno NAME (aout, get_lineno) #endif diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 433b171..ed7be29 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -7015,6 +7015,7 @@ typedef struct bfd_target NAME##_make_empty_symbol, \ NAME##_print_symbol, \ NAME##_get_symbol_info, \ + NAME##_get_symbol_version_string, \ NAME##_bfd_is_local_label_name, \ NAME##_bfd_is_target_special_symbol, \ NAME##_get_lineno, \ @@ -7036,6 +7037,9 @@ typedef struct bfd_target void (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *, symbol_info *); #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) + const char *(*_bfd_get_symbol_version_string) + (bfd *, struct bfd_symbol *, bfd_boolean *); +#define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h)) bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *); alent * (*_get_lineno) (bfd *, struct bfd_symbol *); diff --git a/bfd/binary.c b/bfd/binary.c index d35e859..93a0cff 100644 --- a/bfd/binary.c +++ b/bfd/binary.c @@ -190,6 +190,8 @@ binary_canonicalize_symtab (bfd *abfd, asymbol **alocation) #define binary_make_empty_symbol _bfd_generic_make_empty_symbol #define binary_print_symbol _bfd_nosymbols_print_symbol +#define binary_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string /* Get information about a symbol. */ @@ -1375,6 +1375,7 @@ b_out_bfd_get_relocated_section_contents (bfd *output_bfd, /* Build the transfer vectors for Big and Little-Endian B.OUT files. */ #define aout_32_find_line _bfd_nosymbols_find_line +#define aout_32_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define aout_32_close_and_cleanup aout_32_bfd_free_cached_info #define b_out_bfd_link_hash_table_create _bfd_generic_link_hash_table_create diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index fea5f3b..05c45cf 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -4008,6 +4008,8 @@ const struct xcoff_dwsect_name xcoff_dwsect_names[] = { #define _bfd_xcoff_make_empty_symbol coff_make_empty_symbol #define _bfd_xcoff_print_symbol coff_print_symbol #define _bfd_xcoff_get_symbol_info coff_get_symbol_info +#define _bfd_xcoff_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string #define _bfd_xcoff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name #define _bfd_xcoff_bfd_is_target_special_symbol \ coff_bfd_is_target_special_symbol diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index 5985d81..72ea58b 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -2712,6 +2712,7 @@ const bfd_target rs6000_xcoff64_vec = coff_make_empty_symbol, coff_print_symbol, coff_get_symbol_info, + coff_get_symbol_version_string, _bfd_xcoff_is_local_label_name, coff_bfd_is_target_special_symbol, coff_get_lineno, @@ -2969,6 +2970,7 @@ const bfd_target rs6000_xcoff64_aix_vec = coff_make_empty_symbol, coff_print_symbol, coff_get_symbol_info, + coff_get_symbol_version_string, _bfd_xcoff_is_local_label_name, coff_bfd_is_target_special_symbol, coff_get_lineno, diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index bee0ea1..4368658 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1772,7 +1772,7 @@ extern bfd_boolean _bfd_elf_copy_private_bfd_data (bfd *, bfd *); extern bfd_boolean _bfd_elf_print_private_bfd_data (bfd *, void *); -const char * bfd_elf_get_symbol_version_string +const char * _bfd_elf_get_symbol_version_string (bfd *, asymbol *, bfd_boolean *); extern void bfd_elf_print_symbol (bfd *, void *, asymbol *, bfd_print_symbol_type); @@ -1425,8 +1425,8 @@ _bfd_elf_print_private_bfd_data (bfd *abfd, void *farg) /* Get version string. */ const char * -bfd_elf_get_symbol_version_string (bfd *abfd, asymbol *symbol, - bfd_boolean *hidden) +_bfd_elf_get_symbol_version_string (bfd *abfd, asymbol *symbol, + bfd_boolean *hidden) { const char *version_string = NULL; if (elf_dynversym (abfd) != 0 @@ -1522,9 +1522,9 @@ bfd_elf_print_symbol (bfd *abfd, bfd_fprintf_vma (abfd, file, val); /* If we have version information, print it. */ - version_string = bfd_elf_get_symbol_version_string (abfd, - symbol, - &hidden); + version_string = _bfd_elf_get_symbol_version_string (abfd, + symbol, + &hidden); if (version_string) { if (!hidden) diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index 692fb46..9bf4b18 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -66,6 +66,10 @@ #ifndef bfd_elfNN_get_symbol_info #define bfd_elfNN_get_symbol_info _bfd_elf_get_symbol_info #endif +#ifndef bfd_elfNN_get_symbol_version_string +#define bfd_elfNN_get_symbol_version_string \ + _bfd_elf_get_symbol_version_string +#endif #define bfd_elfNN_canonicalize_symtab _bfd_elf_canonicalize_symtab #define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound #define bfd_elfNN_make_empty_symbol _bfd_elf_make_empty_symbol diff --git a/bfd/i386msdos.c b/bfd/i386msdos.c index f02659f..bd2730a 100644 --- a/bfd/i386msdos.c +++ b/bfd/i386msdos.c @@ -162,6 +162,8 @@ msdos_set_section_contents (bfd *abfd, #define msdos_canonicalize_symtab _bfd_nosymbols_canonicalize_symtab #define msdos_print_symbol _bfd_nosymbols_print_symbol #define msdos_get_symbol_info _bfd_nosymbols_get_symbol_info +#define msdos_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string #define msdos_find_nearest_line _bfd_nosymbols_find_nearest_line #define msdos_find_line _bfd_nosymbols_find_line #define msdos_find_inliner_info _bfd_nosymbols_find_inliner_info diff --git a/bfd/i386os9k.c b/bfd/i386os9k.c index d8d5408..a8f87e5 100644 --- a/bfd/i386os9k.c +++ b/bfd/i386os9k.c @@ -155,6 +155,8 @@ os9k_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, #define aout_32_close_and_cleanup aout_32_bfd_free_cached_info #define aout_32_find_line _bfd_nosymbols_find_line +#define aout_32_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string #define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define aout_32_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup @@ -3828,6 +3828,8 @@ ieee_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, #define ieee_update_armap_timestamp bfd_true #define ieee_get_elt_at_index _bfd_generic_get_elt_at_index +#define ieee_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string #define ieee_bfd_is_target_special_symbol \ ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) #define ieee_bfd_is_local_label_name bfd_generic_is_local_label_name @@ -918,6 +918,7 @@ ihex_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, #define ihex_make_empty_symbol _bfd_generic_make_empty_symbol #define ihex_print_symbol _bfd_nosymbols_print_symbol #define ihex_get_symbol_info _bfd_nosymbols_get_symbol_info +#define ihex_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define ihex_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) #define ihex_bfd_is_local_label_name _bfd_nosymbols_bfd_is_local_label_name #define ihex_get_lineno _bfd_nosymbols_get_lineno diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h index 50a46ac..f51bc11 100644 --- a/bfd/libbfd-in.h +++ b/bfd/libbfd-in.h @@ -392,6 +392,8 @@ extern bfd_boolean _bfd_vms_lib_ia64_mkarchive (bfd *abfd); ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void) #define _bfd_nosymbols_get_symbol_info \ ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void) +#define _bfd_nosymbols_get_symbol_version_string \ + ((const char *(*) (bfd *, asymbol *, bfd_boolean *)) bfd_nullvoidptr) #define _bfd_nosymbols_bfd_is_local_label_name \ ((bfd_boolean (*) (bfd *, const char *)) bfd_false) #define _bfd_nosymbols_bfd_is_target_special_symbol \ diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 6c48f82..a1923c8 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -397,6 +397,8 @@ extern bfd_boolean _bfd_vms_lib_ia64_mkarchive (bfd *abfd); ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void) #define _bfd_nosymbols_get_symbol_info \ ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void) +#define _bfd_nosymbols_get_symbol_version_string \ + ((const char *(*) (bfd *, asymbol *, bfd_boolean *)) bfd_nullvoidptr) #define _bfd_nosymbols_bfd_is_local_label_name \ ((bfd_boolean (*) (bfd *, const char *)) bfd_false) #define _bfd_nosymbols_bfd_is_target_special_symbol \ diff --git a/bfd/libcoff-in.h b/bfd/libcoff-in.h index 6b6eb28..dc7866d 100644 --- a/bfd/libcoff-in.h +++ b/bfd/libcoff-in.h @@ -353,6 +353,8 @@ extern void coff_print_symbol (bfd *, void * filep, asymbol *, bfd_print_symbol_type); extern void coff_get_symbol_info (bfd *, asymbol *, symbol_info *ret); +#define coff_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string extern bfd_boolean _bfd_coff_is_local_label_name (bfd *, const char *); extern asymbol *coff_bfd_make_debug_symbol diff --git a/bfd/libcoff.h b/bfd/libcoff.h index 9479985..d1c466a 100644 --- a/bfd/libcoff.h +++ b/bfd/libcoff.h @@ -357,6 +357,8 @@ extern void coff_print_symbol (bfd *, void * filep, asymbol *, bfd_print_symbol_type); extern void coff_get_symbol_info (bfd *, asymbol *, symbol_info *ret); +#define coff_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string extern bfd_boolean _bfd_coff_is_local_label_name (bfd *, const char *); extern asymbol *coff_bfd_make_debug_symbol diff --git a/bfd/libecoff.h b/bfd/libecoff.h index 06434c2..ebfa37e 100644 --- a/bfd/libecoff.h +++ b/bfd/libecoff.h @@ -285,6 +285,8 @@ extern void _bfd_ecoff_print_symbol (bfd *, void *, asymbol *, bfd_print_symbol_type); extern void _bfd_ecoff_get_symbol_info (bfd *, asymbol *, symbol_info *); +#define _bfd_ecoff_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string extern bfd_boolean _bfd_ecoff_bfd_is_local_label_name (bfd *, const char *); #define _bfd_ecoff_get_lineno _bfd_nosymbols_get_lineno diff --git a/bfd/mach-o-target.c b/bfd/mach-o-target.c index a070e67..dd1ced1 100644 --- a/bfd/mach-o-target.c +++ b/bfd/mach-o-target.c @@ -31,6 +31,7 @@ #define bfd_mach_o_bfd_is_local_label_name bfd_generic_is_local_label_name #define bfd_mach_o_get_lineno _bfd_nosymbols_get_lineno #define bfd_mach_o_find_inliner_info _bfd_nosymbols_find_inliner_info +#define bfd_mach_o_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define bfd_mach_o_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define bfd_mach_o_read_minisymbols _bfd_generic_read_minisymbols #define bfd_mach_o_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol @@ -3204,6 +3204,9 @@ mmo_write_object_contents (bfd *abfd) #define mmo_bfd_is_target_special_symbol \ ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) +#define mmo_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string + /* Is this one really used or defined by anyone? */ #define mmo_get_lineno _bfd_nosymbols_get_lineno diff --git a/bfd/nlm-target.h b/bfd/nlm-target.h index 2343cff..44b41ed 100644 --- a/bfd/nlm-target.h +++ b/bfd/nlm-target.h @@ -25,6 +25,7 @@ #define nlm_make_empty_symbol nlmNAME (make_empty_symbol) #define nlm_print_symbol nlmNAME (print_symbol) #define nlm_get_symbol_info nlmNAME (get_symbol_info) +#define nlm_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define nlm_bfd_is_local_label_name bfd_generic_is_local_label_name #define nlm_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) #define nlm_get_lineno _bfd_nosymbols_get_lineno diff --git a/bfd/oasys.c b/bfd/oasys.c index 9ff9b9e..9ff9117 100644 --- a/bfd/oasys.c +++ b/bfd/oasys.c @@ -1170,6 +1170,7 @@ oasys_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, #define oasys_bfd_is_local_label_name bfd_generic_is_local_label_name #define oasys_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) #define oasys_get_lineno _bfd_nosymbols_get_lineno +#define oasys_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define oasys_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define oasys_read_minisymbols _bfd_generic_read_minisymbols #define oasys_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol @@ -43,6 +43,7 @@ #define bfd_pef_find_nearest_line _bfd_nosymbols_find_nearest_line #define bfd_pef_find_line _bfd_nosymbols_find_line #define bfd_pef_find_inliner_info _bfd_nosymbols_find_inliner_info +#define bfd_pef_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define bfd_pef_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define bfd_pef_read_minisymbols _bfd_generic_read_minisymbols #define bfd_pef_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol diff --git a/bfd/plugin.c b/bfd/plugin.c index a068861..7f8f8b5 100644 --- a/bfd/plugin.c +++ b/bfd/plugin.c @@ -85,6 +85,7 @@ dlerror (void) #define bfd_plugin_find_nearest_line _bfd_nosymbols_find_nearest_line #define bfd_plugin_find_line _bfd_nosymbols_find_line #define bfd_plugin_find_inliner_info _bfd_nosymbols_find_inliner_info +#define bfd_plugin_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define bfd_plugin_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define bfd_plugin_read_minisymbols _bfd_generic_read_minisymbols #define bfd_plugin_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol diff --git a/bfd/ppcboot.c b/bfd/ppcboot.c index 9ee8ab5..7599e20 100644 --- a/bfd/ppcboot.c +++ b/bfd/ppcboot.c @@ -326,6 +326,8 @@ ppcboot_get_symbol_info (bfd *ignore_abfd ATTRIBUTE_UNUSED, bfd_symbol_info (symbol, ret); } +#define ppcboot_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string #define ppcboot_bfd_is_target_special_symbol \ ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) #define ppcboot_bfd_is_local_label_name bfd_generic_is_local_label_name @@ -6718,6 +6718,7 @@ som_bfd_link_split_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) } #define som_find_line _bfd_nosymbols_find_line +#define som_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define som_close_and_cleanup som_bfd_free_cached_info #define som_read_ar_hdr _bfd_generic_read_ar_hdr #define som_write_ar_hdr _bfd_generic_write_ar_hdr @@ -1258,6 +1258,7 @@ srec_print_symbol (bfd *abfd, #define srec_find_line _bfd_nosymbols_find_line #define srec_find_inliner_info _bfd_nosymbols_find_inliner_info #define srec_make_empty_symbol _bfd_generic_make_empty_symbol +#define srec_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define srec_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define srec_read_minisymbols _bfd_generic_read_minisymbols #define srec_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol diff --git a/bfd/targets.c b/bfd/targets.c index 8323e92..6a282ea 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -363,6 +363,7 @@ BFD_JUMP_TABLE macros. . NAME##_make_empty_symbol, \ . NAME##_print_symbol, \ . NAME##_get_symbol_info, \ +. NAME##_get_symbol_version_string, \ . NAME##_bfd_is_local_label_name, \ . NAME##_bfd_is_target_special_symbol, \ . NAME##_get_lineno, \ @@ -384,6 +385,9 @@ BFD_JUMP_TABLE macros. . void (*_bfd_get_symbol_info) . (bfd *, struct bfd_symbol *, symbol_info *); .#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) +. const char *(*_bfd_get_symbol_version_string) +. (bfd *, struct bfd_symbol *, bfd_boolean *); +.#define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h)) . bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); . bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *); . alent * (*_get_lineno) (bfd *, struct bfd_symbol *); diff --git a/bfd/tekhex.c b/bfd/tekhex.c index 0328689..2f14194 100644 --- a/bfd/tekhex.c +++ b/bfd/tekhex.c @@ -957,6 +957,7 @@ tekhex_print_symbol (bfd *abfd, #define tekhex_find_nearest_line _bfd_nosymbols_find_nearest_line #define tekhex_find_line _bfd_nosymbols_find_line #define tekhex_find_inliner_info _bfd_nosymbols_find_inliner_info +#define tekhex_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define tekhex_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define tekhex_read_minisymbols _bfd_generic_read_minisymbols #define tekhex_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol diff --git a/bfd/versados.c b/bfd/versados.c index 5bafcb1..2368998 100644 --- a/bfd/versados.c +++ b/bfd/versados.c @@ -811,6 +811,7 @@ versados_canonicalize_reloc (bfd *abfd, #define versados_find_nearest_line _bfd_nosymbols_find_nearest_line #define versados_find_line _bfd_nosymbols_find_line #define versados_find_inliner_info _bfd_nosymbols_find_inliner_info +#define versados_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define versados_make_empty_symbol _bfd_generic_make_empty_symbol #define versados_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define versados_read_minisymbols _bfd_generic_read_minisymbols diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index 3789f79..8c24ef0 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -9191,6 +9191,9 @@ bfd_vms_get_data (bfd *abfd) ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) #define alpha_vms_print_symbol vms_print_symbol #define alpha_vms_get_symbol_info vms_get_symbol_info +#define alpha_vms_get_symbol_version_string \ + _bfd_nosymbols_get_symbol_version_string + #define alpha_vms_read_minisymbols _bfd_generic_read_minisymbols #define alpha_vms_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol #define alpha_vms_get_lineno _bfd_nosymbols_get_lineno @@ -35,6 +35,7 @@ #define bfd_sym_find_nearest_line _bfd_nosymbols_find_nearest_line #define bfd_sym_find_line _bfd_nosymbols_find_line #define bfd_sym_find_inliner_info _bfd_nosymbols_find_inliner_info +#define bfd_sym_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string #define bfd_sym_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define bfd_sym_read_minisymbols _bfd_generic_read_minisymbols #define bfd_sym_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol diff --git a/binutils/ChangeLog b/binutils/ChangeLog index f4d9aa6..86c8555 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,5 +1,11 @@ 2014-11-25 H.J. Lu <hongjiu.lu@intel.com> + * objdump.c (objdump_print_symname): Replace + bfd_elf_get_symbol_version_string with + bfd_get_symbol_version_string. + +2014-11-25 H.J. Lu <hongjiu.lu@intel.com> + PR binutils/16496 * objdump.c (objdump_print_symname): Call bfd_elf_get_symbol_version_string to get ELF symbol version diff --git a/binutils/objdump.c b/binutils/objdump.c index e04c3ee..fdfa602 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -808,9 +808,7 @@ objdump_print_symname (bfd *abfd, struct disassemble_info *inf, name = alloc; } - if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) - version_string = bfd_elf_get_symbol_version_string (abfd, sym, - &hidden); + version_string = bfd_get_symbol_version_string (abfd, sym, &hidden); if (bfd_is_und_section (bfd_get_section (sym))) hidden = TRUE; |