Age | Commit message (Collapse) | Author | Files | Lines |
|
* Makefile.am (CCFILES): Add attributes.cc and int_encoding.cc.
(HFILES): Add attributes.h and int_encoding.h.
* Makefile.in: Regenerate.
* dwarf_reader.cc (read_unsigned_LEB_128, read_signed_LEB_128): Move
function definitions to int_encoding.cc
* dwarf_reader.h (read_unsigned_LEB_128, read_signed_LEB_128): Move
prototypes to int_encoding.h
* reduced_debug_output.cc (int_encoding.h): New include.
(write_unsigned_LEB_128, get_length_as_unsigned_LEB_128): Move
function definitions to int_encoding.cc
(insert_into_vector, read_from_pointer): Move template definitions to
int_encoding.h
* attributes.cc: New file.
* attributes.h: New file.
* int_encoding.cc: New file.
* int_encoding.h: New file.
|
|
PR gold/11055
* incremental-dump.cc (dump_incremental_inputs): New.
(main): Use dump_incremental_inputs.
|
|
PR gold/10893
* i386.cc (Target_i386::Scan::globa): Use is_func instead of
checking elfcpp::STT_FUNC.
(Target_i386::Relocate::relocate): Likewise.
* x86_64.cc (Target_x86_64::Scan::global): Likewise.
* symtab.cc (Symbol_table::sized_write_symbol): Turn IFUNC
symbols from shared libraries into normal FUNC symbols.
* symtab.h (Symbol): Add is_func and use it.
|
|
elfcpp/ChangeLog:
* arm.h: Define enums for Tag_CPU_arch EABI attribute.
gold/ChangeLog:
* arm.cc (Target_arm::arm_info): Initialize new fields
attributes_section and attributes_vendor.
* i386.cc (Target_i386::i386_info): Same.
* object.cc (Sized_relobj::do_layout): Skip attribute section.
* gold/powerpc.cc (Target_powerpc::powerpc_info): Initialize new
fields attributes_section and attributes_vendor.
* sparc.cc (Target_sparc::sparc_info): Same.
* target.h (Target::attributes_section, Target::attributes_vendor,
Target::is_attributes_section, Target::attribute_arg_type,
Target::attributes_order): New method definitions.
(Target::Target_info::attributes_section,
Target::Target_info::attributes_vendor): New fields.
(Target::do_attribute_arg_type, Target::do_attributes_order): New
virtual method definitions.
* x86_64.cc (Target_x86_64::x86_64_info): Initialize new fields
attributes_section and attributes_vendor.
* testsuite/testfile.cc (Target_test::test_target_info): Same.
|
|
* arm.cc: Update comments about interworking and stub generation.
(Target_arm::Relocate::reloc_is_non_pic): Update list of relocations
considered as non-PIC.
(Arm_relocate_functions::base_abs): Fix formatting.
(Arm_relocate_functions::got_prel): Fix comment. Change interface
of function to use GOT entry address instead of offset.
(Target_arm::Scan::global): Issue an error if a symbol would need a
PLT does not get one because it is untyped. Remove code to create
dynamic symbols for relative branches.
(Target_arm::Relocate::relocate: Use 0 instead of false since function
takes unsigned integer instead of boolean.
|
|
* testsuite/Makefile.am (constructor_test_LDADD): New. Empty.
(two_file_test_LDADD): Likewise.
(common_test_1_LDADD): Likewise.
(exception_test_LDADD) Likewise.
(weak_test_LDADD): Likewise.
(many_sections_test_LDADD): Likewise.
(initpri1_LDADD): Likewise.
(script_test_1_LDADD): Likewise.
(script_test_2_LDADD): Likewise.
(justsyms_LDADD): Likewise.
(binary_test_LDADD): Likewise.
(large_LDADD): Likewise.
* testsuite/Makefile.in: Regenerated.
|
|
* resolve.cc (symbol_to_bits): Treat STB_GNU_UNIQUE as STB_GLOBAL.
(Symbol_table::override_with_special): Likewise.
(Symbol_table::add_from_object): Likewise.
|
|
* incremental.cc (Incremental_inputs::sized_create_inputs_section_data):
Don't set the data_offset twice.
|
|
|
|
* arm.cc: Remove comment about missing .ARM.exidx section symbols.
(Target_arm::do_finalize_sections): Add parameter for symbol table
pointer. Add __exidx_start and __exidx_end symbols as appropriate.
* i386.cc (Target_i386::do_finalize_sections): Add an additional
parameter for symbol table pointer.
* layout.cc (Layout::finalize): Call Target::finalize_sections with
an additional parameter for a pointer to symbol table.
* powerpc.cc (Target_powerpc::do_finalize_sections): Add an additional
parameter for a symbol table pointer.
* sparc.cc (Target_sparc::do_finalize_sections): Ditto.
* target.h (Target::finalize_sections, Target::do_finalize_sections):
Ditto.
* x86_64.cc (Target_x86_64::do_finalize_sections): Add an additional
parameter for a symbol table pointer.
|
|
* incremental.cc (Incremental_inputs_header)
(Incremental_inputs_header_write, Incremental_inputs_entry)
(Incremental_inputs_entry_write): Move ...
* incremental.h (Incremental_inputs_header)
(Incremental_inputs_header_write, Incremental_inputs_entry)
(Incremental_inputs_entry_write): here.
|
|
* incremental.cc (make_sized_incremental_binary): Set the target.
Error if it is incompatible.
* output.h (Output_file): Add filename method.
|
|
* incremental.cc (Incremental_inputs_entry): Remove unused argument
from the get_* methods.
|
|
* incremental-dump.cc (main): Check that the offeset of a script is 0.
* incremental.cc (Incremental_inputs::sized_create_inputs_section_data):
Write 0 for the data_offset of scripts.
|
|
* testsuite/Makefile.am: Add the incremental_test.sh test.
* testsuite/incremental_test.sh: New.
* testsuite/incremental_test_1.c: New.
* testsuite/incremental_test_2.c: New.
|
|
* incremental-dump.cc (main): Fix typos.
|
|
PR gold/11025
* incremental-dump.cc (main): Use llu to print 64 bit values.
|
|
2009-11-26 Per Øyvind Karlsen <peroyvind@mandriva.org>
H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (incremental_dump_DEPENDENCIES): Add $(THREADSLIB)
$(LIBDL).
(incremental_dump_LDADD): Likewise.
* Makefile.in: Regenerated.
|
|
Revert:
2009-11-25 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::Target_arm): Move method definition
outside of class definition. Add code to handle
--target1-rel, --target1-abs and --target2= options.
(Target_arm::get_reloc_reloc_type): Change method to be
non-static and const.
(Target_arm::target1_is_rel_, Target_arm::target2_reloc_):
New data member declaration.
(Target_arm::Scan::local, Target_arm::Scan::global,
Target_arm::Relocate::relocate,
Target_arm::Relocatable_size_for_reloc::get_size_for_reloc):
Adjust call to Target_arm::get_real_reloc_type.
(Target_arm::get_real_reloc_type): Use command line options
to determine real types of R_ARM_TARGET1 and R_ARM_TARGET2.
* options.h (--target1-rel, --target1-abs, --target2): New
ARM-only options.
|
|
* arm.cc (Target_arm::Target_arm): Move method definition outside of
class definition. Add code to handle --target1-rel, --target1-abs
and --target2= options.
(Target_arm::get_reloc_reloc_type): Change method to be non-static
and const.
(Target_arm::target1_is_rel_, Target_arm::target2_reloc_): New data
member declaration.
(Target_arm::Scan::local, Target_arm::Scan::global,
Target_arm::Relocate::relocate,
Target_arm::Relocatable_size_for_reloc::get_size_for_reloc): Adjust
call to Target_arm::get_real_reloc_type.
(Target_arm::get_real_reloc_type): Use command line options to
determine real types of R_ARM_TARGET1 and R_ARM_TARGET2.
* options.h (--target1-rel, --target1-abs, --target2): New ARM-only
options.
|
|
* arm.cc (Target_arm::Target_arm): Move method definition outside of
class definition. Add code to handle --target1-rel, --target1-abs
and --target2= options.
(Target_arm::get_reloc_reloc_type): Change method to be non-static
and const.
(Target_arm::target1_is_rel_, Target_arm::target2_reloc_): New data
member declaration.
(Target_arm::Scan::local, Target_arm::Scan::global,
Target_arm::Relocate::relocate,
Target_arm::Relocatable_size_for_reloc::get_size_for_reloc): Adjust
call to Target_arm::get_real_reloc_type.
(Target_arm::get_real_reloc_type): Use command line options to
determine real types of R_ARM_TARGET1 and R_ARM_TARGET2.
* options.h (--target1-rel, --target1-abs, --target2): New ARM-only
options.
|
|
* Makefile.am: Build incremental-dump
* Makefile.in: Regenerate.
* incremental-dump.cc: New.
* incremental.cc (Incremental_inputs_header_data,
Incremental_inputs_entry_data): Move to incremental.h
* incremental.h: (Incremental_inputs_header_data,
Incremental_inputs_entry_data): Move from incremental.cc
2009-11-24 Rafael Avila de Espindola <espindola@google.com>
* elfcpp_file.h: Include elfcpp.h.
|
|
* incremental.cc (Incremental_inputs_header,
Incremental_inputs_header_write, Incremental_inputs_entry,
Incremental_inputs_entry_write): Add a typedef with the data type.
|
|
* incremental.cc (Incremental_inputs_header,
Incremental_inputs_header_write, Incremental_inputs_entry,
Incremental_inputs_entry_write): Update comment about which
type has the filed descriptions.
|
|
* arm.cc (Target_arm::may_use_arm_nop): New method definition.
(Arm_relocate_functions::arm_branch_common): Change method defintion
in class definition to a method declaration and update list of formal
parameters.
(Arm_relocate_functions::plt32, Arm_relocate_functions::call,
Arm_relocation_functions::jump24): Adjust call to
Arm_relocate_functions::arm_branch_common. Update list of formal
parameters.
(Arm_relocate_functions::xpc25): New method definition.
(Arm_relocate_functions::arm_branch_common): Move method defintion
out from class definition. Use stubs for mode-switching and extending
branch ranges.
(Target_arm::Relocate::relocate): Handle weakly-undefined symbols
specially. Change code to enable use of stubs in ARM branches.
|
|
* 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.
|
|
* 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".
|
|
* 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.
|
|
* reloc.cc: Instantiate
Sized_relobj::initialize_input_to_output_maps and
Sized_relobj:free_input_to_output_maps.
|
|
* defstd.cc (in_segment): Set only_if_ref true for "end".
|
|
* 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.
|
|
* fileread.cc (File_read::get_mtime): Use st_mtim if available.
* config.in: Regenerate.
* configure: Regenerate.
|
|
|
|
* output.cc (Output_segment::add_output_section): Add missing
return statement.
|
|
* 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.
|
|
* 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.
|
|
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.
|
|
* 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.
|
|
* 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.
|
|
|
|
* defstd.cc (in_section): Add entries for __rel_iplt_start,
__rel_iplt_end, __rela_iplt_start, __rela_iplt_end, and __stack.
|
|
* 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.
|
|
* po/Make-in (.po.gmo): Don't generate .gmo files in source
tree.
|
|
* arm.cc (Stub_addend_reader): Fix bug in previouls check-in.
|
|
* arm.cc (Stub_addend_reader): New struct template definition
and partial specializations.
(Stub_addend_reader::operator()): New method definition for a
partially specialized template.
|
|
elfcpp/ChangeLog:
* arm.h (EF_ARM_BE8, EF_ARM_EABIMASK, EF_ARM_EABI_UNKNOWN,
EF_ARM_EABI_VER1, EF_ARM_EABI_VER2, EF_ARM_EABI_VER3,
EF_ARM_EABI_VER4, EF_ARM_EABI_VER5): New enums for processor-specific
flags.
(arm_eabi_version): New inline function.
* elfcpp.h: Add a comment about DT_ENCODING.
gold/ChangeLog:
* 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.
|
|
* arm.cc: Use Arm_address instead of elfcpp::Elf_types<32>::Elf_Addr.
|
|
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.
|
|
* 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.
|