* script.cc (Script_options::finalize_symbols): Finalize SECTIONS

symbols before other symbols.
	* testsuite/script_test_2.cc (test_addr): Declare.
	(test_addr_alias): Declare.
	(main): Check that test_addr and test_addr_alias have the right
	values.
	* testsuite/script_test_2.t: Define test_addr_alias and
	test_addr.
This commit is contained in:
Ian Lance Taylor 2008-07-29 22:58:03 +00:00
parent 1f70da6a3a
commit 7c07ececf4
4 changed files with 25 additions and 2 deletions

View file

@ -1109,6 +1109,12 @@ Script_options::add_symbols_to_table(Symbol_table* symtab)
void
Script_options::finalize_symbols(Symbol_table* symtab, const Layout* layout)
{
// We finalize the symbols defined in SECTIONS first, because they
// are the ones which may have changed. This way if symbol outside
// SECTIONS are defined in terms of symbols inside SECTIONS, they
// will get the right value.
this->script_sections_.finalize_symbols(symtab, layout);
for (Symbol_assignments::iterator p = this->symbol_assignments_.begin();
p != this->symbol_assignments_.end();
++p)
@ -1118,8 +1124,6 @@ Script_options::finalize_symbols(Symbol_table* symtab, const Layout* layout)
p != this->assertions_.end();
++p)
(*p)->check(symtab, layout);
this->script_sections_.finalize_symbols(symtab, layout);
}
// Set section addresses. We set all the symbols which have absolute