[RFA:] Fix DEFINED in ld scripts.
Nick Clifton
nickc@redhat.com
Fri Oct 10 12:09:00 GMT 2003
Hi Hans-Peter,
> ld:
>
> * ld.texinfo (Builtin Functions) <DEFINED>: Say that only symbols
> defined before the statement using DEFINED yield 1.
> * ldexp.c (fold_name) <case DEFINED>: In lang_first_phase_enum,
> call lang_track_definedness on symbol. In subsequent phases, use
> lang_symbol_definition_iteration and lang_statement_iteration to
> check whether the symbol was defined before the current statement.
> (exp_fold_tree) <case etree_assign et al>: Call
> lang_update_definedness before updating symbol type when setting
> symbol.
> * ldlang.c (lang_definedness_table): New variable.
> (lang_definedness_newfunc, lang_track_definedness)
> (lang_symbol_definition_iteration, lang_update_definedness): New
> functions.
> (lang_init): Initialize lang_definedness_table and
> lang_statement_iteration.
> (lang_finish): Destroy bfd_hash_table_free.
> (lang_size_sections): Increment lang_statement_iteration.
> (lang_process): Increment lang_statement_iteration before calls to
> lang_do_assignments.
> * ldlang.h (struct lang_definedness_hash_entry)
> (lang_statement_iteration, lang_track_definedness)
> (lang_symbol_definition_iteration, lang_update_definedness):
> Declare.
>
> ld/testsuite:
> * ld-scripts/defined3.d, ld-scripts/defined3.t: New test.
> * ld-scripts/defined.exp: Run defined3.
>
Approved - please apply - thanks!
Cheers
Nick
More information about the Binutils
mailing list