mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-31 01:45:52 +08:00
Check if a symbol is hidden by linker script.
bfd/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * bfd-in.h (bfd_elf_size_dynamic_sections): Remove pointer to struct bfd_elf_version_tree. * elflink.c (elf_info_failed): Remove verdefs. (_bfd_elf_export_symbol): Updated. _bfd_elf_link_assign_sym_version): Likewise. (bfd_elf_size_dynamic_sections): Remove pointer to struct bfd_elf_version_tree. Updated. (bfd_elf_gc_mark_dynamic_ref_symbol): Check if a symbol is hidden by linker script. * linker.c (bfd_hide_sym_by_version): New. * bfd-in2.h: Regenerated. include/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * bfdlink.h (bfd_link_info): Add version_info. ld/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * ldlang.c (lang_elf_version_info): Removed. (lang_register_vers_node): Replace lang_elf_version_info with link_info.version_info. (lang_add_vers_depend): Likewise. * pe-dll.c (process_def_file_and_drectve): Likewise. * emultempl/solaris2.em (elf_solaris2_before_allocation): Likewise. * ldlang.h (lang_elf_version_info): Removed. * plugin.c (is_visible_from_outside): Check if symbol is hidden by version script. * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Remove lang_elf_version_info. ld/testsuite/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * ld-elf/pr12975.d: New. * ld-elf/pr12975.s: Likewise. * ld-elf/pr12975.t: Likewise.
This commit is contained in:
23
bfd/linker.c
23
bfd/linker.c
@ -3380,3 +3380,26 @@ bfd_find_version_for_sym (struct bfd_elf_version_tree *verdefs,
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
FUNCTION
|
||||
bfd_hide_sym_by_version
|
||||
|
||||
SYNOPSIS
|
||||
bfd_boolean bfd_hide_sym_by_version
|
||||
(struct bfd_elf_version_tree *verdefs, const char *sym_name);
|
||||
|
||||
DESCRIPTION
|
||||
Search an elf version script tree for symbol versioning
|
||||
info for a given symbol. Return TRUE if the symbol is hidden.
|
||||
|
||||
*/
|
||||
|
||||
bfd_boolean
|
||||
bfd_hide_sym_by_version (struct bfd_elf_version_tree *verdefs,
|
||||
const char *sym_name)
|
||||
{
|
||||
bfd_boolean hidden = FALSE;
|
||||
bfd_find_version_for_sym (verdefs, sym_name, &hidden);
|
||||
return hidden;
|
||||
}
|
||||
|
Reference in New Issue
Block a user