2005-08-05  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd.c (bfd_hide_symbol): New.
	* bfd-in2.h: Regenerated.

ld/

2005-08-05  H.J. Lu  <hongjiu.lu@intel.com>

	* ld.texinfo: Document PROVIDE_HIDDEN.

	* ldexp.c (exp_fold_tree_1): Hide a provided symbol if asked.
	(exp_provide): Add and set hidden.

	* ldexp.h (etree_type): Add hidden to assign.

	* ldgram.y (PROVIDE_HIDDEN): New.
	* ldlex.l (PROVIDE_HIDDEN): Likewise.

	* scripttempl/elf.sc: Use PROVIDE_HIDDEN on array bound
	symbols.
This commit is contained in:
H.J. Lu
2005-08-05 13:52:13 +00:00
parent 9599dfb1f6
commit 7af8e99880
10 changed files with 76 additions and 10 deletions

View File

@ -740,6 +740,8 @@ exp_fold_tree_1 (etree_type *tree)
defined by some object. */
break;
}
if (tree->assign.hidden)
bfd_hide_symbol (output_bfd, &link_info, h, TRUE);
}
exp_fold_tree_1 (tree->assign.src);
@ -884,7 +886,7 @@ exp_assop (int code, const char *dst, etree_type *src)
/* Handle PROVIDE. */
etree_type *
exp_provide (const char *dst, etree_type *src)
exp_provide (const char *dst, etree_type *src, bfd_boolean hidden)
{
etree_type *n;
@ -893,6 +895,7 @@ exp_provide (const char *dst, etree_type *src)
n->assign.type.node_class = etree_provide;
n->assign.src = src;
n->assign.dst = dst;
n->assign.hidden = hidden;
return n;
}