+2012-09-11 Alan Modra <amodra@gmail.com>
+
+ PR gold/14566
+ * layout.cc (Layout::set_segment_offsets): When using
+ common-page-size alignment, ensure we are on a new max-page-size
+ page.
+ * output.cc (Output_segment::set_section_addresses): Use
+ abi_pagesize, not common_pagesize for relro boundary.
+ (Output_segment::set_offset): Likewise.
+
+2012-09-11 Alan Modra <amodra@gmail.com>
+
+ * output.h (Output_data_got::add_global_tls, add_local_tls,
+ add_local_tls_pair): New functions.
+ (Output_data_got::add_local_pair_with_rel): Remove second
+ reloc param. Expand comment.
+ (Output_data_got::Got_entry): Rename use_plt_offset_ to
+ use_plt_or_tls_offset_, similarly for constructor param.
+ (Output_data_got::Got_entry::write): Add got_index param.
+ * output.cc (Output_data_got::add_global_tls, add_local_tls,
+ add_local_tls_pair): New functions.
+ (Output_data_got::Got_entry::write): Handle tls symbols
+ with use_plt_or_tls_offset_ set specially.
+ (Output_data_got::add_local_pair_with_rel): Only one reloc.
+ (Output_data_got::do_write): Replace iterator with index, pass
+ index to entry write function.
+ * target.h (Target::tls_offset_for_local, tls_offset_for_global,
+ do_tls_offset_for_local, do_tls_offset_for_global): New functions.
+ * arm.cc (Target_arm::Scan::local): Update add_local_pair_with_rel
+ call.
+ * i386.cc (Target_i386::Scan::local): Likewise.
+ * sparc.cc (Target_sparc::Scan::local): Likewise.
+ * x86_64.cc (Target_x86_64::Scan::local): Likewise.
+ * powerpc.cc (Target_powerpc::do_tls_offset_for_local,
+ do_tls_offset_for_global): New functions.
+ (Target_powerpc::Scan::local): Correct TLS relocations and got
+ entry values.
+ (Target_powerpc::Scan::global): Don't emit unnecessary
+ dynamic relocations on TLS GOT entries.
+
+2012-09-10 Matthias Klose <doko@ubuntu.com>
+
+ * config.in: Disable sanity check for kfreebsd.
+
+2012-09-10 Sterling Augustine <saugustine@google.com>
+
+ * gdb-index.cc (Gdb_index::pubnames_read): New parameter.
+ (Gdb_index::pubtypes_read): New parameter.
+ (Gdb_index_info_reader::read_pubnames_and_pubtypes): Add parameters
+ to calls.
+ * gdb-index.h (Gdb_index): New fields pubnames_object_ and
+ pubtypes_object_.
+
+2012-09-09 Alan Modra <amodra@gmail.com>
+
+ * target.h (Target::gc_mark_symbol, do_gc_mark_symbol): New functions.
+ (Sized_target::gc_add_reference, do_gc_add_reference): New functions.
+ * gc.h (gc_process_relocs): Call target gc_add_reference.
+ * gold.cc (queue_middle_tasks): Use gc_mark_symbol on start sym.
+ * symtab.cc (Symbol_table::gc_mark_undef_symbols): Use gc_mark_symbol.
+ (Symbol_table::gc_mark_symbol): Call target gc_mark_symbol. Remove
+ unnecessary cast.
+ * powerpc.cc (Powerpc_relobj::get_opd_ent): Rearrange parameters
+ to cater for when we don't need code offset. Update use.
+ (Powerpc_relobj::access_from_map_, opd_valid_): New vars.
+ (Powerpc_relobj::access_from_map, add_reference, opd_valid,
+ set_opd_valid): New functions.
+ (Target_powerpc::do_gc_add_reference): New function.
+ (Target_powerpc::gc_process_relocs): Call gc()->add_reference on
+ stashed refs.
+ (Target_powerpc::do_gc_mark_symbol): New function.
+
+2012-09-06 Cary Coutant <ccoutant@google.com>
+
+ * dwarf_reader.cc (Dwarf_die::read_attributes): Add
+ DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index.
+ (Dwarf_die::skip_attributes): Likewise.
+ * object.cc (Read_symbols_data::~Read_symbols_data): Update comment.
+ * testsuite/gdb_index_test.cc (inline_func_1): New function.
+ (main): Call it.
+ * testsuite/gdb_index_test_comm.sh: Check index for inline function.
+
+2012-09-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/script_test_3.t: Add .got.plt output section
+ statement.
+ * testsuite/script_test_4.t: Likewise.
+
+2012-09-05 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relocate_functions): Upcase enum values,
+ update all uses and lose "enum" when using type.
+
+2012-09-05 Alan Modra <amodra@gmail.com>
+
+ * configure.ac (FN_PTRS_IN_SO_WITHOUT_PIC): False for powerpc.
+ * configure: Regenerate.
+ * testsuite/Makefile.am (final_layout.stdout): Pass --synthetic to nm.
+ (plugin_final_layout.stdout): Likewise.
+ (memory_test): Set page sizes to 0x1000.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/discard_locals_test.sh: Add FIXME comment.
+ * testsuite/justsyms_exec.c: Disable function test for powerpc64.
+ * testsuite/pr14265.t: Add .got output section statement.
+ * testsuite/script_test_2.t: Likewise.
+ * testsuite/script_test_3.t: Likewise.
+ * testsuite/script_test_4.t: Likewise.
+ * testsuite/script_test_5.t: Likewise.
+ * testsuite/script_test_6.t: Likewise.
+ * testsuite/script_test_7.t: Likewise.
+ * testsuite/script_test_9.t: Likewise.
+
+2012-09-05 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj::get_opd_ent): Make const.
+ (Powerpc_relocate_functions::Status): New typedef.
+ (Target_powerpc::Scan::get_reference_flags): Handle more relocs.
+ (Target_powerpc::Scan::local): Handle REL64.
+ (Target_powerpc::Scan::global): Likewise, and dynamic relocs
+ for REL32 and REL64.
+ (Target_powerpc::symval_for_branch): New function, extracted from..
+ (Target_powerpc::Relocate::relocate): ..here. Correct plt call
+ checks. Report overflow errors.
+
+2012-09-05 Alan Modra <amodra@gmail.com>
+
+ * object.h (Sized_relobj_file::emit_relocs): Delete.
+ (Sized_relobj_file::emit_relocs_reltype): Delete.
+ * reloc.cc (Sized_relobj_file::do_relocate_sections): Call target
+ relocate_relocs for --emit-relocs.
+ (Sized_relobj_file::emit_relocs, emit_relocs_reltype): Delete.
+ * output.h: Update comment.
+ (Output_segment::first_section): New function.
+ (Output_segment::first_section_load_address): Use first_section.
+ * output.cc (Output_segment::first_section): New function extracted..
+ (Output_segment::first_section_load_address): ..from here. Delete.
+ * target-reloc.h (relocate_for_relocatable): Rename to relocate_relocs.
+ * target.h (Sized_target::relocate_for_relocatable): Likewise.
+ * arm.cc (Target_arm::relocate_for_relocatable): Likewise, and
+ adjust call to target.h function.
+ * i386.cc (Target_i386): Likewise.
+ * sparc.cc (Target_sparc): Likewise.
+ * x86_64.cc (Target_x86_64): Likewise.
+ * powerpc.cc (Target_powerpc): Likewise.
+ (Target_powerpc::Scan::local, global): Handle R_POWERPC_TLS. Ensure
+ first tls section has section symbol for optimised local dynamic
+ output relocs.
+ (Target_powerpc::Relocate::relocate): Correct local dynamic value.
+ (Target_powerpc::relocate_relocs): Adjust relocs emitted for
+ optimised tls code.
+ * testsuite/testfile.cc (Target_test::relocate_for_relocatable):
+ Rename to relocate_relocs. Update error message.
+
+2012-09-04 Andreas Schwab <schwab@linux-m68k.org>
+
+ * powerpc.cc (do_make_elf_object): Allow ET_EXEC files with
+ --just-symbols.
+
+2012-08-31 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj): Add and use Address typedef.
+ (Powerpc_relobj::toc_base_offset): New stub function.
+ (Target_powerpc): Add tp_offset, dtp_offset. Rename
+ got_mod_index_offset to tlsld_got_offset. Update all refs.
+ (Target_powerpc::Relocate::enum skip_tls): New.
+ (Target_powerpc::call_tls_get_addr_): New var.
+ (Target_powerpc::is_branch_reloc): Move to file scope.
+ (Target_powerpc::relocate_tls, optimize_tls_reloc): Delete.
+ (Target_powerpc::optimize_tls_gd, optimize_tls_ld, optimize_tls_ie):
+ New functions.
+ (Target_powerpc::enum Got_type): Delete old values, add new ones.
+ (powerpc_info): Correct common_pagesize for ppc64.
+ (at_tls_transform, needs_dynamic_reloc, use_plt_offset): New functions.
+ (Powerpc_relocate_functions): Add overflow check enums and functions.
+ Add non-shift version of rela, rela_ua. Delete all rel public
+ functions. Delete addr16_lo. Add addr64, addr64_u, addr32,
+ addr32_u, addr24, addr16_u, addr16_hi2, addr16_ha2, addr16_hi3,
+ addr16_ha3, addr14 functions.
+ (Output_data_got_powerpc::add_constant_pair): New function.
+ (Output_data_got_powerpc::got_base_offset): Likewise.
+ (Output_data_got_powerpc::do_write): Correct 64-bit got header.
+ (instruction constants): Sort, add some more.
+ (Output_data_glink::do_write): Add and use Address typedef. Use
+ object->toc_base_offset() stub for 64-bit.
+ (Target_powerpc::tlsld_got_offset): Use add_constant_pair.
+ (Target_powerpc::Scan::get_reference_flags): Handle more relocs.
+ (Target_powerpc::Scan::local, global): Emit relative dynamic reloc
+ for R_PPC64_TOC. Handle more relocs. Generate got entries for TLS.
+ Always treat .opd relocs as against locally defined symbol.
+ Correct condition for RELATIVE relocs.
+ (Target_powerpc::do_finalize_sections): Test for NULL sections.
+ (Target_powerpc::Relocate::relocate): Use plt call stub as value
+ for 32-bit syms with a plt entry. Correct ppc64 toc base
+ calculations. Handle TLS relocs, and more. Add overflow
+ checking and adjust for Powerpc_relocate_functions changes.
+ (Target_powerpc::relocate_for_relocatable): Handle zero r_sym.
+ Reinstate --emit-relocs code with FIXME.
+
+2012-08-30 Alan Modra <amodra@gmail.com>
+
+ * layout.cc (Layout::set_segment_offsets): Set p_align to
+ abi_pagesize, not common_pagesize.
+ (Layout::relaxation_loop_body): Similarly use abi_pagesize
+ to determine whether file header can go in segment.
+
+2012-08-30 Alan Modra <amodra@gmail.com>
+
+ * output.h (Output_reloc::Output_reloc <output section>): Add
+ is_relative param. Adjust calls.
+ (Output_reloc::add_output_section_relative): New functions.
+ * output.cc (Output_reloc::Output_reloc <output section>): Handle
+ is_relative.
+ (Output_reloc::symbol_value): Handle SECTION_CODE.
+
+2012-08-24 Sriraman Tallam <tmsriram@google.com>
+
+ * gold.cc (queue_middle_tasks): Call layout again when unique
+ segments for sections is desired.
+ * layout.cc (Layout::Layout): Initialize new members.
+ (Layout::get_output_section_flags): New function.
+ (Layout::choose_output_section): Call get_output_section_flags.
+ (Layout::layout): Make output section for mapping to a unique segment.
+ (Layout::insert_section_segment_map): New function.
+ (Layout::attach_allocated_section_to_segment): Make unique segment for
+ output sections marked so.
+ (Layout::segment_precedes): Check for unique segments when sorting.
+ * layout.h (Layout::Unique_segment_info): New struct.
+ (Layout::Section_segment_map): New typedef.
+ (Layout::insert_section_segment_map): New function.
+ (Layout::get_output_section_flags): New function.
+ (Layout::is_unique_segment_for_sections_specified): New function.
+ (Layout::set_unique_segment_for_sections_specified): New function.
+ (Layout::unique_segment_for_sections_specified_): New member.
+ (Layout::section_segment_map_): New member.
+ * object.cc (Sized_relobj_file<size, big_endian>::do_layout):
+ Rename is_gc_pass_one to is_pass_one.
+ Rename is_gc_pass_two to is_pass_two.
+ Rename is_gc_or_icf to is_two_pass.
+ Check for which pass based on whether symbols data is present.
+ Make it two pass when unique segments for sections is desired.
+ * output.cc (Output_section::Output_section): Initialize new
+ members.
+ * output.h (Output_section::is_unique_segment): New function.
+ (Output_section::set_is_unique_segment): New function.
+ (Output_section::is_unique_segment_): New member.
+ (Output_section::extra_segment_flags): New function.
+ (Output_section::set_extra_segment_flags): New function.
+ (Output_section::extra_segment_flags_): New member.
+ (Output_section::segment_alignment): New function.
+ (Output_section::set_segment_alignment): New function.
+ (Output_section::segment_alignment_): New member.
+ (Output_segment::Output_segment): Initialize is_unique_segment_.
+ (Output_segment::is_unique_segment): New function.
+ (Output_segment::set_is_unique_segment): New function.
+ (Output_segment::is_unique_segment_): New member.
+ * plugin.cc (allow_unique_segment_for_sections): New function.
+ (unique_segment_for_sections): New function.
+ (Plugin::load): Add new functions to transfer vector.
+ * Makefile.am (plugin_final_layout.readelf.stdout): Add readelf output.
+ * Makefile.in: Regenerate.
+ * testsuite/plugin_final_layout.sh: Check if unique segment
+ functionality works.
+ * testsuite/plugin_section_order.c (onload): Check if new interfaces
+ are available.
+ (allow_unique_segment_for_sections): New global.
+ (unique_segment_for_sections): New global.
+ (claim_file_hook): Call allow_unique_segment_for_sections.
+ (all_symbols_read_hook): Call unique_segment_for_sections.
+
+2012-08-22 Cary Coutant <ccoutant@google.com>
+
+ * layout.cc (Layout::include_section): Don't assert on GROUP
+ sections with --emit-relocs.
+
+2012-08-21 Cary Coutant <ccoutant@google.com>
+
+ * symtab.cc (Symbol_table::gc_mark_undef_symbols): Don't assert
+ if --export-dynamic-symbol names an undef symbol.
+
+2012-08-18 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc: Formatting and white space.
+ (Powerpc_relobj): Rename got2_section_ to special_.
+ Add opd_ent_shndx_ and opd_ent_off_ vectors.
+ (Powerpc_relobj::opd_shndx, init_opd, get_opd_ent, set_opd_ent,
+ scan_opd_relocs, do_read_relocs, opd_ent_ndx): New functions.
+ (Target_powerpc): Add Address typedef and invalid_address. Use
+ throughout.
+ (Target_powerpc::is_branch_reloc): New function.
+ (Powerpc_relocate_functions): Add Address typedef, use throughout.
+ (Powerpc_relocate_functions:rela, rela_ua): Correct type used
+ for dst_mask, value and addend.
+ (Powerpc_relobj::do_find_special_sections): Find .opd for 64-bit.
+ (ld_2_1, cror_15_15_15, cror_31_31_31): New insn constants.
+ (Output_data_glink::do_write): Correct toc base. Don't try to use
+ uint16_t for 24-bit offset. Use get_output_section_offset and
+ check return.
+ (Target_powerpc::Scan::local): Handle more relocs.
+ (Target_powerpc::do_finalize_sections): Set up DT_PPC64_GLINK.
+ (Target_powerpc::Relocate::relocate): Correct toc base calculation.
+ Plug in toc restoring insn after plt calls. Translate branches
+ to function descriptor symbols to corresponding entry point.
+ (Target_powerpc::relocate_for_relocatable): Check return from
+ get_output_section_offset.
+ * symtab.h: Comment typo.
+
+2012-08-14 Ian Lance Taylor <iant@google.com>
+
+ * x86_64.cc (Target_x86_64::Scan::global): Fix erroneous call to
+ unsupported_relocal_local to call unsupported_reloc_global.
+
+2012-08-14 Nick Clifton <nickc@redhat.com>
+
+ PR ld/14265
+ * script-sections.cc (Sections_element::output_section_name): Add
+ keep return parameter.
+ (Output_section_element::match_name): Add keep return parameter.
+ Return the value of the keep_ member.
+ * script-sections.h (class Output_section): Update
+ output_section_name prototype.
+ * layout.cc (Layout::keep_input_section): New public member
+ function.
+ (Layout::choose_output_section): Pass keep parameter to
+ output_section_name.
+ * layout.h (class Layout): Add keep_input_section.
+ * object.cc (Sized_relobj_file::do_layout): Check for kept input
+ sections.
+ * testsuite/Makefile.am: Add a test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/pr14265.c: Source file for the test.
+ * testsuite/pr14265.t: Linker script for the test.
+ * testsuite/pr14265.sh: Shell script for the test.
+
+2012-08-14 Alan Modra <amodra@gmail.com>
+
+ * target.h (Target::output_section_name): New function.
+ (Target::do_output_section_name): New function.
+ * layout.cc (Layout::choose_output_section): Call the above.
+ * powerpc.cc (Target_powerpc::do_output_section_name): New function.
+
+2012-08-14 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc: Update for renamed R_PPC_REL16 relocs.
+ (Output_data_got_powerpc::do_write): Don't rely on base class lookup
+ for replace_constant call.
+ (Output_data_plt_powerpc::do_print_to_mapfile): New function.
+ (Output_data_glink::do_print_to_mapfile): New function.
+ (Target_powerpc::Scan::local): Ignore R_PPC64_TOCSAVE.
+ (Target_powerpc::Relocate::relocate): Likewise.
+
+2012-08-14 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj::set_got2_shndx): Delete.
+ (Powerpc_relobj::do_find_special_sections): Don't use set_got2_shndx.
+ (Output_data_glink::add_entry,find_entry): Remove shndx param.
+ (class Glink_sym_ent): Rename from struct Glink_sym_ent. Remove
+ all references to shndx_. Handle special case for R_PPC_PLTREL24
+ here.
+ (class Glink_sym_ent_hash): Rename from struct Glink_sym_ent_hash.
+ (Output_data_glink::do_write): Retrieve got2_shdnx from object.
+ (Target_powerpc::make_plt_entry): Don't special case R_PPC_PLTREL24
+ here.
+ (Target_powerpc::Scan::global): Nor on make_plt_entry call.
+ (Target_powerpc::Relocate::relocate): Nor on glink->find_entry call.
+
+2012-08-12 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc: Whitespace fixes. Wrap overly long lines.
+ (glink insn constants): Use uint32_t.
+ (Output_data_glink::add_entry): Use insert, not [] operator.
+
+2012-08-11 Alan Modra <amodra@gmail.com>
+
+ * object.h (Sized_relobj_file::find_shdr): New function.
+ (Sized_relobj_file::find_special_sections): New function.
+ * object.cc (Sized_relobj_file::find_shdr): New function.
+ (Sized_relobj_file::find_eh_frame): Use find_shdr.
+ (Sized_relobj_file::find_special_sections): New function, split out..
+ (Sized_relobj_file::do_read_symbols): ..from here.
+ * output.h (Output_data_got::replace_constant): New function.
+ (Output_data_got::num_entries): New function.
+ (Output_data_got::last_got_offset,set_got_size): Use num_entries.
+ (Output_data_got::got_offset): Protected rather than private.
+ (Output_data_got::replace_got_entry): New function.
+ * output.cc (Output_data_got::replace_got_entry): New function.
+ * powerpc.cc (class Powerpc_relobj): New.
+ (class Powerpc_relocate_functions): Delete all psymval variants or
+ convert to value,addend type. Delete pcrela, pcrela_unaligned.
+ Implement _ha functions using corresponding _hi function.
+ (Powerpc_relobj::find_special_sections): New function.
+ (Target_powerpc::do_make_elf_object): New function.
+ (class Output_data_got_powerpc): New.
+ (class Output_data_glink): New.
+ (class Powerpc_scan_relocatable_reloc): New.
+ Many more changes througout file.
+
+2012-08-09 Nick Clifton <nickc@redhat.com>
+
+ * po/vi.po: Updated Vietnamese translation.
+
+2012-08-07 Ian Lance Taylor <iant@google.com>
+
+ * layout.cc (Layout::add_target_dynamic_tags): If
+ dynrel_includes_plt but no dyn_rel, emit dynamic reloc tags for
+ plt_rel.
+
+2012-07-30 Nick Clifton <nickc@redhat.com>
+
+ * po/gold.pot: Updated template.
+ * po/es.po: Updated Spanish translation.
+
+2012-07-18 Cary Coutant <ccoutant@google.com>
+
+ PR gold/14344
+ * configure.ac: Add check for -gpubnames support.
+ * configure: Regenerate.
+ * testsuite/Makefile.am (gdb_index_test_1): Add check for -gpubnames
+ support; force -gno-pubnames.
+ (gdb_index_test_2, gdb_index_test_3): Add check for -gpubnames
+ support.
+ (gdb_index_test_4): New test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/gdb_index_test_1.sh: Refactor code into common file.
+ * testsuite/gdb_index_test_2.sh: Likewise.
+ * testsuite/gdb_index_test_3.sh: Don't look for space after colon.
+ * testsuite/gdb_index_test_4.sh: New script.
+ * testsuite/gdb_index_test_comm.sh: New script with common code;
+ don't look for space after colon.
+
+2012-07-16 Sriraman Tallam <tmsriram@google.com>
+
+ * gold.cc (queue_middle_tasks): Update function order only after
+ deferred objects due to plugins are processed.
+
2012-07-11 Ian Lance Taylor <iant@google.com>
* arm.cc (Arm_relocate_functions::abs16): Remove unused typedef.
2010-05-26 Rafael Espindola <espindola@google.com>
- PR 11604
+ PR 11604
* gold/object.cc(Sized_relobj::do_layout_deferred_sections): Avoid
adding sections the garbage collector removed.
* gold/testsuite/Makefile.am: Add test.
2010-01-08 Doug Kwan <dougkwan@google.com>
* arm.cc (Stub_table::Stub_table): Initalize cortex_a8_stubs_,
- prev_data_size_ and prev_addralign_. Remove initializer for
- deleted data member has_been_changed_.
- (Stub_table::empty): Look at both reloc_stubs_ and cortex_a8_stubs_
- to determine if the table is empty.
- (Stub_table::has_been_changed, Stub_table_set_has_been_changed):
- Remove.
- (Stub_table::add_reloc_stub): Define method in class definition
- instead of just declaring it there.
- (Stub_table::add_cortex_a8_stub): New method definition.
- (Stub_table::update_data_size_and_addralign): Ditto.
- (Stub_table::finalize_stubs): Ditto.
- (Stub_table::apply_cortex_a8_workaround_to_address_range): Ditto.
- (Stub_table::do_addralign_): Return address alignment in the
- (Stub_table::do_reset_address_and_file_offset): Define method in
- class definition instead of declaring it there. Set current data
- size to be the data size of the previous pass.
- (Stub_table::set_final_data_size): Use current data size as the
- final data size.
- (Stub_table::relocate_stub): Change parameter type of stub from
- Reloc_stub pointer to Stub pointer.
- (Stub_table::addralign_, Stub_table::has_been_changed_): Remove.
- (Stub_table::Cortex_a8_stub_list): New typedef.
- (Stub_table::cortex_a8_stubs_, Stub_table::prev_data_size_,
- Stub_table::prev_addralign_): New data member.
- (Arm_relobj::Arm_relobj): Initialize data member
- section_has_cortex_a8_workaround_.
- (Arm_relobj::section_has_cortex_a8_workaround,
- Arm_relobj::mark_section_for_cortex_a8_workaround): New method
- definitions.
- (Arm_relobj::section_has_cortex_a8_workaround_): New data member
- declarations.
- (Target_arm::relocate_stub): Change parameter type of stub from
- Reloc_stub pointer to Stub pointer.
- (Insn_template::size, Insn_template::alignment): Handle
- THUMB16_SPECIAL_TYPE.
- (Stub_table::remove_all_cortex_a8_stubs, Stub_table::finalize_stubs,
- Stub_table::update_data_size_and_addralign,
- Stub_table::apply_cortex_a8_workaround_to_address_range): New method
- definitions.
- (Stub_table::relocate_stubs): Handle Cortex-A8 stubs.
- (Stub_table::do_write): Ditto.
- (Target_arm::do_relax): Adjust code for changes in Stub_table.
+ prev_data_size_ and prev_addralign_. Remove initializer for
+ deleted data member has_been_changed_.
+ (Stub_table::empty): Look at both reloc_stubs_ and cortex_a8_stubs_
+ to determine if the table is empty.
+ (Stub_table::has_been_changed, Stub_table_set_has_been_changed):
+ Remove.
+ (Stub_table::add_reloc_stub): Define method in class definition
+ instead of just declaring it there.
+ (Stub_table::add_cortex_a8_stub): New method definition.
+ (Stub_table::update_data_size_and_addralign): Ditto.
+ (Stub_table::finalize_stubs): Ditto.
+ (Stub_table::apply_cortex_a8_workaround_to_address_range): Ditto.
+ (Stub_table::do_addralign_): Return address alignment in the
+ (Stub_table::do_reset_address_and_file_offset): Define method in
+ class definition instead of declaring it there. Set current data
+ size to be the data size of the previous pass.
+ (Stub_table::set_final_data_size): Use current data size as the
+ final data size.
+ (Stub_table::relocate_stub): Change parameter type of stub from
+ Reloc_stub pointer to Stub pointer.
+ (Stub_table::addralign_, Stub_table::has_been_changed_): Remove.
+ (Stub_table::Cortex_a8_stub_list): New typedef.
+ (Stub_table::cortex_a8_stubs_, Stub_table::prev_data_size_,
+ Stub_table::prev_addralign_): New data member.
+ (Arm_relobj::Arm_relobj): Initialize data member
+ section_has_cortex_a8_workaround_.
+ (Arm_relobj::section_has_cortex_a8_workaround,
+ Arm_relobj::mark_section_for_cortex_a8_workaround): New method
+ definitions.
+ (Arm_relobj::section_has_cortex_a8_workaround_): New data member
+ declarations.
+ (Target_arm::relocate_stub): Change parameter type of stub from
+ Reloc_stub pointer to Stub pointer.
+ (Insn_template::size, Insn_template::alignment): Handle
+ THUMB16_SPECIAL_TYPE.
+ (Stub_table::remove_all_cortex_a8_stubs, Stub_table::finalize_stubs,
+ Stub_table::update_data_size_and_addralign,
+ Stub_table::apply_cortex_a8_workaround_to_address_range): New method
+ definitions.
+ (Stub_table::relocate_stubs): Handle Cortex-A8 stubs.
+ (Stub_table::do_write): Ditto.
+ (Target_arm::do_relax): Adjust code for changes in Stub_table.
2010-01-08 Ian Lance Taylor <iant@google.com>
2009-12-01 Rafael Avila de Espindola <espindola@google.com>
- * incremental-dump.cc (main): Fix typos.
+ * incremental-dump.cc (main): Fix typos.
2009-11-27 Rafael Avila de Espindola <espindola@google.com>
(Incremental_inputs::sized_create_incremental_inputs_data): New method.
* incremental.h: New file.
* layout.cc (Layout::Layout): Handle new incremental_inputs_.
- (Layout::finalize): Create incremental inputs section in
+ (Layout::finalize): Create incremental inputs section in
incremental builds.
- (Layout::create_incremental_info_sections): New method.
+ (Layout::create_incremental_info_sections): New method.
* layout.h (Layout::incremental_inputs): New method.
- (Layout::create_incremental_info_sections): New method.
- (Layout::incremental_inputs_): New field.
+ (Layout::create_incremental_info_sections): New method.
+ (Layout::incremental_inputs_): New field.
* main.cc (main): Notify Incremental_input of the command line.
2009-04-01 Ian Lance Taylor <iant@google.com>