aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-03-24 15:37:14 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-03-24 15:37:26 -0700
commit1081065c519d1bfc3847bf4b0a0ce4bc3224bcd3 (patch)
tree39fb17a236b3ab231474f156b8dd30d37740bc57
parenta18cd0cab43f45b05e9f8bcbf8fed1d67834442d (diff)
downloadgdb-1081065c519d1bfc3847bf4b0a0ce4bc3224bcd3.zip
gdb-1081065c519d1bfc3847bf4b0a0ce4bc3224bcd3.tar.gz
gdb-1081065c519d1bfc3847bf4b0a0ce4bc3224bcd3.tar.bz2
bfd: Add a bfd_boolean argument to bfd_get_symbol_version_string
We can't call _bfd_elf_get_symbol_version_name from nm.c since it isn't available for all target configurations. This patch add a bfd_boolean argument to bfd_get_symbol_version_string instead. bfd/ PR binutils/25708 * elf-bfd.h (_bfd_elf_get_symbol_version_name): Renamed to ... (_bfd_elf_get_symbol_version_string): This. * elf.c (_bfd_elf_get_symbol_version_name): Renamed to ... (_bfd_elf_get_symbol_version_string): This. (bfd_elf_print_symbol): Pass TRUE to _bfd_elf_get_symbol_version_string. * libbfd-in.h (_bfd_nosymbols_get_symbol_version_string): Add a bfd_boolean argument. * syms.c (_bfd_nosymbols_get_symbol_version_string): Likewise. * targets.c (_bfd_get_symbol_version_string): Likewise. (bfd_get_symbol_version_string): Likewise. * bfd-in2.h: Regenerated. binutils/ PR binutils/25708 * nm.c (print_symname): Replace _bfd_elf_get_symbol_version_name with bfd_get_symbol_version_string. (print_symbo): Pass TRUE to bfd_get_symbol_version_string. * objdump.c (objdump_print_symname): Likewise.
-rw-r--r--bfd/ChangeLog16
-rw-r--r--bfd/bfd-in2.h5
-rw-r--r--bfd/elf-bfd.h2
-rw-r--r--bfd/elf.c16
-rw-r--r--bfd/libbfd-in.h2
-rw-r--r--bfd/libbfd.h2
-rw-r--r--bfd/syms.c1
-rw-r--r--bfd/targets.c5
-rw-r--r--binutils/ChangeLog8
-rw-r--r--binutils/nm.c8
-rw-r--r--binutils/objdump.c3
11 files changed, 43 insertions, 25 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 4120b96..f273ea5 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,19 @@
+2020-03-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/25708
+ * elf-bfd.h (_bfd_elf_get_symbol_version_name): Renamed to ...
+ (_bfd_elf_get_symbol_version_string): This.
+ * elf.c (_bfd_elf_get_symbol_version_name): Renamed to ...
+ (_bfd_elf_get_symbol_version_string): This.
+ (bfd_elf_print_symbol): Pass TRUE to
+ _bfd_elf_get_symbol_version_string.
+ * libbfd-in.h (_bfd_nosymbols_get_symbol_version_string): Add a
+ bfd_boolean argument.
+ * syms.c (_bfd_nosymbols_get_symbol_version_string): Likewise.
+ * targets.c (_bfd_get_symbol_version_string): Likewise.
+ (bfd_get_symbol_version_string): Likewise.
+ * bfd-in2.h: Regenerated.
+
2020-03-24 Nick Clifton <nickc@redhat.com>
Jaydeep Chauhan <jaydeepchauhan1494@gmail.com>
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 14e2e3b..a5f0609 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -7514,9 +7514,10 @@ typedef struct bfd_target
#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,
bfd_boolean *);
-#define bfd_get_symbol_version_string(b,s,h) \
- BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
+#define bfd_get_symbol_version_string(b,s,p,h) \
+ BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,p,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/elf-bfd.h b/bfd/elf-bfd.h
index 5f3a5cc..03e2b6f 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2077,8 +2077,6 @@ extern bfd_boolean _bfd_elf_copy_private_bfd_data
extern bfd_boolean _bfd_elf_print_private_bfd_data
(bfd *, void *);
const char * _bfd_elf_get_symbol_version_string
- (bfd *, asymbol *, bfd_boolean *);
-const char * _bfd_elf_get_symbol_version_name
(bfd *, asymbol *, bfd_boolean, bfd_boolean *);
extern void bfd_elf_print_symbol
(bfd *, void *, asymbol *, bfd_print_symbol_type);
diff --git a/bfd/elf.c b/bfd/elf.c
index f5354d2..2512b65 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -1887,9 +1887,9 @@ _bfd_elf_print_private_bfd_data (bfd *abfd, void *farg)
and return symbol version for symbol version itself. */
const char *
-_bfd_elf_get_symbol_version_name (bfd *abfd, asymbol *symbol,
- bfd_boolean base_p,
- bfd_boolean *hidden)
+_bfd_elf_get_symbol_version_string (bfd *abfd, asymbol *symbol,
+ bfd_boolean base_p,
+ bfd_boolean *hidden)
{
const char *version_string = NULL;
if (elf_dynversym (abfd) != 0
@@ -1939,15 +1939,6 @@ _bfd_elf_get_symbol_version_name (bfd *abfd, asymbol *symbol,
return version_string;
}
-/* Get version string. */
-
-const char *
-_bfd_elf_get_symbol_version_string (bfd *abfd, asymbol *symbol,
- bfd_boolean *hidden)
-{
- return _bfd_elf_get_symbol_version_name (abfd, symbol, TRUE, hidden);
-}
-
/* Display ELF-specific fields of a symbol. */
void
@@ -2003,6 +1994,7 @@ bfd_elf_print_symbol (bfd *abfd,
/* If we have version information, print it. */
version_string = _bfd_elf_get_symbol_version_string (abfd,
symbol,
+ TRUE,
&hidden);
if (version_string)
{
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index c8cf079..5d24efb 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -447,7 +447,7 @@ extern void _bfd_nosymbols_print_symbol
extern void _bfd_nosymbols_get_symbol_info
(bfd *, asymbol *, symbol_info *) ATTRIBUTE_HIDDEN;
extern const char * _bfd_nosymbols_get_symbol_version_string
- (bfd *, asymbol *, bfd_boolean *) ATTRIBUTE_HIDDEN;
+ (bfd *, asymbol *, bfd_boolean, bfd_boolean *) ATTRIBUTE_HIDDEN;
extern bfd_boolean _bfd_nosymbols_bfd_is_local_label_name
(bfd *, const char *) ATTRIBUTE_HIDDEN;
#define _bfd_nosymbols_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 3c184fc..348ccfd 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -452,7 +452,7 @@ extern void _bfd_nosymbols_print_symbol
extern void _bfd_nosymbols_get_symbol_info
(bfd *, asymbol *, symbol_info *) ATTRIBUTE_HIDDEN;
extern const char * _bfd_nosymbols_get_symbol_version_string
- (bfd *, asymbol *, bfd_boolean *) ATTRIBUTE_HIDDEN;
+ (bfd *, asymbol *, bfd_boolean, bfd_boolean *) ATTRIBUTE_HIDDEN;
extern bfd_boolean _bfd_nosymbols_bfd_is_local_label_name
(bfd *, const char *) ATTRIBUTE_HIDDEN;
#define _bfd_nosymbols_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false
diff --git a/bfd/syms.c b/bfd/syms.c
index c1de8eb..76c2123 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -1468,6 +1468,7 @@ _bfd_nosymbols_get_symbol_info (bfd *abfd ATTRIBUTE_UNUSED,
const char *
_bfd_nosymbols_get_symbol_version_string (bfd *abfd,
asymbol *symbol ATTRIBUTE_UNUSED,
+ bfd_boolean base_p ATTRIBUTE_UNUSED,
bfd_boolean *hidden ATTRIBUTE_UNUSED)
{
return (const char *) _bfd_ptr_bfd_null_error (abfd);
diff --git a/bfd/targets.c b/bfd/targets.c
index 39683e8..d05b915 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -392,9 +392,10 @@ BFD_JUMP_TABLE macros.
.#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,
. bfd_boolean *);
-.#define bfd_get_symbol_version_string(b,s,h) \
-. BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
+.#define bfd_get_symbol_version_string(b,s,p,h) \
+. BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,p,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/binutils/ChangeLog b/binutils/ChangeLog
index 2565f36..accd265 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,6 +1,14 @@
2020-03-24 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/25708
+ * nm.c (print_symname): Replace _bfd_elf_get_symbol_version_name
+ with bfd_get_symbol_version_string.
+ (print_symbo): Pass TRUE to bfd_get_symbol_version_string.
+ * objdump.c (objdump_print_symname): Likewise.
+
+2020-03-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/25708
* nm.c (SYM_NAME): Removed.
(print_symname): Add a pointer to struct extended_symbol_info
argument. Call _bfd_elf_get_symbol_version_name to get symbol
diff --git a/binutils/nm.c b/binutils/nm.c
index 0e475f8..1b5122d 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -417,9 +417,8 @@ print_symname (const char *form, struct extended_symbol_info *info,
bfd_boolean hidden;
version_string
- = _bfd_elf_get_symbol_version_name (abfd,
- &info->elfinfo->symbol,
- FALSE, &hidden);
+ = bfd_get_symbol_version_string (abfd, &info->elfinfo->symbol,
+ FALSE, &hidden);
if (version_string && version_string[0])
printf ("%s%s", hidden ? "@" : "@@", version_string);
}
@@ -908,7 +907,8 @@ print_symbol (bfd * abfd,
bfd_boolean hidden = FALSE;
if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0)
- version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
+ version_string = bfd_get_symbol_version_string (abfd, sym,
+ TRUE, &hidden);
if (bfd_is_und_section (bfd_asymbol_section (sym)))
hidden = TRUE;
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 211be92..81c0b4f 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -1031,7 +1031,8 @@ objdump_print_symname (bfd *abfd, struct disassemble_info *inf,
}
if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0)
- version_string = bfd_get_symbol_version_string (abfd, sym, &hidden);
+ version_string = bfd_get_symbol_version_string (abfd, sym, TRUE,
+ &hidden);
if (bfd_is_und_section (bfd_asymbol_section (sym)))
hidden = TRUE;