This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [RFA:] Fix DEFINED in ld scripts.
- From: Nick Clifton <nickc at redhat dot com>
- To: Hans-Peter Nilsson <hp at bitrange dot com>
- Cc: binutils at sources dot redhat dot com
- Date: Fri, 10 Oct 2003 13:06:33 +0100
- Subject: Re: [RFA:] Fix DEFINED in ld scripts.
- References: <Pine.BSF.4.44.0310100411150.56594-100000@dair.pair.com>
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