OSDN Git Service

* gc.h (gc_process_relocs): Call is_section_foldable_candidate to
[pf3gnuchains/pf3gnuchains3x.git] / gold / ChangeLog
index a8cd1cb..ef1b6f2 100644 (file)
@@ -1,6 +1,147 @@
+2010-01-04  Sriraman Tallam  <tmsriram@google.com>
+
+       * gc.h (gc_process_relocs): Call is_section_foldable_candidate to
+       check for .text or .gnu.linkonce.t sections.
+       * icf.cc (Icf::find_identical_sections): Ditto.
+       Change the detection for mangled function name within the section
+       name.
+       * icf.h (is_section_foldable_candidate): New function.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10980
+       * options.h (class General_options): Permit two dashes with
+       --retain-symbols-file.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10979
+       * layout.cc (Layout::relaxation_loop_body): If -Ttext was used,
+       don't put the file header and segment headers in the text
+       segment.
+
+       PR 10979
+       * common.cc (Sort_commons::operator()): Stabilize sort when both
+       entries are NULL.
+       (Symbol_table::do_allocate_commons_list): When allocating common
+       symbols, skip a symbol which is no longer common.
+       * symtab.h (Symbol::is_common): Test whether the symbol comes from
+       an object before checking its type.
+       * testsuite/common_test_2.c: New file.
+       * testsuite/common_test_3.c: New file.
+       * testsuite/Makefile.am (check_PROGRAMS): Add common_test_2.
+       (common_test_2_SOURCES, common_test_2_DEPENDENCIES): Define.
+       (common_test_2_LDFLAGS, common_test_2_LDADD): Define.
+       (common_test_2_pic.o, common_test_2.so): New targets.
+       (common_test_3_pic.o, common_test_3.so): New targets.
+       * testsuite/Makefile.in: Rebuild.
+
+       PR 10979
+       * script.cc (read_input_script): If we see a new SECTIONS clause,
+       and we have added an input section, give an error.
+       * layout.h (class Layout): Add have_added_input_section function.
+       Add have_added_input_section_ field.
+       * layout.cc (Layout::Layout): Initialize
+       have_added_input_section_.
+       (Layout::layout): Set have_added_input_section_.
+       (Layout::layout_eh_frame): Likewise.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10931
+       * options.h (class General_options): Add --sort-common option.
+       * symtab.h (class Symbol_table): Define Sort_commons_order enum.
+       * common.cc (Sort_common): Add sort_order parameter to
+       constructor.  Add sort_order_ field.
+       (Sort_commons::operator): Check sort_order_.
+       (Symbol_table::allocate_commons): Determine the sort order.
+       (Symbol_table::do_allocate_commons): Add sort_order parameter.
+       Change all callers.
+       (Symbol_table::do_allocate_commons_list): Likewise.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10916
+       * symtab.cc (Symbol_table::add_from_relobj): When not exporting
+       symbols from this object, don't change the visibility of an
+       undefined symbol.
+       * testsuite/exclude_libs_test_1.c (lib1_ref): New function.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10861
+       * script.h (class Version_script_info): Define Language enum.
+       Update declarations.  Define Glob, Exact, and Lookup types.  Add
+       new fields globals_, locals_, and is_finalized_.
+       * script.cc: Various formatting fixes.
+       (class Parser_closure): Change language_stack_ from a vector of
+       std::string to one of Version_script_info::Language.  Adjust all
+       uses accordingly.
+       (class Lazy_demangler): Remove.
+       (struct Version_expression): Change language from std::string to
+       Version_script_info::Language.
+       (Version_script_info::Version_script_info): New function.
+       (Version_script_info::~Version_script_info): Don't call clear.
+       (Version_script_info::finalize): New function.
+       (Version_script_info::build_lookup_tables): New function.
+       (Version_script_info::build_expression_list_lookup): New
+       function.
+       (Version_script_info::get_symbol_version_helper): Rewrite to use
+       lookup tables.
+       (Version_script_info::print_expression_list): Adjust to use
+       Version_script_info::Language.
+       (script_push_lex_into_version_mode): Check that the version script
+       has not been finalized.
+       (version_script_push_lang): Change language string to
+       Version_script_info::Language.
+       * options.cc (Command_line::version_script): New function.
+       * options.h (class General_options): Add finalize_dynamic_list
+       function.  Change version_script from declaration to definition.
+       * testsuite/ver_test_4.script: Remove duplicate def of t2_2.
+       * testsuite/version_script.map: Remove duplicate def of foo.
+       * testsuite/Makefile.am (ver_matching_def.so): Depend upon
+       version_script.map.
+       * testsuite/Makefile.in: Rebuild.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10843
+       * target-reloc.h (relocate_for_relocatable): When copying a reloc,
+       if the input symbol index is 0, make the output symbol index 0.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10670
+       * options.h (class General_options): Add -x/--discard-all.
+       * object.cc (Sized_relobj::do_count_local_symbols): Handle
+       --discard-all.  If the local symbol needs a dynamic entry, check
+       that before handling --discard-locals.
+
+2009-12-30  Ian Lance Taylor  <iant@google.com>
+
+       PR 10450
+       * output.cc (Output_segment::Output_segment): If PT_TLS, set the
+       flags to PF_R.
+       (Output_segment::add_output_section): Don't change the flags if
+       the type is PT_TLS.
+
+       PR 10450
+       * dynobj.cc (Dynobj::create_gnu_hash_table): Add symbols to the
+       GNU hash table if they need a dynamic value.  Otherwise, don't add
+       them if they are defined in a dynamic object or are forced local.
+
 2009-12-29  Ian Lance Taylor  <iant@google.com>
 
        PR 10450
+       * layout.cc (Layout::create_dynamic_symtab): Only set entsize of
+       .gnu.hash table for a 32-bit target.
+
+       PR 10450
+       * symtab.h (Symbol::needs_dynsym_entry): A symbol in both a
+       regular and a dynamic object only needs a dynamic symbol table
+       entry if it is externally visible.
+
+       PR 10450
        * i386.cc (class Target_i386): Initialize global_offset_table_ in
        constructor.  Add global_offset_table_ field.
        (Target_i386::got_section): Set global_offset_table_.