OSDN Git Service

PR 10400
authorian <ian>
Fri, 17 Jul 2009 01:07:33 +0000 (01:07 +0000)
committerian <ian>
Fri, 17 Jul 2009 01:07:33 +0000 (01:07 +0000)
commit7df87ebf7f92ff23917a4e5e2855a24c068d7489
tree371f82b1fb772b1f004c3fc1c75fcd5eb80a1973
parent1fd47a0e20cd6d5c1e5df7cab1eda076b2c5da9c
PR 10400
* layout.h: #include <map>.
(class Kept_section): Change from struct to class.  Add accessors
and setters.  Add section size to Comdat_group mapping.  Change
Comdat_group to std::map.  Add is_comdat_ field.  Add
linkonce_size field in union.
(class Layout): Update declaration of find_or_add_kept_section.
Don't declare find_kept_object.
* layout.cc (Layout::find_or_add_kept_section): Remove candidate
parameter.  Add object, shndx, is_comdat, and is_group_name
parameters.  Change all callers.  Adjust for new Kept_section.
(Layout::find_kept_object): Remove.
* object.cc (Sized_relobj::include_section_group): Update use of
Kept_section.  Rename secnum to shndx.  Only record
Kept_comdat_section if sections are the same size.
(Sized_relobj::include_linkonce_section): Update use of
Kept_section.  Only record Kept_comdat_section if sections are the
same size.  Set size of linkonce section.
(Sized_relobj::map_to_kept_section): Update call to
get_kept_comdat_section.
* object.h (class Sized_relobj): Rename fields in
Kept_comdat_section to drop trailing underscores; change object
field to Relobj*.  Change Kept_comdat_section_table to store
struct rather than pointer.
(Sized_relobj::set_kept_comdat_section): Remove kept parameter.
Add kept_object and kept_shndx parameters.  Change all callers.
(Sized_relobj::get_kept_comdat_section): Change return type to
bool.  Add kept_object and kept_shndx parameters.  Change all
callers.
* plugin.cc (Pluginobj::include_comdat_group): Update call to
Layout::find_or_add_kept_section.
gold/ChangeLog
gold/layout.cc
gold/layout.h
gold/object.cc
gold/object.h
gold/plugin.cc