old-cross-binutils/elfcpp/ChangeLog
Cary Coutant 09ec0418c0 elfcpp/ChangeLog:
* 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.
2010-08-12 22:01:11 +00:00

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.