* resolve.cc (Symbol_table::resolve): Remember whether undef was
commit47bcc9464af033f4e47c1860296688dc96161d0c
authorCary Coutant <ccoutant@google.com>
Fri, 9 Jul 2010 01:34:31 +0000 (9 01:34 +0000)
committerCary Coutant <ccoutant@google.com>
Fri, 9 Jul 2010 01:34:31 +0000 (9 01:34 +0000)
treee2f30609bb99380185213c16425bde2b1d0d7563
parent3ac77fb2b1644b8ef8c36ddf18fc19d816da362c
* resolve.cc (Symbol_table::resolve): Remember whether undef was
weak when resolving to a dynamic def.
(Symbol_table::should_override): Add adjust_dyndef flag; set it
for weak undef/dynamic def cases. Adjust callers.
* symtab.cc (Symbol::init_fields): Initialize undef_binding_set_ and
undef_binding_weak_.
(Symbol_table::sized_write_globals): Adjust symbol binding.
(Symbol_table::sized_write_symbol): Add binding parameter.
* symtab.h (Symbol::set_undef_binding): New method.
(Symbol::is_undef_binding_weak): New method.
(Symbol::undef_binding_set_, Symbol::undef_binding_weak_): New members.
(Symbol_table::should_override): Add new parameter.
(Symbol_table::sized_write_symbol): Add new parameter.

* testsuite/weak_undef_file1.cc: Add new test case.
* testsuite/weak_undef_file2.cc: Fix header comment.
* testsuite/weak_undef_test.cc: Add new test case.
gold/ChangeLog
gold/resolve.cc
gold/symtab.cc
gold/symtab.h
gold/testsuite/weak_undef_file1.cc
gold/testsuite/weak_undef_file2.cc
gold/testsuite/weak_undef_test.cc