forked from Imagelibrary/binutils-gdb
bfd/
* elflink.c (bfd_elf_record_link_assignment): Remove --defsym
symbols special case.
ld/
* ldexp.h (etree_union): Add defsym member to the assign member
structure.
(exp_assign): Add hidden argument to prototype.
* ldexp.c (exp_fold_tree_1): Use the defsym member to handle
--defsym symbols.
(exp_assop): Add defsym argument, initialize the defsym member
of the assign structure.
(exp_assign): Handle hidden symbols.
(exp_defsym): Update to use the defsym argument to exp_assop.
(exp_provide): Update to handle the defsym argument to exp_assop.
* ldlex.l (HIDDEN): New token.
* ldgram.y (HIDDEN): Likewise.
(assignment, section): Update calls to exp_assign.
* ldctor.c (ldctor_build_sets): Likewise.
* mri.c (mri_format): Likewise.
* ldlang.c (lang_insert_orphan, lang_leave_overlay): Likewise.
(open_input_bfds): Remove --defsym symbols special case.
* emultempl/beos.em (gld_${EMULATION_NAME}_set_symbols): Update
call to exp_assign.
* emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Likewise.
* emultempl/pep.em (gld_${EMULATION_NAME}_set_symbols): Likewise.
* emultempl/spuelf.em (spu_place_special_section): Likewise.
* emultempl/xtensaelf.em (ld_xtensa_insert_page_offsets):
Likewise.
* ld.texinfo (Assigning Values to Symbols): Add HIDDEN.
(HIDDEN): New subsection.
This commit is contained in:
16
ld/ldexp.c
16
ld/ldexp.c
@@ -892,7 +892,7 @@ exp_fold_tree_1 (etree_type *tree)
|
||||
if (expld.result.valid_p
|
||||
|| (expld.phase <= lang_mark_phase_enum
|
||||
&& tree->type.node_class == etree_assign
|
||||
&& tree->assign.hidden))
|
||||
&& tree->assign.defsym))
|
||||
{
|
||||
if (h == NULL)
|
||||
{
|
||||
@@ -1054,6 +1054,7 @@ static etree_type *
|
||||
exp_assop (const char *dst,
|
||||
etree_type *src,
|
||||
enum node_tree_enum class,
|
||||
bfd_boolean defsym,
|
||||
bfd_boolean hidden)
|
||||
{
|
||||
etree_type *n;
|
||||
@@ -1065,20 +1066,25 @@ exp_assop (const char *dst,
|
||||
n->assign.type.node_class = class;
|
||||
n->assign.src = src;
|
||||
n->assign.dst = dst;
|
||||
n->assign.defsym = defsym;
|
||||
n->assign.hidden = hidden;
|
||||
return n;
|
||||
}
|
||||
|
||||
/* Handle linker script assignments and HIDDEN. */
|
||||
|
||||
etree_type *
|
||||
exp_assign (const char *dst, etree_type *src)
|
||||
exp_assign (const char *dst, etree_type *src, bfd_boolean hidden)
|
||||
{
|
||||
return exp_assop (dst, src, etree_assign, FALSE);
|
||||
return exp_assop (dst, src, etree_assign, FALSE, hidden);
|
||||
}
|
||||
|
||||
/* Handle --defsym command-line option. */
|
||||
|
||||
etree_type *
|
||||
exp_defsym (const char *dst, etree_type *src)
|
||||
{
|
||||
return exp_assop (dst, src, etree_assign, TRUE);
|
||||
return exp_assop (dst, src, etree_assign, TRUE, FALSE);
|
||||
}
|
||||
|
||||
/* Handle PROVIDE. */
|
||||
@@ -1086,7 +1092,7 @@ exp_defsym (const char *dst, etree_type *src)
|
||||
etree_type *
|
||||
exp_provide (const char *dst, etree_type *src, bfd_boolean hidden)
|
||||
{
|
||||
return exp_assop (dst, src, etree_provide, hidden);
|
||||
return exp_assop (dst, src, etree_provide, FALSE, hidden);
|
||||
}
|
||||
|
||||
/* Handle ASSERT. */
|
||||
|
||||
Reference in New Issue
Block a user