Commit Graph

1303 Commits

Author SHA1 Message Date
David S. Miller 2a1079e885 gold: Add support for sparc GOTDATA optimizations in Gold.
gold/

	* sparc.cc (Target_sparc::got_address): New function.
	(Sparc_relocate_functions::gdop_hix22): New function.
	(Sparc_relocate_functions::gdop_lox10): New function.
	(Target_sparc::Scan::local): Do not emit a GOT entry for GOTDATA
	relocs.
	(Target_sparc::Scan::local): Likewise if the global symbol is not
	preemptible and is not IFUNC.
	(Target_sparc::Relocate::relocate): Perform GOTDATA code
	transformations for local and non-preemptible non-IFUNC global
	symbols.
2012-04-17 02:29:46 +00:00
David S. Miller 0bc964fc79 gold: Fix 64-bit sparc GOLD crash in gdb-index code.
gold/

	* gdb-index.cc (Gdb_index::do_write): Use Swap_unaligned when
	writing out 64-bit part of ranges.
2012-04-17 02:10:39 +00:00
David S. Miller 661d7a80a2 gold: Build Gold IFUNC tests with -fPIC/-fPIE instead of -fpic/-fpie.
gold/

	* Makefile.am: Build IFUNC tests with -fPIC and -fPIE instead of
	-fpic and -fpie respectively.
	* Makefile.in: Regenerate.
2012-04-17 02:09:42 +00:00
David S. Miller 8c2bf391c4 gold: Add sparc IFUNC support to Gold.
elfcpp/

	* sparc.h (R_SPARC_JMP_IREL): New relocation.

gold/

	* sparc.cc (class Target_sparc): Add rela_ifunc_.
	(Target_sparc::Target_sparc): Initialize new field.
	(Target_sparc::do_plt_section_for_global): New function.
	(Target_sparc::do_plt_section_for_local): New function.
	(Target_sparc::reloc_needs_plt_for_ifunc): New function.
	(Target_sparc::make_plt_section): New function, broken out of
	make_plt_entry.  Use ORDER_NON_RELRO_FIRST for ".plt".
	(Target_sparc::make_plt_entry): Call make_plt_section.
	(Target_sparc::make_local_ifunc_plt_entry): New function.
	(Target_sparc::rela_ifunc_section): New function.
	(Target_sparc::plt_section): Remove const.
	(Output_data_plt_sparc): Update declarations.  Define Global_ifunc
	and Local_ifunc types.  Add global_ifuncs_, local_ifuncs_, ifunc_rel_,
	and ifunc_count_ fields.
	(Output_data_plt_sparc::Output_data_plt_sparc): Initialize new fields.
	(Output_data_plt_sparc::add_entry): Handle IFUNC symbols.
	(Output_data_plt_sparc::add_local_ifunc_entry): New function.
	(Output_data_plt_sparc::rela_ifunc): New function.
	(Output_data_plt_sparc::emit_pending_ifunc_relocs): New function.
	(Output_data_plt_sparc::has_ifunc_section): New function.
	(Output_data_plt_sparc::entry_count): Include ifunc_count_.
	(Output_data_plt_sparc::address_for_global): New function.
	(Output_data_plt_sparc::address_for_local): New function.
	(Output_data_plt_sparc::plt_index_to_offset): New function.
	(Output_data_plt_sparc::set_final_data_size): Use plt_index_to_offset
	and entry_count.
	(Output_data_plt_sparc::do_write): Use first_plt_entry_offset and
	entry_count.
	(Target_sparc::Scan::get_reference_flags): Add R_SPARC_IRELATIVE and
	R_SPARC_JMP_IREL to switch.
	(Target_sparc::Scan::check_non_pic): Likewise.
	(Target_sparc::Scan::local): Handle IFUNC symbols.
	(Target_sparc::Scan::local): Likewise.
	(Target_sparc::Relocate::relocate): Likewise, use plt_address_for_global
	and plt_address_for_local.
	(Target_sparc::do_finalize_sections): Call emit_pending_ifunc_relocs.
	Define __rel_iplt_start and __rel_iplt_end if doing a static link.
2012-04-17 01:57:23 +00:00
David S. Miller 13cf9988bc gold: Allow use_plt_offset to be specified for global relocations.
gold/

	* output.h (Output_reloc): Allow use_plt_offset for global relocs too.
	(class Output_data_reloc): Adjust calls to Output_reloc_type.
	(Output_data_reloc::add_global_relative): (RELA only) Add use_plt_offset.
	* output.cc (Output_reloc::Output_reloc): Add use_plt_offset flag for
	global relocs too.
	(Output_reloc::symbol_value): Respect use_plt_offset_ for global symbols.
	* powerpc.cc (Target_powerpc::Scan::global): Adjust add_global_relative
	calls.
	* sparc.cc (Target_sparc::Scan::global): Likewise.
	* x86_64.cc (Target_x86_64::Scan::global): Likewise.
2012-04-17 01:50:39 +00:00
Cary Coutant 31821be097 * archive.cc (Library_base::should_include_member): Check for
--export-dynamic-symbol.
	* options.h (class General_options): Add --export-dynamic-symbol.
	* symtab.cc (Symbol::should_add_dynsym_entry): Check for
	--export-dynamic-symbol.
	(Symbol_table::gc_mark_undef_symbols): Likewise.
	(Symbol_table::do_add_undefined_symbols_from_command_line): Likewise.
2012-04-17 00:28:41 +00:00
David S. Miller 2615994e91 Support R_SPARC_WDISP10 and R_SPARC_H34.
include/

	* elf/sparc.h (R_SPARC_WDISP10): New reloc.
	* opcode/sparc.h: Define '=' as generating R_SPARC_WDISP10.

opcodes/

	* sparc-dis.c (X_DISP10): Define.
	(print_insn_sparc): Handle '='.

bfd/

	* reloc.c (BFD_RELOC_SPARC_H34, BFD_RELOC_SPARC_SIZE32,
	BFD_RELOC_SPARC_SIZE64, BFD_RELOC_SPARC_WDISP10): New relocs.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Likewise.
	* elfxx-sparc.c (sparc_elf_wdisp10_reloc): New function.
	(_bfd_sparc_elf_howto_table): Add entries for R_SPARC_H34,
	R_SPARC_SIZE32, R_SPARC_64, and R_SPARC_WDISP10.
	(_bfd_sparc_elf_reloc_type_lookup): Handle new relocs.
	(_bfd_sparc_elf_check_relocs): Likewise.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_relocate_section): Likewise.

gas/

	* config/tc-sparc.c (sparc_ip): Handle '=', "%h34", "%l34", and
	BFD_RELOC_SPARC_H34.
	(md_apply_fix): Handle BFD_RELOC_SPARC_WDISP10 and BFD_RELOC_SPARC_H34.
	(tc_gen_reloc): Likewise.

gas/testsuite/

	* gas/sparc/reloc64.s: Add abs34 code model tests.
	* gas/sparc/reloc64.d: Update.

elfcpp/

	* sparc.h (R_SPARC_WDISP10): New relocation.

gold/

	* sparc.cc (Reloc::wdisp10): New relocation method.
	(Reloc::h34): Likewise.
	(Target_sparc::Scan::check_non_pic): Handle R_SPARC_H34.
	(Target_sparc::Scan::get_reference_flags): Handle R_SPARC_H34 and
	R_SPARC_WDISP10.
	(Target_sparc::Scan::local): Likewise.
	(Target_sparc::Scan::global): Likewise.
	(Target_sparc::Relocate::relocate): Likewise.
2012-04-12 16:26:06 +00:00
Cary Coutant 6782735d48 * gdb-index.cc (Gdb_index_info_reader::record_cu_ranges): Allow
low_pc == 0.
2012-04-09 23:32:20 +00:00
Ian Lance Taylor 8c7a0b00aa * timer.cc: #include <unistd.h>. 2012-04-06 17:21:55 +00:00
Roland McGrath 5879767462 binutils/
2012-04-06  Roland McGrath  <mcgrathr@google.com>

	* configure.in (AC_CHECK_HEADERS): Add locale.h.
	* config.in: Regenerate.
	* configure: Regenerate.

gas/
2012-04-06  Roland McGrath  <mcgrathr@google.com>

	* configure.in (AC_CHECK_HEADERS): Add locale.h.
	* config.in: Regenerate.
	* configure: Regenerate.

gold/
2012-04-06  Roland McGrath  <mcgrathr@google.com>

	* configure.in (AC_CHECK_HEADERS): Add locale.h.
	* config.in: Regenerate.
	* configure: Regenerate.

ld/
2012-04-06  Roland McGrath  <mcgrathr@google.com>

	* configure.in (AC_CHECK_HEADERS): Add locale.h.
	* config.in: Regenerate.
	* configure: Regenerate.
2012-04-06 16:49:02 +00:00
Nick Clifton 443507505d * configure.in (AC_CHECK_FUNCS): Add setlocale.
(AM_LC_MESSAGES): Add.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
2012-04-05 08:43:41 +00:00
Cary Coutant c1027032c2 2012-03-21 Cary Coutant <ccoutant@google.com>
* Makefile.am: Add gdb-index.cc, gdb-index.h.
	* Makefile.in: Regenerate.
	* dwarf_reader.cc (Sized_elf_reloc_mapper::do_initialize): New function.
	(Sized_elf_reloc_mapper::symbol_section): New function.
	(Sized_elf_reloc_mapper::do_get_reloc_target): New function.
	(make_elf_reloc_mapper): New function.
	(Dwarf_abbrev_table::clear_abbrev_codes): New function.
	(Dwarf_abbrev_table::do_read_abbrevs): New function.
	(Dwarf_abbrev_table::do_get_abbrev): New function.
	(Dwarf_ranges_table::read_ranges_table): New function.
	(Dwarf_ranges_table::read_range_list): New function.
	(Dwarf_pubnames_table::read_section): New function.
	(Dwarf_pubnames_table::read_header): New function.
	(Dwarf_pubnames_table::next_name): New function.
	(Dwarf_die::Dwarf_die): New function.
	(Dwarf_die::read_attributes): New function.
	(Dwarf_die::skip_attributes): New function.
	(Dwarf_die::set_name): New function.
	(Dwarf_die::set_linkage_name): New function.
	(Dwarf_die::attribute): New function.
	(Dwarf_die::string_attribute): New function.
	(Dwarf_die::int_attribute): New function.
	(Dwarf_die::uint_attribute): New function.
	(Dwarf_die::ref_attribute): New function.
	(Dwarf_die::child_offset): New function.
	(Dwarf_die::sibling_offset): New function.
	(Dwarf_info_reader::check_buffer): New function.
	(Dwarf_info_reader::parse): New function.
	(Dwarf_info_reader::do_parse): New function.
	(Dwarf_info_reader::do_read_string_table): New function.
	(Dwarf_info_reader::lookup_reloc): New function.
	(Dwarf_info_reader::get_string): New function.
	(Dwarf_info_reader::visit_compilation_unit): New function.
	(Dwarf_info_reader::visit_type_unit): New function.
	(Sized_dwarf_line_info::Sized_dwarf_line_info): Use
	Sized_elf_reloc_mapper.
	(Sized_dwarf_line_info::symbol_section): Remove function.
	(Sized_dwarf_line_info::read_relocs): Use Sized_elf_reloc_mapper.
	(Sized_dwarf_line_info::read_line_mappings): Remove object
	parameter, adjust callers.
	(Sized_dwarf_line_info::format_file_lineno): Fix type of cast.
	* dwarf_reader.h: Include <sys/types.h>.
	(class Track_relocs): Remove forward declaration.
	(class Elf_reloc_mapper): New class.
	(class Sized_elf_reloc_mapper): New class.
	(class Dwarf_abbrev_table): New class.
	(class Dwarf_range_list): New class.
	(class Dwarf_ranges_table): New class.
	(class Dwarf_pubnames_table): New class.
	(class Dwarf_die): New class.
	(class Dwarf_info_reader): New class.
	(Sized_dwarf_line_info::read_line_mappings): Remove object parameter.
	(Sized_dwarf_line_info::symbol_section): Remove member function.
	* dynobj.h (Sized_dynobj::do_section_contents): Refactor code from
	base class.
	* gdb-index.cc: New source file.
	* gdb-index.h: New source file.
	* incremental.cc (Sized_relobj_incr::do_layout): Track .debug_info
	and .debug_types sections, call Layout::add_to_gdb_index.
	(Sized_relobj_incr::do_section_name): Implement.
	(Sized_relobj_incr::do_section_contents): Adjust parameter list and
	return type; Implement.
	(Sized_incr_dynobj::do_section_contents): Adjust parameter list and
	return type.
	* incremental.h (Sized_relobj_incr::do_section_contents): Adjust
	parameter list and return type.
	(Sized_incr_dynobj::do_section_contents): Likewise.
	* layout.cc: Include gdb-index.h.
	(Layout::Layout): Initialize gdb_index_data_.
	(Layout::init_fixed_output_section): Check for .gdb_index section.
	(Layout::add_to_gdb_index): New function. Instantiate.
	* layout.h: Add forward declaration for class Gdb_index.
	(Layout::add_to_gdb_index): New member function.
	(Layout::gdb_index_data_): New data member.
	* main.cc: Include gdb-index.h.
	(main): Print statistics for gdb index.
	* object.cc (Object::section_contents): Move code into
	do_section_contents.
	(need_decompressed_section): Check for sections needed when building
	gdb index.
	(build_compressed_section_map): Likewise.
	(Sized_relobj_file::do_read_symbols): Need local symbols when building
	gdb index.
	(Sized_relobj_file::do_layout): Track .debug_info and .debug_types
	sections; call Layout::add_to_gdb_index.
	(Sized_relobj_file::do_decompressed_section_contents): Call
	do_section_contents directly.
	* object.h (Object::do_section_contents): Adjust parameter list and
	return type.
	(Object::do_decompressed_section_contents): Call do_section_contents
	directly.
	(Sized_relobj_file::do_section_contents): Adjust parameter list and
	return type.
	* options.h (class General_options): Add --gdb-index option.
	* plugin.cc (Sized_pluginobj::do_section_contents): Adjust parameter
	list and return type.
	* plugin.h (Sized_pluginobj::do_section_contents): Likewise.
	* reloc.h (Track_relocs::checkpoint): New function.
	(Track_relocs::reset): New function.

	* testsuite/Makefile.am (gdb_index_test_1.sh, gdb_index_test_2.sh):
	New test cases.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/gdb_index_test.cc: New test source file.
	* testsuite/gdb_index_test_1.sh: New test source file.
	* testsuite/gdb_index_test_2.sh: New test source file.
2012-03-21 19:02:22 +00:00
Doug Kwan 647f15745a 2012-03-19 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::do_define_standard_symbols): New method.
 	(Target_arm::do_finalize_sections): Remove code which defines
	__exidx_start and __exidx_end.  Make symbol table parameter
	anonymous as it is not used.
	* gold.cc (queue_middle_tasks): Call target hook to define any
	target-specific symbols.
	* target.h (Target::define_standard_symbols): New method.
	(Target::do_define_standard_symbols): Same.
	* testsuite/Makefile.am (arm_exidx_test): Dump relocations also.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/arm_exidx.s: Generate data relocations for __exidx_start
	and __exidx_end.
	* testsuite/arm_exidx_test.sh: Check that no unused dynamic
	relocations are generated for __exidx_start and __exidx_end.
2012-03-19 23:54:07 +00:00
Doug Kwan 7c6109da4a 2012-03-16 Doug Kwan <dougkwan@google.com>
* testsuite/Makefile.am: Disable test initpri3b.
	* testsuite/Makefile.in: Regenerate.
2012-03-17 01:33:19 +00:00
Doug Kwan 7b8957f8c3 2012-03-15 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::got_section): Make .got section read-only
	if -z now is given.
2012-03-15 18:24:06 +00:00
Ian Lance Taylor 14dc9ef7d1 PR gold/13850
* layout.cc (Layout::make_output_section): Correctly mark
	SHT_INIT_ARRAY, et. al., as relro.
2012-03-15 16:32:22 +00:00
Doug Kwan fa40b62ad4 2012-03-14 Doug Kwan <dougkwan@google.com>
* gold/arm.cc (Target_arm::Scan::global): Generate R_ARM_GLOB_DAT
	dynamic relocations for protected symbols in shared objects.
2012-03-14 23:07:07 +00:00
Ian Lance Taylor fd32500759 * resolve.cc (Symbol_table::resolve): When merging common symbols,
keep the larger alignment.
2012-03-13 16:08:53 +00:00
Cary Coutant e8dd54e14a * dwarf_reader.cc (Sized_dwarf_line_info::process_one_opcode): Fix
handling of DW_LNE_define_file.
2012-03-13 00:25:58 +00:00
Cary Coutant feb5f3b016 elfcpp/
Update DWARF enums from ../include/dwarf2.h.
	* dwarf.h (enum DW_TAG): Add new DWARF-4 tags.
	(enum DW_FORM): Add new DWARF-4 and Fission extensions.
	(enum DW_AT): New enum.
	(enum DW_LINE_EXTENDED_OPS): Add new DWARF-4 opcode.
	(enum DW_ENCODING): Add new DWARF-4 encoding.
	(enum DW_OP): Add new DWARF-4 opcodes.
	(enum DW_CHILDREN): New enum.
	(enum DW_LANG): New enum.

gold/

	* reduced_debug_output.cc
	(Output_reduced_debug_info_section::get_die_end): Add new FORM
	codes to switch.
2012-03-13 00:13:08 +00:00
Cary Coutant a1fb425606 * object.cc (need_decompressed_section): Add #ifdef ENABLE_THREADS. 2012-03-01 07:27:38 +00:00
Cary Coutant 5dd8762ad1 * dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info):
Call Object::decompressed_section_contents.
	* dwarf_reader.h (Sized_dwarf_line_info::~Sized_dwarf_line_info):
	New dtor.
	(Sized_dwarf_line_info::buffer_start_): New data member.
	* merge.cc (Output_merge_data::do_add_input_section): Call
	Object::decompressed_section_contents.
	(Output_merge_string::do_add_input_section): Likewise.
	* object.cc (need_decompressed_section): New function.
	(build_compressed_section_map): Decompress sections needed later.
	(Sized_relobj_file::do_decompressed_section_contents): New function.
	(Sized_relobj_file::do_discard_decompressed_sections): New function.
	* object.h (Object::decompressed_section_contents): New function.
	(Object::discard_decompressed_sections): New function.
	(Object::do_decompressed_section_contents): New function.
	(Object::do_discard_decompressed_sections): New function.
	(Compressed_section_info): New type.
	(Compressed_section_map): Include decompressed section contents.
	(Sized_relobj_file::do_decompressed_section_contents): New function.
	(Sized_relobj_file::do_discard_decompressed_sections): New function.
2012-02-29 21:22:29 +00:00
Cary Coutant 7b5de7eeac * testsuite/Makefile.am (initpri2): Add --ctors-in-init-array option.
* testsuite/Makefile.in: Regenerate.
2012-02-16 19:37:34 +00:00
Cary Coutant f9fa4a6341 * options.cc (General_options::finalize): Disallow -pie and -static. 2012-02-15 00:56:16 +00:00
Doug Kwan 2c175ebc74 2012-02-03 Doug Kwan <dougkwan@google.com>
* arm.cc (Arm_relocate_functions::abs8,
	Arm_relocate_functions::abs16): Use
	Bits::has_signed_unsigned_overflow32.
	(Arm_relocate_functions::thm_abs8): Correct range of
	overflow check.
	* reloc.h (Bits class): Change minimum number of bits from 0 to 1
	in assertions.
2012-02-03 20:01:01 +00:00
Doug Kwan 90cff06f4e 2012-02-02 Doug Kwan <dougkwan@google.com>
* arm.cc (Reloc_stub::stub_type_for_reloc): Use PIC stubs in all
	position independent outputs, not just shared objects.
2012-02-02 20:21:17 +00:00
H.J. Lu 63887f3df5 Check if -fpic -mtls-dialect=gnu2 works
2012-01-30  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac: Check if -fpic -mtls-dialect=gnu2 works.
	* configure: Regenerated.
2012-01-30 21:13:30 +00:00
Ian Lance Taylor bef2b43452 * reloc.h (Bits): New class with static functions, copied from
namespace utils in arm.cc.
	* arm.cc (namespace utils): Remove.  Rewrite all uses to use Bits
	instead.
2012-01-28 01:47:01 +00:00
Ian Lance Taylor 687a9c3959 Update copyright year. 2012-01-28 01:43:58 +00:00
H.J. Lu c335b55d34 Correct incremental relocation offset
2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>

	* incremental.cc (write_info_blocks): Correct relocation offset.
2012-01-28 00:23:31 +00:00
H.J. Lu 41194d9f47 Support x32 GD->IE and GD->LE optimizations
2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>

	* x86_64.cc (Relocate::tls_gd_to_ie): Support x32.
	(Relocate::tls_gd_to_le): Likewise.
2012-01-27 23:29:54 +00:00
H.J. Lu 1bae613c85 Support x32 IFUNC function pointer
2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>

	* x86_64.cc (Scan::global): Support x32 IFUNC function pointer.
2012-01-27 23:26:55 +00:00
H.J. Lu 24482ca057 Check if -mcmodel=medium works
2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac: Check if -mcmodel=medium works.
	* configure: Regenerated.
2012-01-27 23:23:37 +00:00
Cary Coutant c2c7840a42 * int_encoding.cc (read_unsigned_LEB_128): Replaced with inline
definition and ...
	(read_unsigned_LEB_128_x): ... this new function.
	(read_signed_LEB_128): Replaced with inline definition and ...
	(read_signed_LEB_128_x): ... this new function.
	* int_encoding.h  (read_unsigned_LEB_128_x): New function.
	(read_unsigned_LEB_128): Add inline definition.
	(read_signed_LEB_128_x): New function.
	(read_signed_LEB_128): Add inline definition.
	* testsuite/Makefile.am (leb128_unittest): New unit test.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/leb128_unittest.cc: New unit test.
2012-01-25 07:34:55 +00:00
Ian Lance Taylor 833de76013 Use my google.com address. 2012-01-24 06:21:47 +00:00
Ian Lance Taylor 9dee3b3c89 PR gold/13617
* i386.cc (Target_i386::do_code_fill): When using a jmp
	instruction, pad with nop instructions.
	* x86_64.cc (Target_x86_64::do_code_fill): Likewise.
2012-01-24 06:21:11 +00:00
H.J. Lu 618d666674 Add typename on types used in template
2012-01-22  H.J. Lu  <hongjiu.lu@intel.com>

	* x86_64.cc (gc_process_relocs): Add typename on types used in
	template.
	(scan_relocs): Likewise.
	(relocate_section): Likewise.
	(apply_relocation): Likewise.
2012-01-20 00:43:57 +00:00
H.J. Lu 3660ff060a Properly handle R_X86_64_32 for x32
2012-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	* x86_64.cc (Scan::check_non_pic): Allow R_X86_64_32 for x32.
	(Scan::local): Use R_X86_64_RELATIVE relocation for R_X86_64_32
	under x32.
2012-01-10 20:58:36 +00:00
H.J. Lu fc51264f92 Initial x32 support in gold
2012-01-09  H.J. Lu  <hongjiu.lu@intel.com>

	* x86_64.cc: Initial support for x32.
2012-01-09 17:42:34 +00:00
Cary Coutant dd74ae0671 * gold/incremental.cc (Sized_incremental_binary::do_process_got_plt):
Use abstract base class for GOT.
	* gold/output.h (class Output_data_got_base): New abstract base class.
	(class Output_data_got): Derive from new base class, adjust ctors.
	(Output_data_got::reserve_slot): Make virtual; rename to
	do_reserve_slot; Adjust callers.
	* gold/target.h (Sized_target::init_got_plt_for_update): Return
	pointer to abstract base class.
	* gold/x86_64.cc (Target_x86_64::init_got_plt_for_update): Likewise.
2012-01-04 00:18:23 +00:00
Ian Lance Taylor 83896202bf * object.h (Relobj::local_symbol_value): New function.
(Relobj::local_plt_offset): New function.
	(Relobj::local_has_got_offset): New function.
	(Relobj::local_got_offset): New function.
	(Relobj::set_local_got_offset): New function.
	(Relobj::do_local_symbol_value): New pure virtual function.
	(Relobj::do_local_plt_offset): Likewise.
	(Relobj::do_local_has_got_offset): Likewise.
	(Relobj::do_local_got_offset): Likewise.
	(Relobj::do_set_local_got_offset): Likewise.
	(Sized_relobj::do_local_has_got_offset): Rename from
	local_has_got_offset.
	(Sized_relobj::do_local_got_offset): Rename from local_got_offset.
	(Sized_relobj::do_set_local_got_offset): Rename from
	set_local_got_offset.
	(Sized_relobj_file::do_local_plt_offset): Rename from
	local_plt_offset.
	(Sized_relobj_file::do_local_symbol_value): New function.
	* object.cc (Sized_relobj_file::do_local_plt_offset): Rename from
	local_plt_offset.
	* output.cc (Output_data_got::Got_entry::write): Change object to
	Relobj.  Use local_symbol_value.
	(Output_data_got::add_global_with_rel): Change rel_dyn to
	Output_data_reloc_generic*.  Use add_global_generic.
	(Output_data_got::add_global_with_rela): Remove.  Change all
	callers to use add_global_with_rel.
	(Output_data_got::add_global_pair_with_rel): Change rel_dyn to
	Output_data_reloc_generic*.  Use add_global_generic.
	(Output_data_got::add_global_pair_with_rela): Remove.  Change all
	callers to use add_global_pair_with_rel.
	(Output_data_got::add_local): Change object to Relobj*.
	(Output_data_got::add_local_plt): Likewise.
	(Output_data_got::add_local_with_rel): Change object to Relobj*,
	change rel_dyn to Output_data_reloc_generic*.  Use
	add_local_generic.
	(Output_data_got::add_local_with_rela): Remove.  Change all
	callers to use all_local_with_rel.
	(Output_data_got::add_local_pair_with_rel): Change object to
	Relobj*, change rel_dyn to Output_data_reloc_generic*.  Use
	add_output_section_generic.
	(Output_data_got::add_local_pair_with_rela): Remove.  Change all
	callers to use add_local_pair_with_rel.
	(Output_data_got::reserve_local): Change object to Relobj*.
	* output.h: (class Output_data_reloc_generic): Add pure virtual
	declarations for add_global_generic, add_local_generic,
	add_output_section_generic.
	(class Output_data_reloc) [SHT_REL, SHT_RELA]: Implement new
	functions for Output_data_reloc_generic.  Update declarations for
	changes listed in output.cc.
	(class Output_data_got): Change template parameter to got_size.
	Don't define Rel_dyn or Rela_dyn.  Update declarations per above.
	* incremental.h (Sized_relobj_incr::do_local_symbol_value): New
	function.
	(Sized_relobj_incr::do_local_plt_offset): New function.
	* copy-relocs.cc (Copy_relocs::Copy_reloc_entry::emit): Call
	add_global_generic.
2011-12-19 21:07:16 +00:00
Cary Coutant 76677ad051 2011-12-17 Cary Coutant <ccoutant@google.com>
* dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Add casts.
	* resolve.cc (Symbol_table::resolve): Likewise.
	* i386.cc (Target_i386::do_code_fill): Use char constants for nop
	arrays.
	* x86_64.cc (Target_x86_64::do_code_fill): Likewise.
2011-12-17 22:39:52 +00:00
Ian Lance Taylor 8b8dd8d585 * output.h (Output_data_reloc_generic::add): Only call
add_dynamic_reloc if this is a dynamic reloc section.
2011-12-16 23:47:03 +00:00
H.J. Lu d55525b9a9 Replace <64, false> with <size, big_endian>
2011-12-15  H.J. Lu  <hongjiu.lu@intel.com>

	PR gold/13505
	* target-reloc.h (apply_relocation): Replace <64, false> with
	<size, big_endian>.
2011-12-15 23:29:24 +00:00
Nick Clifton ff81c7c165 * po/it.po: New Italian translation. 2011-11-25 09:15:26 +00:00
Sterling Augustine 628f39beca 2011-11-17 Sterling Augustine <saugustine@google.com>
* script.cc (script_include_directive): Implement.
	(read_script_file): New local variables name and search_path. Update
	comment. Call IS_ABSOLUTE_PATH and Dirsearch::find_file_in_dir_list.
	* dirsearch.h (Dirsearch::find_file_in_dir_list): Declare new method.
	* dirsearch.cc (Dirsearch::find_file_in_dir_list): Implement it.
2011-11-17 17:46:54 +00:00
Sterling Augustine 98ef3ea486 2011-11-11 Sterling Augustine <saugustine@google.com>
* yyscript.y (section_cmd): Add support for INCLUDE directive.
	(file_or_sections_cmd): Likewise.
2011-11-11 22:29:43 +00:00
Doug Kwan f4a8b6d7ab 2011-11-11 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::do_make_elf_object): Allow executable also
	if --just-symbols is given.
2011-11-11 21:49:36 +00:00
Doug Kwan 29ab395d2b 2011-11-10 Doug Kwan <dougkwan@google.com>
PR gold/13362
	* arm.cc (Target_arm::Relocate::relocate_tls): Do unaligned accesses
	when processing data relocs.
	* reloc.h (Relocate_functions::rel_unaligned): New method.
	(Relocate_functions::pcrel_unaligned): Ditto.
	(Relocate_functions::rel32_unaligned): Ditto.
	(Relocate_functions::pcrel32_unaligned): Ditto.
2011-11-10 20:53:36 +00:00
Doug Kwan 2c339f710d 2011-11-09 Doug Kwan <dougkwan@google.com>
PR gold/13362
	* arm.cc (Arm_scan_relocatable_relocs::Default_scan_relocatable_relocs):
	Use unaligned 4-byte relocs for static 32-bit data as required by EABI.
	* reloc.h (Relocatable_relocs::Reloc_strategy): New enum
	RELOC_ADJUST_FOR_SECTION_4_UNALIGNED.
	(Relocate_functions::rel_unaligned): New.
	(Relocate_functions::rel32_unaligned): New.
	* target-reloc.h (relocate_for_relocatable): Add code to handle
	RELOC_ADJUST_FOR_SECTION_4_UNALIGNED.
	* testsuite/Makefile.am (arm_unaligned_reloc_r.stdout,
	arm_unaligned_reloc_r): New targets.
	* testsuite/Makefile.in: Regenerate.
	* arm_unaligned_reloc.sh: Check unaligned relocs in relocatable
	linking.
2011-11-10 00:41:53 +00:00