* gdb.cp/cplusfuncs.cc (class foo): Add operators
[deliverable/binutils-gdb.git] / gold / ChangeLog
index 2b31fa68334816277fded54ef85a4bd633f3f539..bce6ec55283512286afab230a3dd2d221bc6ad95 100644 (file)
@@ -1,3 +1,625 @@
+2009-11-10  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_relobj::do_relocate_sections): Remove options parameter
+       in method declaration.
+       (Target_arm::relocate_stub): New method declaration.
+       (Target_arm::default_target): Change to return a pointer instead of
+       a const reference.
+       (Reloc_stub::stub_type_for_reloc): Adjust for the change in
+       Target_arm::default_target.
+       (Arm_Relobj::do_relocate_sections): Remove options paramater in
+       method definition.
+       (Target_arm::relocate_section): Adjust view.
+       (Target_arm::relocate_stub): New method definition.
+
+2009-11-10  Doug Kwan  <dougkwan@google.com>
+
+       * i386.cc (Target_i386::do_calls_non_split): Add a cast to avoid
+       a format warning.
+       * incremental.cc (open_incremental_binary): Initialized local
+       variables to avoid warnings.
+       * object.cc (make_elf_object): Ditto.
+       * x86_64.cc (Target_x86_64::do_calls_non_split): Add a cast to avoid
+       a format warning.
+009-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/10930
+       * testsuite/plugin_test.c: Include "config.h".
+
+2009-11-09  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Target_arm::fake_relnum_for_stubs): New constant.
+       (arm_symbol_value): Remove.
+       (Arm_relocate_functions::arm_branch_common,
+       Arm_relocate_functions::abs8, Arm_relocate_functions::thm_abs5,
+       Arm_relocate_functions::abs12, Arm_relocate_functions::abs16,
+       Arm_relocate_functions::abs32, Arm_relocate_functions::rel32,
+       Arm_relocate_functions::thm_call, Arm_relocate_functions::plt32,
+       Arm_relocate_functions::call, Arm_relocate_functions::jump24,
+       Arm_relocate_functions::prel31, Arm_relocate_functions::mov_abs_nc,
+       Arm_relocate_functions::movt_abs, Arm_relocate_functions::movw_abs_nc,
+       Arm_relocate_functions::thm_mobw_abs_nc,
+       Arm_relocate_functions::thm_mov_abs,
+       Arm_relocate_functions::movw_prel_nc,
+       Arm_relocate_functions::thm_movt_abs,
+       Arm_relocate_functions::movt_prel,
+       Arm_relocate_functions::thm_movw_prel_nc,
+       Arm_relocate_functions::thm_movt_prel): Adjust callers of the above.
+       (Target_arm::Relocate::relocate): Only decompose address into two
+       parts if relocation type uses the thumb-bit and pass the actual
+       bit instead of a flag indicating that the thumb-bit is used.  Adjust
+       calls to methods in Arm_relocate_functions for this change.
+
+2009-11-08  Ian Lance Taylor  <ian@airs.com>
+
+       PR 10925
+       * reloc.cc: Instantiate
+       Sized_relobj::initialize_input_to_output_maps and
+       Sized_relobj:free_input_to_output_maps.
+
+2009-11-06  Ian Lance Taylor  <iant@google.com>
+
+       PR 10876
+       * defstd.cc (in_segment): Set only_if_ref true for "end".
+
+2009-11-06  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (class Reloc_stub): Correct a comment.
+       (Target_arm::Target_arm): Initialize arm_input_section_map_.
+       (Target_arm::scan_section_for_stubs): New method declaration.
+       (Target_arm::do_make_elf_object, Target_arm::do_make_output_section):
+       Change methods from private to protected.
+       (Target_arm::do_may_relax): New method definition.
+       (Target_arm::do_relax, Target_arm::group_sections,
+       Target_arm::scan_reloc_for_stub,
+       Target_arm::scan_reloc_section_for_stubs): New method declarations.
+       (Target_arm::arm_input_section_map_): New data member declaration.
+       (Target_arm::scan_reloc_for_stub,
+       Target_arm::scan_reloc_section_for_stubs,
+       Target_arm::scan_section_for_stubs, Target_arm::group_sections,
+       Target_arm::do_relax): New method definitions.
+
+2009-11-06  Mikolaj Zalewski  <mikolaj@google.com>
+
+       * configure.ac: Check for (struct stat)::st_mtim
+       * fileread.cc (File_read::get_mtime): Use st_mtim if available.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+
+2009-11-05  Ian Lance Taylor  <iant@google.com>
+
+       PR 10910
+       * output.cc (Output_segment::add_output_section): Add missing
+       return statement.
+
+2009-11-04  Ian Lance Taylor  <iant@google.com>
+
+       PR 10880
+       * object.h (class Object): Add is_needed and set_is_needed
+       methods.  Add is_needed_ field.  Make bool fields into bitfields.
+       * symtab.cc (Symbol_table::set_dynsym_indexes): If a symbol is
+       defined in a dynamic object and referenced by a regular object,
+       set is_needed for the dynamic object.
+       * layout.cc (Layout::finish_dynamic_section): Don't add DT_NEEDED
+       if the file is marked with as_needed and it is not needed.
+
+2009-11-04  Ian Lance Taylor  <iant@google.com>
+
+       PR 10887
+       * arm.cc (Target_arm::do_finalize_sections): Don't add dynamic
+       tags if data is discarded by linker script.
+       * i386.cc (Target_i386::do_finalize_sections): Likewise.
+       * powerpc.cc (Target_powerpc::do_finalize_sections): Likewise.
+       * sparc.cc (Target_sparc::do_finalize_sections): Likewise.
+       * x86_64.cc (Target_x86_64::do_finalize_sections): Likewise.
+
+2009-11-04  Ian Lance Taylor  <iant@google.com>
+
+       * layout.cc (Layout::get_output_section): Add is_interp and
+       is_dynamic_linker_section parameters.  Change all callers.
+       (Layout::choose_output_section): Likewise.
+       (Layout::make_output_section): Likewise.
+       (Layout::add_output_section_data): Add is_dynamic_linker_section
+       parameter.  Change all callers.
+       * layout.h (class Layout): Update declarations.
+       * output.h (class Output_section): Add is_interp, set_is_interp,
+       is_dynamic_linker_section, set_is_dynamic_linker_section methods.
+       Add is_interp_, is_dynamic_linker_section_ fields.  Change
+       generate_code_fills_at_write_ to a bitfield.
+       * output.cc (Output_section::Output_sections): Initialize new
+       fields.
+       (Output_segment::add_output_section): Add do_sort parameter.
+       Change all callers.
+
+2009-11-03  Ian Lance Taylor  <iant@google.com>
+
+       PR 10860
+       * options.h (class General_options): Add --warn-common.
+       * resolve.cc (Symbol_table::resolve): Handle --warn-common when
+       merging two common symbols.
+       (Symbol_table::should_override): Handle --warn-common when merging
+       a common symbol with a defined symbol.  Use report_resolve_problem
+       for multiple definitions.
+       (Symbol_table::report_resolve_problem): New function.
+       * symtab.h (class Symbol_table): Declare report_resolve_problem.
+
+2009-11-03  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Target_arm::Target_arm): Initialize stub_tables_ and
+       stub_factory_.
+       (Target_arm::stub_factory): New method definition.
+       (Target_arm::new_arm_input_section,
+       Target_arm::find_arm_input_section, Target_arm::new_stub_table,
+       Target_arm::reloc_uses_thumb_bit): New method declarations.
+       (Target_arm::Stub_table_list, Target_arm::Arm_input_section_map): 
+       New type definitions.
+       (Target_arm::stub_tables_, Target_arm::stub_factory_): New data
+       member declarations.
+       (Target_arm::reloc_uses_thumb_bit, Target_arm::new_arm_input_section,
+       Target_arm::find_arm_input_section, Target_arm::new_stub_table):
+       New method definitions.
+
+2009-11-03  Ian Lance Taylor  <iant@google.com>
+
+       * options.h (class General_options): Add --warn_constructors.
+
+2009-11-03  Ian Lance Taylor  <iant@google.com>
+
+       PR 10893
+       * defstd.cc (in_section): Add entries for __rel_iplt_start,
+       __rel_iplt_end, __rela_iplt_start, __rela_iplt_end, and __stack.
+
+2009-11-03  Ian Lance Taylor  <iant@google.com>
+
+       PR 10895
+       * po/Make-in ($(srcdir)/$(PACKAGE).pot): Pass -C and
+       --msgid-bugs-address.
+       (install-pdf): New target.
+       (install-data_yes): Look up one directory to find mkinstalldirs.
+
+2009-11-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * po/Make-in (.po.gmo): Don't generate .gmo files in source
+       tree.
+
+2009-10-30  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Stub_addend_reader): Fix bug in previouls check-in.
+
+2009-10-30  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Stub_addend_reader): New struct template definition
+       and partial specializations.
+       (Stub_addend_reader::operator()): New method definition for a
+       partially specialized template.
+
+2009-10-30  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_relobj::processor_specific_flags): New method
+       definition.
+       (Arm_relobj::do_read_symbols): New method declaration.
+       (Arm_relobj::processor_specific_flags_): New data member declaration.
+       (Arm_dynobj): New class definition.
+       (Target_arm::do_finalize_sections): Add input_objects parameter.
+       (Target_arm::do_adjust_elf_header): New method declaration.
+       (Target_arm::are_eabi_versions_compatible,
+       (Target_arm::merge_processor_specific_flags): New method declaration.
+       (Target_arm::do_make_elf_object): New overloaded method definitions
+       and declaration.
+       (Arm_relobj::do_read_symbols): New method definition.
+       (Arm_dynobj::do_read_symbols): Ditto.
+       (Target_arm::do_finalize_sections): Add input_objects parameters.
+       Merge processor-specific flags from all input objects.
+       (Target_arm::are_eabi_versions_compatible,
+       Target_arm::merge_processor_specific_flags,
+       Target_arm::do_adjust_elf_header, Target_arm::do_make_elf_object):
+       New method definitions.
+       * i386.cc (Target_i386::do_finalize_sections): Add unnamed
+       Input_objects pointer type parameter.
+       * layout.cc (Layout::finalize): Pass input objects to target's.
+       finalize_sections function.
+       * output.cc (Output_file_header::do_sized_write): Set ELF file
+       header's processor-specific flags.
+       * powerpc.cc (Target_powerpc::do_finalize_sections): Add unnamed
+       Input_objects pointer type parameter.
+       * sparc.cc (Target_sparc::do_finalize_sections): Same.
+       * target.h (Input_objects): New forward class declaration.
+       (Target::processor_specific_flags,
+       Target::are_processor_specific_flags_sect): New method definitions.
+       (Target::finalize_sections): Add input_objects parameter.
+       (Target::Target): Initialize processor_specific_flags_ and
+       are_processor_specific_flags_set_.
+       (Target::do_finalize_sections): Add unnamed Input_objects pointer type
+       parameter.
+       (Target::set_processor_specific_flags): New method definition.
+       (Target::processor_specific_flags_,
+       Target::are_processor_specific_flags_set_): New data member
+       declarations.
+       * x86_64.cc (Target_x86_64::do_finalize_sections): Add unnamed
+       Input_objects pointer type parameter.
+
+2009-10-30  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc: Use Arm_address instead of elfcpp::Elf_types<32>::Elf_Addr.
+
+2009-10-28  Ian Lance Taylor  <iant@google.com>
+
+       * object.h (class Relobj): Drop options parameter from
+       gc_process_relocs, scan_relocs, relocate, do_gc_process_relocs,
+       do_scan_relocs, do_relocate.  Change all callers.
+       (class Sized_relobj): Drop options parameters from
+       do_gc_process_relocs, do_scan_relocs, do_relocate,
+       do_relocate_sections, relocate_sections, emit_relocs_scan,
+       emit_relocs_scan_reltype.  Change all callers.
+       (struct Relocate_info): Remove options field and all references to
+       it.
+       * reloc.h (class Read_relocs): Remove options constructor
+       parameter and options_ field.  Change all callers.
+       (class Gc_process_relocs, class Scan_relocs): Likewise.
+       (class Relocate_task): Likewise.
+       * target-reloc.h (scan_relocs): Remove options parameter.  Change
+       all callers.
+       (scan_relocatable_relocs): Likewise.
+       * target.h (class Sized_target): Remove options parameter from
+       gc_process_relocs, scan_relocs, scan_relocatable_relocs.  Change
+       all callers.
+       * gc.h (gc_process_relocs): Remove options parameter.  Change all
+       callers.
+       * arm.cc: Update functions to remove options parameters.
+       * i386.cc: Likewise.
+       * powerpc.cc: Likewise.
+       * sparc.cc: Likewise.
+       * x86_64.cc: Likewise.
+       * testsuite/testfile.cc: Likewise.
+
+2009-10-28  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_relobj): New class definition.
+       (Arm_relobj::scan_sections_for_stubs, 
+       Arm_relobj::do_count_local_symbols, Arm_relobj::do_relocate_sections):
+       New method definitions.
+
+2009-10-28  Cary Coutant  <ccoutant@google.com>
+
+       * plugin.h (Plugin::Plugin): Initialize cleanup_done_.
+       (Plugin::cleanup_done_): New member.
+       (Plugin_manager::Plugin_manager): Remove cleanup_done_.
+       (Plugin_manager::cleanup_done_): Remove.
+       (Plugin_manager::add_input_file): Edit error message.
+       * plugin.cc (Plugin::cleanup): Test and set cleanup_done_.
+       (Plugin_manager::cleanup): Remove use of cleanup_done_.
+
+2009-10-27  Mikolaj Zalewski  <mikolajz@google.com>
+
+       * fileread.cc: (File_read::View::~View): Use the new
+       data_ownership_ filed.
+       (File_read::~File_read): Dispose the new whole_file_view_.
+       (File_read::open): Mmap the whole file if needed.
+       (File_read::open): Use whole_file_view_ instead of contents_.
+       (File_read::find_view): Use whole_file_view_ if applicable.
+       (File_read::do_read): Use whole_file_view_ instead of contents_.
+       (File_read::make_view): Use whole_file_view_ instead of contents_,
+       update File_read::View::View call.
+       (File_read::find_or_make_view): Update File_read::View::View
+       call.
+       * fileread.h: (File_read::File_read): Initialize whole_file_view_,
+       remove contents_
+       (File_read::View::Data_ownership): New enum.
+       (File_read::View::View): Replace bool mapped_ with Data_ownership
+       argument.
+       (File_read::View::mapped_): Remove (replaced by data_ownership_).
+       (File_read::View::data_ownership_): New field.
+       (File_read::contents_): Remove (replaced by whole_file_view_).
+       (File_read::whole_file_view_): New field.
+       * options.h (class General_options): Add --keep-files-mapped.
+
+2009-10-27  Cary Coutant  <ccoutant@google.com>
+
+       * symtab.cc (add_from_pluginobj): Pass correct value for is_ordinary.
+       * testsuite/Makefile.am (plugin_test_5): New test case.
+       * testsuite/Makefile.in: Regenerate.
+
+2009-10-25  Doug Kwan  <dougkwan@google.com>
+
+       * object.h (Sized_relobj::View_size, Sized_relobj::Views): Change
+       from private to protected to allow access by child class.
+       (Sized_relobj::do_relocate_sections): New method declaration.
+       (Sized_relobj::relocate_sections): Virtualize.
+       * reloc.cc (Sized_relobj::do_relocate_sections): Rename from 
+       Sized_relobj::relocate_sections.  Instantiate template explicitly
+       for different target sizes and endianity.
+
+2009-10-24  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_output_section, Arm_relobj): Forward class declarations.
+       (Arm_input_section::as_arm_input_section): New method.
+       (Arm_output_section): New class definition.
+       (Arm_output_section::create_stub_group,
+       Arm_output_section::group_sections): New method definitions.
+
+2009-10-22  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_input_section): New class definition.
+       (Arm_input_section::init, Arm_input_section:do_write,
+       Arm_input_section::set_final_data_size,
+       Arm_input_section::do_reset_address_and_file_offset): New method
+       definitions.
+
+2009-10-21  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Stub_table, Arm_input_section): New forward class
+       declarations.
+       (Stub_table): New class defintion.
+       (Stub_table::add_reloc_stub, Stub_table::relocate_stubs
+       Stub_table::do_reset_address_and_file_offset, Stub_table::do_write):
+       New method definition.
+
+2009-10-21  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc: Update copyright comments.
+       (Target_arm): New forward class template declaration.
+       (Arm_address): New type.
+       (ARM_MAX_FWD_BRANCH_OFFSET, ARM_MAX_BWD_BRANCH_OFFSET,
+       THM_MAX_FWD_BRANCH_OFFSET, THM_MAX_BWD_BRANCH_OFFSET,
+       THM2_MAX_FWD_BRANCH_OFFSET, THM2_MAX_BWD_BRANCH_OFFSET): New
+       constants.
+       (Insn_template): Same.
+       (DEF_STUBS): New macro.
+       (Stub_type): New enum type.
+       (Stub_template): New class definition.
+       (Stub): Same.
+       (Reloc_stub): Same.
+       (Stub_factory): Same.
+       (Target_arm::Target_arm): Initialize may_use_blx_ and
+       should_force_pic_veneer_.
+       (Target_arm::may_use_blx, Target_arm::set_may_use_blx,
+       Target_arm::should_force_pic_veneer,
+       Target_arm::set_should_force_pic_veneer, Target_arm::using_thumb2,
+       Target_arm::using_thumb_only, Target_arm:;default_target): New
+       method defintions.
+       (Target_arm::may_use_blx_, Target_arm::should_force_pic_veneer_):
+       New data member declarations.
+       (Insn_template::size, Insn_template::alignment): New method defintions.
+       (Stub_template::Stub_template): New method definition.
+       (Reloc_stub::Key::name, Reloc_stub::stub_type_for_reloc,
+       Reloc_stub::do_fixed_endian_write, Reloc_stub::do_write): Same.
+       (Stub_factory::Stub_factory): New method definition.
+       * gold.h (string_hash): New template.
+       * output.h (Input_section_specifier::hash_value): Use
+       gold::string_hash.
+       (Input_section_specifier::string_hash): Remove.
+       * stringpool.cc (Stringpool_template::string_hash): Use
+       gold::string_hash.
+
+2009-10-20  Doug Kwan  <dougkwan@google.com>
+
+       * object.cc (Sized_relobj::do_finalize_local_symbols): Handle section
+       symbols of relaxed input sections.
+       * output.h (Output_section::find_relaxed_input_section): Make
+       method public.
+
+2009-10-16  Doug Kwan  <dougkwan@google.com>
+
+       * dynobj.cc (Versions::Versions): Initialize version_script_.
+       Only insert base version symbol definition for a shared object
+       if version script defines any version versions.
+       (Versions::define_base_version): New method definition.
+       (Versions::add_def): Check that base version is not needed.
+       (Versions::add_need): Define base version lazily.
+       * dynobj.h (Versions::define_base_version): New method declaration.
+       (Versions::needs_base_version_): New data member declaration.
+       * testsuite/Makefile.am (check_SCRIPTS): Add no_version_test.sh
+       (check_DATA): Add no_version_test.stdout.
+       (libno_version_test.so, no_version_test.o no_version_test.stdout):
+       New make rules.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/no_version_test.c: New file.
+       * testsuite/no_version_test.sh: Ditto.
+
+2009-10-16  Doug Kwan  <dougkwan@google.com>
+
+       * expression.cc (class Segment_start_expression): New class definition.
+       (Segment_start_expression::value): New method definition.
+       (script_exp_function_segment_start): Return a new
+       Segment_start_expression.
+       * gold/script-c.h (script_saw_segment_start_expression): New function
+       prototype.
+       * script-sections.cc (Script_sections::Script_sections): Initialize
+       SAW_SEGMENT_START_EXPRESSION_ to false.
+       (Script_sections::set_section_addresses): Use -Ttext, -Tdata
+       and -Tbbs options to specify section addresses if given in
+       command line and no SEGMENT_START expression is seen in a script.
+       * script-sections.h (Script_sections::saw_segment_start_expression,
+       Script_sections::set_saw_segment_start_expression): New method
+       definition.
+       (Script_sections::saw_segment_start_expression_): New data member
+       declaration.
+       * script.cc (script_saw_segment_start_expression): New function.
+       * yyscript.y (SEGMENT_START): Call script_saw_segment_start_expression.
+       * testsuite/Makefile.am (check_SCRIPTS): Add script_test_6.sh,
+       script_test_7.sh and script_test_8.sh.
+       (check_DATA): Add script_test_6.stdout, script_test_7.stdout and
+       script_test_8.stdout.
+       (MOSTLYCLEANFILES): Add script_test_6, script_test_7 and script_test_8.
+       (script_test_6, script_test_6.stdout, script_test_7,
+       script_test_7.stdout, script_test_8, script_test_8.stdout): New rules.
+       * Makefile.in: Regenerate.
+       * testsuite/script_test_6.sh: New file.
+       * testsuite/script_test_6.t: Same.
+       * testsuite/script_test_7.sh: Same.
+       * testsuite/script_test_7.t: Same.
+       * testsuite/script_test_8.sh: Same.
+
+2009-10-16  Doug Kwan  <dougkwan@google.com>
+
+       * output.cc (Output_segment::set_section_list_address): Cast
+       expressions to unsigned long long type to avoid format warnings.
+
+2009-10-15  Ian Lance Taylor  <iant@google.com>
+
+       * script.cc (Script_options::add_symbol_assignment): Always add a
+       dot assignment to script_sections_.
+       * script-sections.cc (Script_sections::add_dot_assignment):
+       Initialize if necessary.
+
+       * layout.cc (Layout::relaxation_loop_body): Don't crash if we see
+       program headers with no load segment if there is a linker script.
+
+       * layout.cc (Layout::set_segment_offsets): Align the file offset
+       to the segment aligment for -N or -n with no load segment.
+       * output.cc (Output_segment::add_output_section): Don't crash if
+       the first section is a TLS section.
+       (Output_segment::set_section_list_addresses): Print an error
+       message if the address moves backward in a linker script.
+       * script-sections.cc
+       (Output_section_element_input::set_section_addresses): Don't
+       increase *dot_value for a SHF_TLS/SHT_NOBITS section.
+       (Orphan_output_section::set_section_addresses): Likewise.
+
+2009-10-15  Doug Kwan  <dougkwan@google.com>
+
+       * layout.cc (Layout::finish_dynamic_section): Generate tags
+       DT_FINI_ARRAY, DT_FINI_ARRAYSZ, DT_INIT_ARRAY, DT_INIT_ARRAYSZ,
+       DT_PREINIT_ARRAY, DT_PREINIT_ARRAYSZ as needed. If -Bsymbolic is
+       used, add DT_SYMBOLIC and set DF_SYMBOLIC in DT_FLAGS.
+
+2009-10-14  Ian Lance Taylor  <iant@google.com>
+
+       * object.h (class Relocate_info): Add reloc_shdr and data_shdr
+       fields.
+       * object.cc (Sized_relobj::relocate_sections): Set reloc_shdr and
+       data_shdr fields of relinfo.
+       * i386.cc (class Target_i386::Relocate): Remove ldo_addrs_ field.
+       (Target_i386::Relocate::relocate_tls): Don't call fix_up_ldo.  For
+       R_386_TLS_LDO_32, adjust based on section flags.
+       (Target_i386::Relocate::fix_up_ldo): Remove.
+
+2009-10-13  Ian Lance Taylor  <iant@google.com>
+
+       Add support for -pie.
+       * options.h (class General_options): Add -pie and
+       --pic-executable.
+       (General_options::output_is_position_independent): Test -pie.
+       (General_options::output_is_executable): Return true if not shared
+       and not relocatable.
+       (General_options::output_is_pie): Remove.
+       * options.cc (General_options::finalize): Reject incompatible uses
+       of -pie.
+       * gold.cc (queue_middle_tasks): A -pie link is not static.
+       * symtab.h (Symbol::needs_plt_entry): Return false if -pie.
+       * symtab.cc (Symbol::final_value_is_known): Return false if
+       output_is_position_independent.
+       * layout.cc (Layout::set_segment_offsets): Start at address 0 if
+       output_is_position_independent.
+       * output.cc (Output_file_header::do_sized_write): Use ET_DYN if
+       output_is_position_independent.
+       * i386.cc (Output_data_plt_i386::do_write): Use the PIC PLT if
+       output_is_position_independent.
+       * testsuite/Makefile.am (check_PROGRAMS): Add basic_pie_test and
+       two_file_pie_test.
+       (basic_pie_test.o, basic_pie_test): New targets.
+       (two_file_test_1_pie.o, two_file_test_1b_pie.o): New targets.
+       (two_file_test_2_pie.o, two_file_test_main_pie.o): New targets.
+       (two_file_pie_test): New target.
+       * testsuite/Makefile.in: Rebuild.
+       * README: Remove note saying that -pie is not supported.
+
+2009-10-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       * options.h (class General_options): Add -init and -fini.
+       * layout.cc (Layout::finish_dynamic_section): Emit
+       given init and fini functions.
+
+2009-10-13  Sriraman Tallam  <tmsriram@google.com>
+
+       * gc.h (gc_process_relocs): Check if icf is enabled using new
+       function.
+       * gold.cc (queue_initial_tasks): Likewise.
+       (queue_middle_tasks): Likewise.
+       * object.cc (do_layout): Likewise.
+       * symtab.cc (is_section_folded): Likewise.
+       * main.cc (main): Likewise.
+       * reloc.cc (Read_relocs::run): Likewise.
+       (Sized_relobj::do_scan_relocs): Likewise.
+       * icf.cc (is_function_ctor_or_dtor): New function.
+       (Icf::find_identical_sections): Check if function is ctor or dtor when
+       safe icf is chosen.
+       * options.h (General_options::icf): Change option to be an enum.
+       (Icf_status): New enum.
+       (icf_enabled): New method.
+       (icf_safe_folding): New method.
+       (set_icf_status): New method.
+       (icf_status_): New variable.
+       * (options.cc) (General_options::finalize): Set icf_status_.
+       * testsuite/Makefile.am: Add commands to build icf_safe_test. Modify
+       icf_test and icf_keep_unique_test to use the --icf enum flag.
+       * testsuite/icf_safe_test.sh: New file.
+       * testsuite/icf_safe_test.cc: New file. 
+
+2009-10-12  Sriraman Tallam  <tmsriram@google.com>
+
+       * symtab.h: Check for GOLD_SYMTAB_H before header includes. Remove
+       includes to gc.h and icf.h.
+       * arm.cc: Include gc.h.
+       * gold.cc: Likewise.
+       * i386.cc: Likewise.
+       * powerpc.cc: Likewise.
+       * sparc.cc: Likewise.
+       * x86_64.cc: Likewise.
+       * gc.h: Include icf.h.
+
+2009-10-11  Ian Lance Taylor  <iant@google.com>
+
+       * plugin.cc: Include "gold.h" before other header files.
+
+2009-10-10  Chris Demetriou  <cgd@google.com>
+
+       * options.h (Input_file_argument::Input_file_type): New enum.
+       (Input_file_argument::is_lib_): Replace with...
+       (Input_file_argument::type_): New member.
+       (Input_file_argument::Input_file_argument): Take Input_file_type
+       'type' rather than boolean 'is_lib' as second argument.
+       (Input_file_argument::is_lib): Use type_.
+       (Input_file_argument::is_searched_file): New function.
+       (Input_file_argument::may_need_search): Handle is_searched_file.
+       * options.cc (General_options::parse_library): Support -l:filename.
+       (General_options::parse_just_symbols): Update for Input_file_argument
+       changes.
+       (Command_line::process): Likewise.
+       * archive.cc (Archive::get_file_and_offset): Likewise.
+       * plugin.cc (Plugin_manager::release_input_file): Likewise.
+       * script.cc (read_script_file, script_add_file): Likewise.
+       * fileread.cc (Input_file::Input_file): Likewise.
+       (Input_file::will_search_for): Handle is_searched_file.
+       (Input_file::open): Likewise.
+       * readsyms.cc (Read_symbols::get_name): Likewise.
+       * testsuite/Makefile.am (searched_file_test): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/searched_file_test.cc: New file.
+       * testsuite/searched_file_test_lib.cc: New file.
+
+2009-10-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+           Ian Lance Taylor  <iant@google.com>
+
+       * descriptor.cc: Include <cstdio> and "binary-io.h".
+       (Descriptors::open): Open the files in binary mode always.
+       * script.cc (Lex::get_token): Treat \r as whitespace.
+
+2009-10-09  Ian Lance Taylor  <iant@google.com>
+
+       * testsuite/retain_symbols_file_test.sh: Don't test for __tcf_0.
+
+2009-10-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+           Ian Lance Taylor  <iant@google.com>
+
+       * configure.ac: Check for readv function also.
+       * fileread.cc (readv): Define if not HAVE_READV.
+       * fileread.h (File_read:: max_readv_entries): Set to 1 if readv
+       does not exist.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+
 2009-10-09  Doug Kwan  <dougkwan@google.com>
 
        * layout.cc (Layout::make_output_section): Call target hook to make
This page took 0.033492 seconds and 4 git commands to generate.