[gold patch] Incremental 14/18: Add soname and as_needed
Ian Lance Taylor
iant@google.com
Tue May 24 14:48:00 GMT 2011
Cary Coutant <ccoutant@google.com> writes:
> * dynobj.h (Dynobj::do_dynobj): New function.
> * incremental-dump.cc (dump_incremental_inputs): Print as_needed
> flag and soname for shared objects.
> * incremental.cc (Incremental_inputs::report_object): Make
> either Incremental_object_entry or Incremental_dynobj_entry; add
> soname to string table.
> (Incremental_inputs::report_input_section): Add assertion.
> (Output_section_incremental_inputs::set_final_data_size): Adjust
> type of input file entry for shared libraries; adjust size of
> shared library info entry.
> (Output_section_incremental_inputs::write_input_files): Write
> as_needed flag for shared libraries.
> (Output_section_incremental_inputs::write_info_blocks): Adjust type
> of input file entry for shared libraries; write soname.
> (Sized_incr_dynobj::Sized_incr_dynobj): Read as_needed flag and
> soname from incremental info.
> * incremental.h (enum Incremental_input_flags): Add
> INCREMENTAL_INPUT_AS_NEEDED.
> (Incremental_input_entry::Incremental_input_entry): Initialize new
> data member.
> (Incremental_input_entry::set_as_needed): New function.
> (Incremental_input_entry::as_needed): New function.
> (Incremental_input_entry::do_dynobj_entry): New function.
> (Incremental_input_entry::as_needed_): New data member.
> (Incremental_object_entry::Incremental_object_entry): Don't check
> for shared library.
> (Incremental_object_entry::do_type): Likewise.
> (class Incremental_dynobj_entry): New class.
> (Incremental_input_entry_reader::as_needed): New function.
> (Incremental_input_entry_reader::get_soname): New function.
> (Incremental_input_entry_reader::get_global_symbol_count): Rewrite.
> (Incremental_input_entry_reader::get_output_symbol_index): Adjust
> size of shared library info entry.
> * layout.cc (Layout::finish_dynamic_section): Don't test for
> incremental link when adding DT_NEEDED entries.
> * object.h (Object::Object): Initialize new data member.
> (Object::dynobj): New function.
> (Object::set_as_needed): New function.
> (Object::as_needed): New function.
> (Object::do_dynobj): New function.
> (Object::as_needed_): New data member.
> * testsuite/object_unittest.cc (Object_test): Set default options.
This is OK.
Thanks.
Ian
More information about the Binutils
mailing list