From: H.J. Lu Date: Fri, 16 Sep 2011 01:15:19 +0000 (+0000) Subject: Check if a symbol is hidden by linker script. X-Git-Tag: binutils-2_22-branchpoint~3 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=7c14eb05898d6095d8f694bf41c4f0914d9d96b1;p=newlib-cygwin.git Check if a symbol is hidden by linker script. bfd/ 2011-09-15 H.J. Lu 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 PR ld/12975 * bfdlink.h (bfd_link_info): Add version_info. ld/ 2011-09-15 H.J. Lu 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 PR ld/12975 * ld-elf/pr12975.d: New. * ld-elf/pr12975.s: Likewise. * ld-elf/pr12975.t: Likewise. --- diff --git a/include/ChangeLog b/include/ChangeLog index 53984e1c0..1a4680ed2 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2011-09-15 H.J. Lu + + PR ld/12975 + * bfdlink.h (bfd_link_info): Add version_info. + 2011-07-25 Rainer Orth * xregex.h (regoff_t): Define. diff --git a/include/bfdlink.h b/include/bfdlink.h index 71b1e253c..c9e127c5c 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -245,6 +245,7 @@ struct flag_info }; struct bfd_elf_dynamic_list; +struct bfd_elf_version_tree; /* This structure holds all the information needed to communicate between BFD and the linker when doing a link. */ @@ -496,6 +497,9 @@ struct bfd_link_info /* List of symbols should be dynamic. */ struct bfd_elf_dynamic_list *dynamic_list; + + /* The version information. */ + struct bfd_elf_version_tree *version_info; }; /* This structures holds a set of callback functions. These are called