diff options
author | Cary Coutant <ccoutant@gmail.com> | 2015-05-02 08:40:09 -0700 |
---|---|---|
committer | Cary Coutant <ccoutant@gmail.com> | 2015-05-02 08:43:27 -0700 |
commit | efc6fa128f00d61014f56530724767ea048bf594 (patch) | |
tree | 62b10bba0d57ba060ce679862a032fe0fde07071 /gold/plugin.cc | |
parent | 0138c3463da05ebddc8d864f6f251df48c454adc (diff) | |
download | fsf-binutils-gdb-efc6fa128f00d61014f56530724767ea048bf594.zip fsf-binutils-gdb-efc6fa128f00d61014f56530724767ea048bf594.tar.gz fsf-binutils-gdb-efc6fa128f00d61014f56530724767ea048bf594.tar.bz2 |
Change Section_id type to use Relobj* instead of Object*.
2015-04-29 Cary Coutant <cary@google.com>
Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
gold/
* gc.h (Garbage_collection::is_section_garbage): Change Object*
to Relobj*.
(Garbage_collection::add_reference): Likewise.
(Garbage_collection::gc_process_relocs): Likewise. Don't push
object/shndx pair onto *secvec for dynamic objects. Don't follow
relocations pointing to dynamic objects for GC.
* icf.cc (Icf::find_identical_sections): Change Object* to Relobj*.
(Icf::unfold_section): Likewise.
(Icf::is_section_folded): Likewise.
(Icf::get_folded_section): Likewise.
* icf.h: (Icf::get_folded_section): Likewise.
(Icf::unfold_section): Likewise.
(Icf::is_section_folded): Likewise.
(Icf::section_has_function_pointers): Likewise.
(Icf::set_section_has_function_pointers): Likewise.
* object.h (Section_id): Likewise.
(Const_section_id): Likewise.
* output.cc (Output_section::update_section_layout): Likewise.
* output.h: (Output_section_lookup_maps::find_relaxed_input_section):
Likewise.
* plugin.cc (update_section_order): Likewise.
(unique_segment_for_sections): Likewise.
* powerpc.cc (Powerpc_relobj::add_reference): Likewise.
(Target_powerpc::do_gc_add_reference): Likewise.
(Target_powerpc::gc_process_relocs): Likewise.
(Target_powerpc::do_gc_add_reference): Likewise.
* symtab.cc (Symbol_table::is_section_folded): Likewise.
(Symbol_table::gc_mark_symbol): Likewise.
* symtab.h: (Symbol_table::is_section_folded): Likewise.
* target.h: (Sized_target::gc_add_reference): Likewise.
(Sized_target::do_gc_add_reference): Likewise.
Diffstat (limited to 'gold/plugin.cc')
-rw-r--r-- | gold/plugin.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gold/plugin.cc b/gold/plugin.cc index 68da8e3..1588f34 100644 --- a/gold/plugin.cc +++ b/gold/plugin.cc @@ -1731,10 +1731,10 @@ update_section_order(const struct ld_plugin_section* section_list, { Object* obj = parameters->options().plugins()->get_elf_object( section_list[i].handle); - if (obj == NULL) + if (obj == NULL || obj->is_dynamic()) return LDPS_BAD_HANDLE; unsigned int shndx = section_list[i].shndx; - Section_id secn_id(obj, shndx); + Section_id secn_id(static_cast<Relobj*>(obj), shndx); (*order_map)[secn_id] = i + 1; } @@ -1800,10 +1800,10 @@ unique_segment_for_sections(const char* segment_name, { Object* obj = parameters->options().plugins()->get_elf_object( section_list[i].handle); - if (obj == NULL) + if (obj == NULL || obj->is_dynamic()) return LDPS_BAD_HANDLE; unsigned int shndx = section_list[i].shndx; - Const_section_id secn_id(obj, shndx); + Const_section_id secn_id(static_cast<Relobj*>(obj), shndx); layout->insert_section_segment_map(secn_id, s); } |