PR gold/12893
[external/binutils.git] / gold / ChangeLog
index 9e8617b..4a072a8 100644 (file)
@@ -1,3 +1,222 @@
+2011-06-17  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12893
+       * resolve.cc (Symbol_table::resolve): Don't give an error if a
+       symbol is redefined with the exact same object and value.
+
+2011-06-17  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12880
+       * layout.h (class Layout): Add interp_segment_ field.
+       * layout.cc (Layout::Layout): Initialize interp_segment_ field.
+       (Layout::attach_allocated_section_to_segment): If making shared
+       library, put .interp section in PT_INTERP segment.
+       (Layout::finalize): Also call create_interp if -dynamic-linker
+       option was used.
+       (Layout::create_interp): Assert that there is no PT_INTERP
+       segment.  If not using a SECTIONS clause, use make_output_section.
+       (Layout::make_output_segment): Set interp_segment_ if PT_INTERP.
+       * script-sections.cc
+       (Script_sections::create_note_and_tls_segments): If making shared
+       library, put .interp section in PT_INTERP segment.
+
+2011-06-17  Ian Lance Taylor  <iant@google.com>
+
+       * object.cc (Sized_relobj_file::do_layout): Keep warning sections
+       when making a shared library.
+
+2011-06-17  Ian Lance Taylor  <iant@google.com>
+
+       * x86_64.cc (Target_x86_64::Scan::check_non_pic): Add gsym
+       parameter.  Change all callers.  Don't issue warning about PC32
+       against locally defined symbol.
+
+2011-06-16  Ian Lance Taylor  <iant@google.com>
+
+       * symtab.cc (Warnings::issue_warning): Don't warn if relocation
+       occurs in same object.
+
+2011-06-14  Alan Modra  <amodra@gmail.com>
+
+       * po/POTFILES.in: Regenerate.
+
+2011-06-09  Ian Lance Taylor  <iant@google.com>
+
+       * script-sections.cc
+       (Orphan_output_section::set_section_addresses): For a relocatable
+       link set address to 0.
+
+2011-06-09  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/12804
+       * gold/gold.cc (queue_initial_tasks): Warn if --incremental is
+       used with --compress-debug-sections.
+       * gold/object.cc (Sized_relobj_file::do_layout): Report
+       uncompressed size of compressed input sections.
+
+2011-06-08  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/12804
+       * testsuite/two_file_test_2_v1.cc: Change initialization of
+       v2 to keep it in .data.
+
+2011-06-07  Cary Coutant  <ccoutant@google.com>
+
+       * common.cc (Symbol_table::do_allocate_commons_list): Call
+       gold_fallback.
+       * errors.cc (Errors::fatal): Adjust call to gold_exit.
+       (Errors::fallback): New function.
+       (gold_fallback): New function.
+       * errors.h (Errors::fallback): New function.
+       * gold.cc (gold_exit): Change status parameter to enum; adjust
+       all callers.
+       (queue_initial_tasks): Call gold_fallback.
+       * gold.h: Include cstdlib.
+       (Exit_status): New enum type.
+       (gold_exit): Change status parameter to enum.
+       (gold_fallback): New function.
+       * layout.cc (Layout::set_section_offsets): Call gold_fallback.
+       (Layout::create_symtab_sections): Likewise.
+       (Layout::create_shdrs): Likewise.
+       * main.cc (main): Adjust call to gold_exit.
+       * output.cc (Output_data_got::add_got_entry): Call gold_fallback.
+       (Output_data_got::add_got_entry_pair): Likewise.
+       (Output_section::add_input_section): Likewise.
+       (Output_section::add_output_section_data): Likewise.
+       (Output_segment::set_section_list_addresses): Likewise.
+       * x86_64.cc (Output_data_plt_x86_64::add_entry): Likewise.
+
+2011-06-07  Cary Coutant  <ccoutant@google.com>
+
+       * layout.cc (Layout::set_segment_offsets): Don't adjust layout
+       for incremental links.
+       * output.cc (Output_segment::set_section_list_addresses): Remove
+       FIXME and test for TLS or BSS.
+
+2011-06-07  Cary Coutant  <ccoutant@google.com>
+
+       * testsuite/Makefile.am: Add incremental_copy_test,
+       incremental_common_test_1.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/common_test_1_v1.c: New source file.
+       * testsuite/common_test_1_v2.c: New source file.
+       * testsuite/copy_test_v1.cc: New source file.
+
+2011-06-07  Cary Coutant  <ccoutant@google.com>
+
+       * common.cc (Symbol_table::do_allocate_commons_list): For incremental
+       update, allocate common from bss section's free list.
+       * incremental-dump.cc (dump_incremental_inputs): Print flag for
+       linker-defined symbols.
+       * incremental.cc (Sized_incremental_binary::do_process_got_plt):
+       Skip GOT and PLT entries that are no longer referenced.
+       (Output_section_incremental_inputs::write_info_blocks): Mark
+       linker-defined symbols.
+       (Sized_incr_relobj::do_add_symbols): Process linker-defined symbols.
+       * output.cc (Output_section::allocate): New function.
+       * output.h (Output_section::allocate): New function.
+       * resolve.cc (Symbol_table::report_resolve_problem): Add case for
+       linker-defined symbols.
+       (Symbol::override_base_with_special): Copy is_predefined_ flag.
+       * symtab.cc (Symbol::init_fields): Initialize is_predefined_ flag.
+       (Symbol::init_base_output_data): Likewise.
+       (Symbol::init_base_output_segment): Likewise.
+       (Symbol::init_base_constant): Likewise.
+       (Sized_symbol::init_output_data): Likewise.
+       (Sized_symbol::init_output_segment): Likewise.
+       (Sized_symbol::init_constant): Likewise.
+       (Symbol_table::do_define_in_output_data): Likewise.
+       (Symbol_table::do_define_in_output_segment): Likewise.
+       (Symbol_table::do_define_as_constant): Likewise.
+       * symtab.h (Symbol::is_predefined): New function.
+       (Symbol::init_base_output_data): Add is_predefined parameter.
+       (Symbol::init_base_output_segment): Likewise.
+       (Symbol::init_base_constant): Likewise.
+       (Symbol::is_predefined_): New data member.
+       (Sized_symbol::init_output_data): Add is_predefined parameter.
+       (Sized_symbol::init_output_segment): Likewise.
+       (Sized_symbol::init_constant): Likewise.
+       (enum Symbol_table::Defined): Add INCREMENTAL_BASE.
+
+2011-06-07  Cary Coutant  <ccoutant@google.com>
+
+       * copy-relocs.cc (Copy_relocs::copy_reloc): Call make_copy_reloc
+       instead of emit_copy_reloc.
+       (Copy_relocs::emit_copy_reloc): Refactor.
+       (Copy_relocs::make_copy_reloc): New function.
+       (Copy_relocs::add_copy_reloc): Remove.
+       * copy-relocs.h (Copy_relocs::emit_copy_reloc): Move to public
+       section.
+       (Copy_relocs::make_copy_reloc): New function.
+       (Copy_relocs::add_copy_reloc): Remove.
+       * gold.cc (queue_middle_tasks): Emit old COPY relocations from
+       unchanged input files.
+       * incremental-dump.cc (dump_incremental_inputs): Print "COPY" flag.
+       * incremental.cc (Sized_incremental_binary::do_reserve_layout):
+       Reserve BSS space for COPY relocations.
+       (Sized_incremental_binary::do_emit_copy_relocs): New function.
+       (Output_section_incremental_inputs::write_info_blocks): Record
+       whether a symbol is copied from a shared object.
+       (Sized_incr_dynobj::do_add_symbols): Record COPY relocations.
+       * incremental.h (enum Incremental_shlib_symbol_flags): New type.
+       (INCREMENTAL_SHLIB_SYM_FLAGS_SHIFT): New constant.
+       (Incremental_input_entry_reader::get_output_symbol_index): Add
+       is_copy parameter.
+       (Incremental_binary::emit_copy_relocs): New function.
+       (Incremental_binary::do_emit_copy_relocs): New function.
+       (Sized_incremental_binary::Sized_incremental_binary): Initialize
+       new data member.
+       (Sized_incremental_binary::add_copy_reloc): New function.
+       (Sized_incremental_binary::do_emit_copy_relocs): New function.
+       (Sized_incremental_binary::Copy_reloc): New struct.
+       (Sized_incremental_binary::Copy_relocs): New typedef.
+       (Sized_incremental_binary::copy_relocs_): New data member.
+       * symtab.cc (Symbol_table::add_from_incrobj): Change return type.
+       * symtab.h (Symbol_table::add_from_incrobj): Change return type.
+       * target.h (Sized_target::emit_copy_reloc): New function.
+       * x86_64.cc (Target_x86_64::emit_copy_reloc): New function.
+
+2011-06-02  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/12163
+       * gold/archive.cc (Archive::Archive): Initialize new data member.
+       (Archive::include_all_members): Return if archive has already been
+       included.
+       * gold/archive.h (Archive::include_all_members_): New data member.
+
+2011-06-02  Nick Clifton  <nickc@redhat.com>
+
+       * dynobj.h: Fix spelling mistake in comment.
+       * output.cc: Likewise.
+
+2011-05-31  Doug Kwan  <dougkwan@google.com>
+            Asier Llano
+
+       PR gold/12826
+       * arm.cc (Target_arm::tag_cpu_arch_combine): Fix handling of
+       arch value that equals to elfcpp::MAX_TAG_CPU_ARCH.
+       * testsuite/Makefile.am: (MOSTLYCLEANFILES): Clean up.  Remove
+       redundant arm_exidx_test.so.
+       * testsuite/Makefile.in: Regenerate.
+       (check_SCRIPTS): Add pr12826.sh
+       (check_DATA): Add pr12826.stdout
+       (pr12826.stdout, pr12826.so, pr12826_1.o, pr12826_2.o): New rules.
+       * testsuite/pr12826.sh: New file.
+       * testsuite/pr12826_1.s: Ditto.
+       * testsuite/pr12826_1.s: Ditto.
+
+2011-05-30  Ian Lance Taylor  <iant@google.com>
+
+       * reloc.cc (Sized_relobj_file::do_read_relocs): Ignore empty reloc
+       sections.
+
+2011-05-29  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12804
+       * testsuite/Makefile.am: Use different file name for two_file_test
+       temporary file for each incremental test.
+       * testsuite/Makefile.in: Rebuild.
+
 2011-05-29  Ian Lance Taylor  <iant@google.com>
 
        * binary.cc (Binary_to_elf::sized_convert): Don't crash if the