summaryrefslogtreecommitdiff
path: root/gold
Commit message (Collapse)AuthorAgeFilesLines
* * options.h (Command_line::Pre_options): New class.Cary Coutant2009-08-253-1/+42
| | | | | | | | | | (Command_line::pre_options): New member. * options.cc (gold::options::ready_to_register): New variable. (One_option::register_option): Do nothing if not registering options. Assert if same short option registered twice. (General_options::General_options): Turn off option registration when done constructing. (Command_line::Pre_options::Pre_options): New constructor.
* Fixed typo in ChangeLog.Cary Coutant2009-08-241-1/+2
|
* (General_options::no_keep_memory): Remove incorrect short option.Cary Coutant2009-08-242-2/+7
|
* Fix yacc and lex reruns with maintainer-mode off.Ralf Wildenhues2009-08-243-0/+15
| | | | | | | | | | | | | | | | | | gas/: * Makefile.am (am__skiplex, am__skipyacc): New. * Makefile.in: Regenerate. ld/: * Makefile.am (am__skiplex, am__skipyacc): New. * Makefile.in: Regenerate. binutils/: * Makefile.am (am__skiplex, am__skipyacc): New. * Makefile.in: Regenerate. gold/: * Makefile.am (am__skiplex, am__skipyacc): New. * Makefile.in: Regenerate.
* Cleanups in binutils makefiles.Ralf Wildenhues2009-08-225-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ld/: * Makefile.am (bin_PROGRAMS): Renamed from ... (noinst_PROGRAMS): ... this. (transform): Override, including the renaming of ld-new to ld. (install-exec-local): Installation of ld in $(bindir) not needed here any more. (AM_CPPFLAGS): Renamed from ... (INCLUDES): ... this. (MAINTAINERCLEANFILES): Add ld.1. * Makefile.in: Regenerate. gold/: * Makefile.am (AM_CPPFLAGS): Renamed from ... (INCLUDES): ... this. * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Add -Wno-portability. (AM_CPPFLAGS): Renamed from ... (INCLUDE): ... this. * Makefile.in, testsuite/Makefile.in: Regenerate. bfd/: * Makefile.am (libbfd_la_LDFLAGS): Initialize early, to allow appending. [INSTALL_LIBBFD] (bfdlib_LTLIBRARIES, bfdinclude_HEADERS): Set only in this condition. [!INSTALL_LIBBFD] (noinst_LTLIBRARIES, libbfd_la_LDFLAGS): New, to build but not install libbfd.la in this condition. (install-bfdlibLTLIBRARIES, uninstall-bfdlibLTLIBRARIES) (install_libbfd, install_libbfd): Remove. * Makefile.in: Regenerate. binutils/: * Makefile.am (AM_CPPFLAGS): Renamed from ... (INCLUDES): ... this. (bin2c$(EXEEXT_FOR_BUILD): Adjust rule. (installcheck-local): Renamed from ... (installcheck): ... this. * Makefile.in: Regenerate. gas/: * Makefile.am (YFLAGS): Remove, not needed any more. (AM_CPPFLAGS): Renamed from ... (INCLUDES): ... this. * Makefile.in: Regenerate. gprof/: * Makefile.am (AM_CPPFLAGS): Renamed from ... (INCLUDES): ... this. * Makefile.in: Regenerate. opcodes/: * Makefile.am (libopcodes_la_LDFLAGS): Initialize early. [INSTALL_LIBBFD] (bfdlib_LTLIBRARIES): Set only in this condition. [INSTALL_LIBBFD] (bfdinclude_DATA): New. [!INSTALL_LIBBFD] (noinst_LTLIBRARIES): New. [!INSTALL_LIBBFD] (libopcodes_la_LDFLAGS): Ensure libopcodes.la is built shared even if it is not to be installed. (install-bfdlibLTLIBRARIES,uninstall-bfdlibLTLIBRARIES) (install_libopcodes, uninstall_libopcodes): Remove. (AM_CPPFLAGS): Renamed from ... (INCLUDES): ... this. * Makefile.in: Regenerate.
* Regenerate tree using Autoconf 2.64 and Automake 1.11.Ralf Wildenhues2009-08-226-6865/+5914
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | config/: * override.m4 (_GCC_AUTOCONF_VERSION): Bump to 2.64. /: * configure: Regenerate. etc/: * configure: Regenerate. sim/common/: * config.in: Regenerate. * configure: Likewise. sim/iq2000/: * config.in: Regenerate. * configure: Likewise. sim/d10v/: * config.in: Regenerate. * configure: Likewise. sim/igen/: * config.in: Regenerate. * configure: Likewise. sim/m32r/: * config.in: Regenerate. * configure: Likewise. sim/frv/: * config.in: Regenerate. * configure: Likewise. sim/: * avr/config.in: Regenerate. * avr/configure: Likewise. * configure: Likewise. * cris/config.in: Likewise. * cris/configure: Likewise. sim/h8300/: * config.in: Regenerate. * configure: Likewise. sim/mn10300/: * config.in: Regenerate. * configure: Likewise. sim/ppc/: * config.in: Regenerate. * configure: Likewise. sim/erc32/: * config.in: Regenerate. * configure: Likewise. sim/arm/: * config.in: Regenerate. * configure: Likewise. sim/m68hc11/: * config.in: Regenerate. * configure: Likewise. sim/lm32/: * config.in: Regenerate. * configure: Likewise. sim/sh64/: * config.in: Regenerate. * configure: Likewise. sim/v850/: * config.in: Regenerate. * configure: Likewise. sim/cr16/: * config.in: Regenerate. * configure: Likewise. sim/moxie/: * config.in: Regenerate. * configure: Likewise. sim/m32c/: * config.in: Regenerate. * configure: Likewise. sim/mips/: * config.in: Regenerate. * configure: Likewise. sim/mcore/: * config.in: Regenerate. * configure: Likewise. sim/testsuite/d10v-elf/: * configure: Regenerate. sim/testsuite/: * configure: Regenerate. sim/testsuite/frv-elf/: * configure: Regenerate. sim/testsuite/m32r-elf/: * configure: Regenerate. sim/testsuite/mips64el-elf/: * configure: Regenerate. sim/sh/: * config.in: Regenerate. * configure: Likewise. gold/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * config.in: Likewise. * configure: Likewise. * testsuite/Makefile.in: Likewise. gprof/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * configure: Likewise. * gconfig.in: Likewise. opcodes/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * config.in: Likewise. * configure: Likewise. gas/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * config.in: Likewise. * configure: Likewise. * doc/Makefile.in: Likewise. ld/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * config.in: Likewise. * configure: Likewise. gdb/: * aclocal.m4: Regenerate. * config.in: Likewise. * configure: Likewise. * gnulib/Makefile.in: Likewise. gdb/doc/: * configure: Regenerate. gdb/gdbserver/: * aclocal.m4: Regenerate. * config.in: Likewise. * configure: Likewise. gdb/testsuite/: * configure: Regenerate. * gdb.hp/configure: Likewise. * gdb.hp/gdb.aCC/configure: Likewise. * gdb.hp/gdb.base-hp/configure: Likewise. * gdb.hp/gdb.compat/configure: Likewise. * gdb.hp/gdb.defects/configure: Likewise. * gdb.hp/gdb.objdbg/configure: Likewise. * gdb.stabs/configure: Likewise. binutils/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * config.in: Likewise. * configure: Likewise. * doc/Makefile.in: Likewise. bfd/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * config.in: Likewise. * configure: Likewise. bfd/doc/: * Makefile.in: Regenerate. readline/: * configure: Regenerate. readline/examples/rlfe/: * configure: Regenerate.
* Minor fixes in sim, gold, gdb for Autoconf 2.64, Automake 1.11.Ralf Wildenhues2009-08-225-4/+11
| | | | | | | | | | | | | | | | gold/: * Makefile.am (AUTOMAKE_OPTIONS): Add foreign. * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Add foreign. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. gdb/: * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE, AC_AIX, AC_ISC_POSIX. sim/common/: * aclocal.m4 (SIM_CHECK_MEMBER): Replace definition with definition of AC_CHECK_MEMBER.
* * resolve.cc (Symbol_table::resolve): Don't complain about definedCary Coutant2009-08-192-2/+9
| | | | | symbols in shared libraries overridden by hidden or internal symbols in the main program.
* 2009-08-19 Chris Demetriou <cgd@google.com>Chris Demetriou2009-08-192-8/+16
| | | | | * testsuite/debug_msg.sh: Match .* rather than ${srcdir} when checking source file names in error messages.
* 2009-08-18 Doug Kwan <dougkwan@google.com>Doug Kwan2009-08-187-54/+165
| | | | | | | | | | | | | | | | | | | | | | | * dynobj.cc (Sized_dynobj::setup): Take a Target object instead of an elcpp::Ehdr as parameter. Adjust call to set_target. * dynobj.h (Sized_dynobj::setup): Take a Target object instead of an elfcpp::Ehdr as parameter. * object.cc (Object::set_target): Remove the version that looks up a target and sets it. (Sized_relobj::setup): Take a Target object instead of an elfcpp::Ehdr as parameter. Adjust call to set_target. (make_elf_sized_object): Find target and ask target to make an ELF object. * object.h: (Object::set_target): Remove the version that looks up a target and sets it. (Sized_relobj::setup): Take a Target object instead of an elfcpp:Ehdr as parameter. * target.cc: Include dynobj.h. (Target::do_make_elf_object_implementation): New. (Target::do_make_elf_object): New. * target.h (Target::make_elf_object): New template declaration. (Target::do_make_elf_object): New method declarations. (Target::do_make_elf_object_implementation): New template declaration.
* * gold.h (FUNCTION_NAME): Define.Ian Lance Taylor2009-08-142-1/+17
| | | | (gold_unreachable): Use FUNCTION_NAME.
* 2009-08-12 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam2009-08-132-3/+11
| | | | | * icf.cc (Icf::find_identical_sections): Issue a warning when a symbol in the --keep-unique list is not found.
* Sriraman Tallam <tmsriram@google.com>Sriraman Tallam2009-08-128-1/+152
| | | | | | | | | | | | * icf.cc (Icf::find_identical_sections): Unfold symbols that have been maked as --keep-unique. (Icf::unfold_section): New function. * icf.h (Icf::unfold_section): New function. * options.h (General_options::keep_unique): New option. * testsuite/Makefile.am: Add commands to build icf_keep_unique_test. * testsuite/Makefile.in: Regenerate. * testsuite/icf_keep_unique_test.sh: New file. * testsuite/icf_keep_unique_test.cc: New file.
* PR 10471Cary Coutant2009-08-127-3/+220
| | | | | | | | | | * resolve.cc (Symbol_table::resolve): Check for references from dynamic objects to hidden and internal symbols. * testsuite/Makefile.am (hidden_test.sh): New test. * testsuite/Makefile.in: Regenerate. * testsuite/hidden_test.sh: New script. * testsuite/hidden_test_1.c: New test source. * testsuite/hidden_test_main.c: New test source.
* 2009-08-11 Doug Kwan <dougkwan@google.com>Doug Kwan2009-08-112-8/+29
| | | | | | * arm.cc: Update comments. (Target_arm::do_finalize_sections): Add a special PT_ARM_EXIDX segment to locate the .ARM.exidx section if present.
* Revert the previous change.Doug Kwan2009-08-102-1/+6
| | | | http://sourceware.org/ml/binutils-cvs/2009-08/msg00043.html
* *** empty log message ***Sriraman Tallam2009-08-072-1/+5
|
* *** empty log message ***Sriraman Tallam2009-08-076-11/+111
|
* *** empty log message ***Sriraman Tallam2009-08-0524-131/+1332
|
* 2009-07-24 Chris Demetriou <cgd@google.com>Chris Demetriou2009-07-242-6/+10
| | | | | * layout.cc (is_compressible_debug_section): Fix incorrect comment about compressed section names.
* PR 10419Ian Lance Taylor2009-07-212-26/+31
| | | | * x86_64.cc (Target_x86_64::do_code_fill): Correct nop sequences.
* PR 10400Ian Lance Taylor2009-07-176-165/+366
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * layout.h: #include <map>. (class Kept_section): Change from struct to class. Add accessors and setters. Add section size to Comdat_group mapping. Change Comdat_group to std::map. Add is_comdat_ field. Add linkonce_size field in union. (class Layout): Update declaration of find_or_add_kept_section. Don't declare find_kept_object. * layout.cc (Layout::find_or_add_kept_section): Remove candidate parameter. Add object, shndx, is_comdat, and is_group_name parameters. Change all callers. Adjust for new Kept_section. (Layout::find_kept_object): Remove. * object.cc (Sized_relobj::include_section_group): Update use of Kept_section. Rename secnum to shndx. Only record Kept_comdat_section if sections are the same size. (Sized_relobj::include_linkonce_section): Update use of Kept_section. Only record Kept_comdat_section if sections are the same size. Set size of linkonce section. (Sized_relobj::map_to_kept_section): Update call to get_kept_comdat_section. * object.h (class Sized_relobj): Rename fields in Kept_comdat_section to drop trailing underscores; change object field to Relobj*. Change Kept_comdat_section_table to store struct rather than pointer. (Sized_relobj::set_kept_comdat_section): Remove kept parameter. Add kept_object and kept_shndx parameters. Change all callers. (Sized_relobj::get_kept_comdat_section): Change return type to bool. Add kept_object and kept_shndx parameters. Change all callers. * plugin.cc (Pluginobj::include_comdat_group): Update call to Layout::find_or_add_kept_section.
* * merge.cc (Object_merge_map::initialize_input_to_output_map):Ian Lance Taylor2009-07-092-0/+11
| | | | Reserve space in the hash table.
* * fileread.cc (File_read::get_mtime): New method.Ian Lance Taylor2009-07-067-28/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fileread.h (Timespec): New structure. (File_read::get_mtime): New method. * incremental.cc (Incremental_inputs_entry_data::timestamp_usec): Renamed from timestamp_nsec. (Incremental_inputs_entry_write::timestamp_sec): Fix argument to Elf_Xword. (Incremental_inputs_entry_write::timestamp_usec): Renamed from timestamp_nsec. (Incremental_inputs::report_archive): Save mtime; style fix. (Incremental_inputs::report_obejct): Save mtime; style fix. (Incremental_inputs::report_script): Save mtime; style fix. (Incremental_inputs::finalize_inputs): Style fix. (Incremental_inputs::finalize): Style fix. (Incremental_inputs::create_input_section_data): Store inputs mtime. * incremental.h (Incremental_inputs::report_script): Add mtime argument. (Incremental_inputs::Input_info::Input_info): Intialize only one union member. (Incremental_inputs::Input_info::archive): Move to nameless union. (Incremental_inputs::Input_info::obejct): Move to nameless union. (Incremental_inputs::Input_info::script): Move to nameless union. (Incremental_inputs::mtime): New field. * script.cc (read_input_script): Pass file mtime to Incremental_input. * script.h (Script_info::inputs): Style fix.
* * freebsd.h (Target_freebsd::do_adjust_elf_header): Use sizeIan Lance Taylor2009-07-012-3/+8
| | | | instead of 32.
* PR 10156Ian Lance Taylor2009-06-246-22/+83
| | | | | | | | | | | | | | | | | | | | | | | | * layout.cc (Layout::choose_output_section): If we find an existing section, update the flags. (Layout::create_notes): New function, broken out of Layout::finalize. (Layout::finalize): Don't create note sections. (Layout::create_note): Don't crash if linker script discards section. (Layout::create_gold_note): Likewise. (Layout::create_build_id): Likewise. Don't set after_input_sections on the section. (Layout::create_executable_stack_info): Remove target parameter. Change caller. * layout.h (class Layout): Declare create_notes. Update declaration of create_executable_stack_info. * gold.cc (queue_middle_tasks): Call create_notes. * output.cc (Output_section::update_flags_for_input_section): Move here from output.h. If SHF_ALLOC flag is newly set, mark address invalid. * output.h (Output_data::mark_address_invalid): New function. (class Output_section): Only declare, not define, update_flags_for_input_section. Remove set_flags.
* * script-sections.cc (Output_section_definition::Ian Lance Taylor2009-06-242-4/+10
| | | | | set_section_addresses): Rename shadowing local load_address to laddr.
* PR 10244Ian Lance Taylor2009-06-242-1/+9
| | | | * reloc.cc (relocate_sections): Skip empty relocation sections.
* PR 10156Ian Lance Taylor2009-06-242-8/+14
| | | | | * layout.cc (Layout::create_note): Use choose_output_section rather than make_output_section.
* PR 10237Ian Lance Taylor2009-06-244-4/+28
| | | | | | | | | | * options.cc (General_options::parse_V): Set printed_version_. (General_options::General_options): Initialize printed_version_. * options.h (class General_options): Add printed_version_ field. * gold.cc (queue_initial_tasks): If there are no input files, don't give a fatal error if we printed the version information. (queue_middle_tasks): If using -r with a shared object, give a fatal error rather than an ordinary error.
* PR 10219Ian Lance Taylor2009-06-243-0/+61
| | | | | | | | | | * layout.cc (Layout::Layout): Initialize have_stabstr_section_. (Layout::make_output_section): Set have_stabstr_section_ if we see a .stab*str section. (Layout::finalize): Call link_stabs_sections. (Layout::link_stabs_sections): New file. * layout.h (class Layout): Add have_stabstr_section_ field. Declare link_stabs_sections.
* 2009-06-23 Doug Kwan <dougkwan@google.com>Doug Kwan2009-06-239-11/+677
| | | | | | | | | | | | * Makefile.am (libgold_a_LIBADD): New. (ld_new_DEPENDENCIES, ld_new_LDADD): Remove LIBOBJS * Makefile.in: Regenerate. * config.in (HAVE_DECL_MEMMEM, HAVE_DECL_STRNDUP): New. * configure: Regenerate. * configure.ac (AC_CHECK_DECLS): Add strndup and memmem. * fileread.cc: Include sys/state.h * gold.h: Declare memmem and strndup if found missing. * gold_reloc.h: Include byteswap.h if HAVE_BYTESWAP_H is defined.
* * configure.ac: Call AC_CHECK_DECLS using C, not C++.Ian Lance Taylor2009-06-233-493/+504
| | | | * configure: Rebuild.
* PR 10147Ian Lance Taylor2009-06-232-0/+19
| | | | | | | * object.cc (Object::section_contents): Don't try to get a view if the section has length zero. (Object::handle_gnu_warning_section): If the section is empty, use the name of the section as the warning.
* PR 10133Ian Lance Taylor2009-06-234-2/+28
| | | | | | | | | | | * stringpool.h (class Stringpool_template): Add optimize_ field. (Stringpool_template::set_optimize): New function. * stringpool.cc (Stringpool_template::Stringpool_template): Initialize optimize_ field. (Stringpool_template::set_string_offsets): Test local optimize fild rather than parameter. * layout.cc (Layout::Layout): Call set_optimize on the section name stringpool.
* PR 10030Ian Lance Taylor2009-06-236-26/+61
| | | | | | | | | | | * yyscript.y: Parse TARGET. * script.cc (script_set_target): New function. * script-c.h (script_set_target): Declare. * options.cc (General_options::string_to_object_format): Rename from string_to_object_format in anonymous namespace. Change callers. * options.h (class General_options): Declare string_to_object_format.
* * script-sections.cc (Script_sections::create_segments): Don't putIan Lance Taylor2009-06-232-1/+11
| | | | program headers in a PT_LOAD segment if -n or -N.
* PR 10141Ian Lance Taylor2009-06-223-7/+24
| | | | | | * options.h (class General_options): Add -z lazy and -z now. Sort -z options into alphabetical order. * layout.cc (Layout::finish_dynamic_section): Handle -z now.
* Fix ChangeLog e-mail address.Ian Lance Taylor2009-06-221-1/+1
|
* * layout.cc (Layout::make_output_section): CallIan Lance Taylor2009-06-2222-98/+622
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Target::new_output_section. (Layout::attach_allocated_section_to_segment): Put large section sections in a separate load segment with the large segment flag set. (Layout::segment_precedes): Sort large data segments after other load segments. (align_file_offset): New static function. (Layout::set_segment_offsets): Use align_file_offset. * output.h (class Output_section): Add is_small_section_ and is_large_section_ fields. (Output_section::is_small_section): New function. (Output_section::set_is_small_section): New function. (Output_section::is_large_section): New function. (Output_section::set_is_large_section): New function. (Output_section::is_large_data_section): New function. (class Output_segment): Add is_large_data_segment_ field. (Output_segment::is_large_data_segment): New function. (Output_segment::set_is_large_data_segment): New function. * output.cc (Output_section::Output_section): Initialize new fields. (Output_segment::Output_segment): Likewise. (Output_segment::add_output_section): Add assertion that large data sections always go in large data segments. Force small data sections to the end of the list of data sections. Force small BSS sections to the start of the list of BSS sections. For large BSS sections to the end of the list of BSS sections. * symtab.h (class Symbol): Declare is_common_shndx. (Symbol::is_defined): Check Symbol::is_common_shndx. (Symbol::is_common): Likewise. (class Symbol_table): Define enum Commons_section_type. Update declarations. Add small_commons_ and large_commons_ fields. * symtab.cc (Symbol::is_common_shndx): New function. (Symbol_table::Symbol_table): Initialize new fields. (Symbol_table::add_from_object): Put small and large common symbols in the right list. (Symbol_table::sized_finalized_symbol): Check Symbol::is_common_shndx. (Symbol_table::sized_write_globals): Likewise. * common.cc (Symbol_table::do_allocate_commons): Allocate new common symbol lists. Don't call do_allocate_commons_list if the list is empty. (Symbol_table::do_allocate_commons_list): Remove is_tls parameter. Add comons_section_type parameter. Change all callers. Handle small and large common symbols. * object.cc (Sized_relobj::do_finalize_local_symbols): Check Symbol::is_common_shndx. * resolve.cc (symbol_to_bits): Likewise. * target.h (Target::small_common_shndx): New function. (Target::small_common_section_flags): New function. (Target::large_common_shndx): New function. (Target::large_common_section_flags): New function. (Target::new_output_section): New function. (Target::Target_info): Add small_common_shndx, large_common_shndx, small_common_section_flags, and large_common_section_flags fields. (Target::do_new_output_section): New virtual function. * arm.cc (Target_arm::arm_info): Initialize new fields. * i386.cc (Target_i386::i386_info): Likewise. * powerpc.cc (Target_powerpc::powerpc_info) [all versions]: Likewise. * sparc.c (Target_sparc::sparc_info) [all versions]: Likewise. * x86_64.cc (Target_x86_64::x86_64_info): Likewise. (Target_x86_64::do_new_output_section): New function. * configure.ac: Define conditional MCMODEL_MEDIUM. * testsuite/Makefile.am (check_PROGRAMS): Add large. (large_SOURCES, large_CFLAGS, large_DEPENDENCIES): Define. (large_LDFLAGS): Define. * testsuite/large.c: New file. * testsuite/testfile.cc (Target_test::test_target_info): Initialize new fields. * configure, testsuite/Makefile.in: Rebuild.
* 2009-06-05 Doug Kwan <dougkwan@google.com>Doug Kwan2009-06-0512-13/+267
| | | | | | | | | | | | | | | | | | | | | | * Makefile.am (CCFILES): Add target.cc. * Makefile.in: Regenerate. * i386.cc (class Target_i386): Define new virtual method to override do_is_local_label_name in parent. * object.cc (Sized_relobj::do_count_local_symbols): Discard local symbols if --discard-locals or -X is given. * options.h (class General_options): Declare new options '--discard-locals' and '-X' for discarding locals. * target.h (class Target): Define new methods is_local_label_name. Declare new virtual method do_is_local_label_name. * target.cc: New file. * testsuite/Makefile.am (check_PROGRAMS): Add discard_locals_test. (check_SCRIPTS): Add discard_locals_test.sh. (check_DATA): Add discard_local_tests.syms. (discard_locals_test_SOURCES, discard_locals_test_LDFLAGS): Define. (discard_local_tests.syms, discard_locals_test.o): New make rules. * testsuite/Makefile.in: Regenerate. * testsuite/discard_locals_test.c: New file. * testsuite/discard_locals_test.sh: Same.
* 2009-06-05 Doug Kwan <dougkwan@google.com>Doug Kwan2009-06-055-16/+77
| | | | | | | | | | | | | | | * object.cc (Sized_relobj::Sized_relobj): Initialize discarded_eh_frame_shndx_ to -1U. (Sized_relobj::do_layout): Record index of a discard .eh_frame section. (Sized_relobj::do_count_local_symbols): Skip local symbols in a discarded .eh_frame section. (Sized_relobj::do_finalize_local_symbols): Ditto. * object.h (class Sized_relobj): Declare new member discarded_eh_frame_shndx_. * testsuite/Makefile.am (check_PROGRAMS): Add local_labels_test. (local_labels_test.o, local_labels_test): New rules. * testsuite/Makefile.in: Regenerate.
* 2009-06-04 Doug Kwan <dougkwan@google.com>Doug Kwan2009-06-042-0/+9
| | | | | * layout.cc (Layout::section_name_mapping): Add mapping for special ARM sections.
* 2009-06-03 Doug Kwan <dougkwan@google.com>Doug Kwan2009-06-042-2/+7
| | | | | * arm.cc (utils::sign_extend): Reverse test in gold_assert. (utils::has_overflow): Same.
* * layout.cc (Layout::section_name_mapping): New array, replacingIan Lance Taylor2009-06-043-109/+78
| | | | | | | | | | | | Layout::linkonce_mapping. (Layout::section_name_mapping_count): New variable, replacing Layout::linkonce_mapping_count. (Layout::linkonce_output_name): Remove. (Layout::output_section_name): Rewrite. * layout.h (class Layout): Rename Linkonce_mapping to Section_name_mapping, linkonce_mapping to section_name_mapping, linkonce_mapping_count to section_name_mapping_count. Don't declare linkonce_output_name.
* 2009-06-03 Doug Kwan <dougkwan@google.com>Doug Kwan2009-06-032-10/+510
| | | | | | | | * gold/arm.cc (namespace utils): New. (Target_arm::reloc_is_non_pic): Define new method. (class Arm_relocate_functions): New. (Target_arm::Relocate::relocate): Handle relocation types used by Android.
* * arm.cc (Target_arm::scan::global): Use || instead of |.Ian Lance Taylor2009-06-032-1/+5
|
* 2009-06-02 Doug Kwan <dougkwan@google.com>Doug Kwan2009-06-031-15/+354
| | | | | | | | | | | | | | | | * gold/arm.cc (Target_arm::Scan::Scan): Initialize issued_non_pic_error_. (class Target_arm::Scan): Declare new method check_non_pic. Define new method symbol_needs_plt_entry. Declare new data member issued_non_pic_error_. (class Target_arm::Relocate): Declare new method should_apply_static_reloc. (Target_arm::may_need_copy_reloc): Handle STT_ARM_TFUNC. (Target_arm::Scan::check_non_pic): Define new method. (Target_arm::Scan::local): Handle a small subset of reloc types used by Android. (Target_arm::Scan::local): Same. (Target_arm::Relocate::should_apply_statci_reloc): Define new method.
* * incremental.cc (Incremental_inputs::report_command_line): FilterIan Lance Taylor2009-05-312-0/+11
| | | | out --incremental-* options.
* 2009-05-29 Doug Kwan <dougkwan@google.com>Doug Kwan2009-05-302-8/+457
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gold/arm.cc (Output_data_plt_arm): Forward declaration for new template class. (class Target_arm): Update comment. (Target_arm::Target_arm): Initialize new data members GOT_, PLT_, GOT_PLT_, REL_DYN_, COPY_RELOCS_ and DYNBSS_. Declare new methods Target_arm::got_section, Target_arm::make_plt_entry and Target_arm::rel_dyn_section. Declare new_enum Target_arm::Got_type. Declare new data members GOT_, PLT_, GOT_PLT_, REL_DYN_, COPY_RELOCS_ and DYNBSS_. Update commments for member do_dynsym_value. (Target_arm::got_size, Target_arm::plt_section, Target_arm::may_need_copy_reloc and Target_arm::copy_reloc): Define new methods inside class defintion. (Target_arm::got_section): Define new method. (Target_arm::rel_dyn_section): Same. (Output_data_plt_arm): New template class. (Output_data_plt_arm::Output_data_plt_arm): Define constructor. (Output_data_plt_arm:do_adjust_output_section): Define new method. (Output_data_plt_arm::add_entry): Same. (Output_data_plt_arm::first_plt_entry): Define new static data member for PLT instruction template. (Output_data_plt_arm::plt_entry): Same. (Output_data_plt_arm::do_write): Define new method. (Target_arm::make_plt_entry): Same. (Target_arm::do_finalize_sections): Same. (Target_arm::do_dynsym_value): Same.