09ec0418c0
* elfcpp.h (enum SHT): Add SHT_GNU_INCREMENTAL_SYMTAB, SHT_GNU_INCREMENTAL_RELOCS. gold/ChangeLog: * archive.cc: Include incremental.h. (Archive::Archive): Initialize incremental_info_. (Archive::include_member): Record archive members in incremental info. (Add_archive_symbols::run): Record begin and end of an archive in incremental info. (Lib_group::include_member): Record objects in incremental info. * archive.h (Incremental_archive_entry): Forward declaration. (Archive::set_incremental_info): New member function. (Archive::incremental_info): New member function. (Archive::Unused_symbol_iterator): New class. (Archive::unused_symbols_begin): New member function. (Archive::unused_symbols_end): New member function. (Archive::incremental_info_): New data member. * incremental-dump.cc (find_input_containing_global): New function. (dump_incremental_inputs): Dump new incremental info sections. * incremental.cc: Include symtab.h. (Output_section_incremental_inputs): New class. (Sized_incremental_binary::do_find_incremental_inputs_sections): Support new incremental info sections. (Sized_incremental_binary::do_check_inputs): Likewise. (Incremental_inputs::report_archive): Remove. (Incremental_inputs::report_archive_begin): New function. (Incremental_inputs::report_archive_end): New function. (Incremental_inputs::report_object): New function. (Incremental_inputs::finalize_inputs): Remove. (Incremental_inputs::report_input_section): New function. (Incremental_inputs::report_script): Rewrite. (Incremental_inputs::finalize): Do nothing but finalize string table. (Incremental_inputs::create_incremental_inputs_section_data): Remove. (Incremental_inputs::sized_create_inputs_section_data): Remove. (Incremental_inputs::create_data_sections): New function. (Incremental_inputs::relocs_entsize): New function. (Output_section_incremental_inputs::set_final_data_size): New function. (Output_section_incremental_inputs::do_write): New function. (Output_section_incremental_inputs::write_header): New function. (Output_section_incremental_inputs::write_input_files): New function. (Output_section_incremental_inputs::write_info_blocks): New function. (Output_section_incremental_inputs::write_symtab): New function. * incremental.h (Incremental_script_entry): Forward declaration. (Incremental_object_entry): Forward declaration. (Incremental_archive_entry): Forward declaration. (Incremental_inputs): Forward declaration. (Incremental_inputs_header_data): Remove. (Incremental_inputs_header): Remove. (Incremental_inputs_header_write): Remove. (Incremental_inputs_entry_data): Remove. (Incremental_inputs_entry): Remove. (Incremental_inputs_entry_write): Remove. (enum Incremental_input_type): Add INCREMENTAL_INPUT_ARCHIVE_MEMBER. (Incremental_binary::find_incremental_inputs_sections): Add parameters. (Incremental_binary::do_find_incremental_inputs_sections): Likewise. (Sized_ncremental_binary::do_find_incremental_inputs_sections): Likewise. (Incremental_input_entry): New class. (Incremental_script_entry): New class. (Incremental_object_entry): New class. (Incremental_archive_entry): New class. (Incremental_inputs::Incremental_inputs): Initialize new data members. (Incremental_inputs::report_inputs): Remove. (Incremental_inputs::report_archive): Remove. (Incremental_inputs::report_archive_begin): New function. (Incremental_inputs::report_archive_end): New function. (Incremental_inputs::report_object): Change prototype. (Incremental_inputs::report_input_section): New function. (Incremental_inputs::report_script): Change prototype. (Incremental_inputs::get_reloc_count): New function. (Incremental_inputs::set_reloc_count): New function. (Incremental_inputs::create_data_sections): New function. (Incremental_inputs::create_incremental_inputs_section_data): Remove. (Incremental_inputs::inputs_section): New function. (Incremental_inputs::symtab_section): New function. (Incremental_inputs::relocs_section): New function. (Incremental_inputs::get_stringpool): Add const. (Incremental_inputs::command_line): Add const. (Incremental_inputs::inputs): Remove. (Incremental_inputs::command_line_key): New function. (Incremental_inputs::input_file_count): New function. (Incremental_inputs::input_files): New function. (Incremental_inputs::relocs_entsize): New function. (Incremental_inputs::sized_create_inputs_section_data): Remove. (Incremental_inputs::finalize_inputs): Remove. (Incremental_inputs::Input_info): Remove. (Incremental_inputs::lock_): Remove. (Incremental_inputs::inputs_): Change type. (Incremental_inputs::inputs_map_): Remove. (Incremental_inputs::current_object_entry_): New data member. (Incremental_inputs::inputs_section_): New data member. (Incremental_inputs::symtab_section_): New data member. (Incremental_inputs::relocs_section_): New data member. (Incremental_inputs::reloc_count_): New data member. (Incremental_inputs_reader): New class. (Incremental_symtab_reader): New class. (Incremental_relocs_reader): New class. * layout.cc (Layout::finalize): Move finalization of incremental info and creation of incremental info sections to follow finalization of symbol table. Set offsets for postprocessing sections. (Layout::create_incremental_info_sections): Call Incremental_inputs::create_data_sections. Add incremental symtab and relocs sections. Set sh_entsize and sh_link fields. Arrange for sections to layout after input sections. * layout.h (struct Timespec): Forward declaration. (Layout::incremental_inputs): Add const. (Layout::create_incremental_info_sections): Add parameter. * main.cc (main): Remove call to Incremental_inputs::report_inputs. * object.cc: Include incremental.h. (Relobj::finalize_incremental_relocs): New function. (Sized_relobj::do_layout): Record input sections in incremental info. * object.h (Object::output_section): New function. (Object::output_section_offset): Moved from Relobj. (Object::get_incremental_reloc_base): New function. (Object::get_incremental_reloc_count): New function. (Object::do_output_section): New function. (Object::do_output_section_offset): Moved from Relobj. (Object::do_get_incremental_reloc_base): New function. (Object::do_get_incremental_reloc_count): New function. (Object::Object): Initialize new data members. (Relobj::output_section): Renamed do_output_section and moved to protected. (Relobj::output_section_offset): Moved to Object. (Relobj::do_get_incremental_reloc_base): New function. (Relobj::do_get_incremental_reloc_count): New function. (Relobj::allocate_incremental_reloc_counts): New function. (Relobj::count_incremental_reloc): New function. (Relobj::finalize_incremental_relocs): New function. (Relobj::next_incremental_reloc_index): New function. (Relobj::reloc_counts_): New data member. (Relobj::reloc_bases_): New data member. (Sized_relobj::do_relocate_sections): Add parameter. Change caller. (Sized_relobj::relocate_sections): Add parameter. Change all callers. (Sized_relobj::incremental_relocs_scan): New function. (Sized_relobj::incremental_relocs_scan_reltype): New function. (Sized_relobj::incremental_relocs_write): New function. (Sized_relobj::incremental_relocs_write_reltype): New function. * plugin.cc (Plugin_manager::add_input_file): Rewrite test for incremental link. * readsyms.cc (Read_symbols::do_read_symbols): Move reporting of archives and object files elsewhere. (Add_symbols::run): Report object files here. (Finish_group::run): Report end of archive at end of group. * reloc.cc: Include layout.h, incremental.h. (Sized_relobj::do_read_relocs): Need relocations for incremental link. (Sized_relobj::do_scan_relocs): Record relocations for incremental link. (Sized_relobj::incremental_relocs_scan): New function. (Sized_relobj::incremental_relocs_scan_reltype): New function. (Sized_relobj::do_relocate_sections): Write incremental relocations. (Sized_relobj::incremental_relocs_write): New function. (Sized_relobj::incremental_relocs_write_reltype): New function. * script.cc (read_input_script): Rewrite test for incremental link. Change call to Incremental_inputs::report_script. * symtab.h (Symbol_table::first_global_index): New function. (Symbol_table::output_count): New function.
189 lines
5.7 KiB
Text
189 lines
5.7 KiB
Text
2010-08-12 Cary Coutant <ccoutant@google.com>
|
|
|
|
* elfcpp.h (enum SHT): Add SHT_GNU_INCREMENTAL_SYMTAB,
|
|
SHT_GNU_INCREMENTAL_RELOCS.
|
|
|
|
2010-08-04 Ian Lance Taylor <iant@google.com>
|
|
|
|
* i386.h (R_386_IRELATIVE): Define.
|
|
* powerpc.h (R_POWERPC_IRELATIVE): Define.
|
|
(R_PPC_RELAX32, R_PPC_RELAX32PC): Don't define.
|
|
(R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Don't define.
|
|
* sparc.h (R_SPARC_IRELATIVE): Define.
|
|
* x86_64.h (R_X86_64_IRELATIVE): Define.
|
|
(R_X86_64_GNU_VTINHERIT): Rename from R_386_GNU_VTINHERIT.
|
|
(R_X86_64_GNU_VTENTRY): Rename from R_386_GNU_VTENTRY.
|
|
|
|
2010-05-12 Doug Kwan <dougkwan@google.com>
|
|
|
|
* arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved,
|
|
Tag_FP_HP_extension, Tag_MPextension_use_legacy): Rename from
|
|
existing tags.
|
|
(Tag_undefined40, Tag_undefined41, Tag_MPextension_use,
|
|
Tag_undefined43): New tags.
|
|
(Targ_VFP_arch, Tag_ABI_align8_needed, TAG_ABI_align8_preserved,
|
|
Tag_VFP_HP_extension): Define aliases for backward compatiblity.
|
|
|
|
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
* elfcpp.h (VER_FLG_INFO): Define.
|
|
|
|
2010-01-21 Doug Kwan <dougkwan@google.com>
|
|
|
|
* arm.h (EXIDX_CANTUNWIND): New enum.
|
|
|
|
2010-01-19 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp.h (PN_XNUM): Define.
|
|
|
|
2009-12-14 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp_file.h: Revert last patch.
|
|
|
|
2009-12-11 Nick Clifton <nickc@redhat.com>
|
|
|
|
* elfcpp_file.h: Fix shadowed variable warnings.
|
|
|
|
2009-12-10 Doug Kwan <dougkwan@google.com>
|
|
|
|
* arm.h: New enums for EABI object attribute tags and values.
|
|
|
|
2009-12-05 Doug Kwan <dougkwan@google.com>
|
|
|
|
* arm.h: Define enums for Tag_CPU_arch EABI attribute.
|
|
|
|
2009-11-24 Rafael Avila de Espindola <espindola@google.com>
|
|
|
|
* elfcpp_file.h: Include elfcpp.h.
|
|
|
|
2009-11-03 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp.h: Remove trailing commas from enum definitions.
|
|
|
|
2009-10-30 Doug Kwan <dougkwan@google.com>
|
|
|
|
* 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.
|
|
|
|
2009-10-16 Doug Kwan <dougkwan@google.com>
|
|
|
|
* elfcpp/elfcpp.h (DT_PREINIT_ARRAY): Correct enum value.
|
|
|
|
2009-10-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
|
|
|
* elfcpp/elfcpp_file.h (Elf_file::section_name): Change shstr_size
|
|
to Elf_WXword.
|
|
|
|
2009-10-09 Mikolaj Zalewski <mikolajz@google.com>
|
|
|
|
* elf_file.h: (class Elf_strtab): New class.
|
|
|
|
2009-10-09 Mikolaj Zalewski <mikolajz@google.com>
|
|
|
|
* elfcpp_file.h: Fix header guard. Include <cstdio>.
|
|
(class Elf_recognizer): New class, code from gold/object.cc.
|
|
(Elf_file::find_section_by_type): New method.
|
|
|
|
2009-07-23 Ulrich Drepper <drepper@redhat.com>
|
|
|
|
* elfcpp.h (enum STB): Add STB_GNU_UNIQUE.
|
|
|
|
2009-06-21 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp.h (SHN_X86_64_LCOMMON): Define enum constant.
|
|
(enum SHT): Add SHT_X86_64_UNWIND.
|
|
(enum SHF): Add SHT_X86_64_LARGE.
|
|
|
|
2009-05-27 Doug Kwan <dougkwan@google.com>
|
|
|
|
* arm.h: New file.
|
|
* elfcpp.h (enum SHT): Add ARM-specific special sections.
|
|
(enum PT): Add ARM-specific section types.
|
|
(enum SST): Add STT_ARM_TFUNC.
|
|
|
|
2009-04-30 Nick Clifton <nickc@redhat.com>
|
|
|
|
* elfcpp.h (enum STT): Add STT_GNU_IFUNC.
|
|
|
|
2009-03-20 Mikolaj Zalewski <mikolajz@google.com>
|
|
|
|
* elfcpp.h (SHT_GNU_INCREMENTAL_INPUTS): Define.
|
|
|
|
2009-03-01 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp_swap.h: #include "config.h". Only #include <byteswap.h>
|
|
if HAVE_BYTESWAP_H is defined; if not, provide definitions for
|
|
bswap_{16,32,64}. For gcc 4.3 and later, use the builtin bswap
|
|
functions. Check WORDS_BIGENDIAN rather than __BYTE_ORDER.
|
|
|
|
2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
* elfcpp.h (enum STT): Remove STT_IFUNC.
|
|
|
|
2008-12-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
* elfcpp.h (enum STT): Add STT_IFUNC.
|
|
|
|
2008-06-12 David S. Miller <davem@davemloft.net>
|
|
|
|
* powerpc.h: New file.
|
|
* elfcpp.h (SHT_ORDERED): New enum constant.
|
|
(DT_PPC_GOT, DT_PPC64_GLINK, DT_PPC64_OPD, DT_PPC64_OPDSZ): Same.
|
|
|
|
2008-05-28 Caleb Howe <cshowe@google.com>
|
|
|
|
* dwarf.h (enum DW_FORM): Define.
|
|
|
|
2008-04-19 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp_file.h (class Elf_file): Add large_shndx_offset_ field.
|
|
(Elf_file::large_shndx_offset): New function.
|
|
(Elf_file::construct): Initialize large_shndx_offset_.
|
|
(Elf_File::initialize_shnum): If necessary, adjust shstrndx_ and
|
|
set large_shndx_offset_.
|
|
|
|
2008-04-16 David S. Miller <davem@davemloft.net>
|
|
|
|
* elfcpp.h (DF_1_NOW, DF_1_GLOBAL, DF_1_GROUP,
|
|
DF_1_NODELETE, DF_1_LOADFLTR, DF_1_INITFIRST,
|
|
DF_1_NOOPEN, DF_1_ORIGIN, DF_1_DIRECT, DF_1_TRANS,
|
|
DF_1_INTERPOSE, DF_1_NODEFLIB, DF_1_NODUMP,
|
|
DF_1_CONLFAT): New enum constants.
|
|
|
|
2008-04-15 David S. Miller <davem@davemloft.net>
|
|
|
|
* sparc.h (EF_SPARC_EXT_MASK, EF_SPARC_32PLUS_MASK,
|
|
EF_SPARC_32PLUS, EF_SPARC_SUN_US1, EF_SPARC_HAL_R1,
|
|
EF_SPARC_SUN_US3, EF_SPARC_LEDATA, EF_SPARCV9_MM,
|
|
EF_SPARCV9_TSO, EF_SPARCV9_PSO, EF_SPARCV9_RMO):
|
|
Define as enum constants.
|
|
|
|
2008-04-11 David S. Miller <davem@davemloft.net>
|
|
|
|
* sparc.h: New file
|
|
* elfcpp.h (SHN_BEFORE, SHN_AFTER): New enum constants.
|
|
(SHT_SPARC_GOTDATA, SHF_ORDERED, SHF_EXCLUDE,
|
|
STT_SPARC_REGISTER, DT_SPARC_REGISTER): Likewise.
|
|
|
|
2008-04-03 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp_swap.h (Swap_unaligned<64, true>::writeval): Correct
|
|
byte order.
|
|
|
|
2008-03-24 Ian Lance Taylor <iant@google.com>
|
|
|
|
* elfcpp.h (NT_VERSION, NT_ARCH): Define as enum constants.
|
|
(NT_GNU_ABI_TAG, NT_GNU_HWCAP): Likewise.
|
|
(NT_GNU_BUILD_ID, NT_GNU_GOLD_VERSION): Likewise.
|
|
(ELF_NOTE_OS_LINUX, ELF_NOTE_OS_GNU): Likewise.
|
|
(ELF_NOTE_OS_SOLARIS2, ELF_NOTE_OS_NETBSD): Likewise.
|
|
(ELF_NOTE_OS_SYLLABLE): Likewise.
|
|
|
|
2008-03-21 Ian Lance Taylor <iant@google.com>
|
|
|
|
* Added source code to GNU binutils.
|
|
|