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:
H.J. Lu 2011-09-16 01:15:19 +00:00
parent 02a7f96ef7
commit 7c14eb0589
2 changed files with 9 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12975
* bfdlink.h (bfd_link_info): Add version_info.
2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* xregex.h (regoff_t): Define. * xregex.h (regoff_t): Define.

View File

@ -245,6 +245,7 @@ struct flag_info
}; };
struct bfd_elf_dynamic_list; struct bfd_elf_dynamic_list;
struct bfd_elf_version_tree;
/* This structure holds all the information needed to communicate /* This structure holds all the information needed to communicate
between BFD and the linker when doing a link. */ between BFD and the linker when doing a link. */
@ -496,6 +497,9 @@ struct bfd_link_info
/* List of symbols should be dynamic. */ /* List of symbols should be dynamic. */
struct bfd_elf_dynamic_list *dynamic_list; 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 /* This structures holds a set of callback functions. These are called