2015-04-08  H.J. Lu  <hongjiu.lu@intel.com>

	* elfcpp.h (Elf_sizes): Add chdr_size.
	(Chdr): New.
	(Chdr_write): Likewise.
	* elfcpp_internal.h (Chdr_data): Likewise.

2015-04-08  H.J. Lu  <hongjiu.lu@intel.com>

	* elfcpp.h (SHF): Add SHF_COMPRESSED.
	(ELFCOMPRESS_ZLIB): New.
	(ELFCOMPRESS_LOOS): Likewise.
	(ELFCOMPRESS_HIOS): Likewise.
	(ELFCOMPRESS_LOPROC): Likewise.
	(ELFCOMPRESS_HIPROC): Likewise.

2015-04-07  HC Yen <hc.yen@mediatek.com>

	* arm.h: Add TAG_CPU_ARCH_V8 in Tag_CPU_arch EABI attribute.

2015-02-09  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h (enum DW_LANG): Add DW_LANG_C_plus_plus_11,
	DW_LANG_C11, DW_LANG_C_plus_plus_14, DW_LANG_Fortran03 and
	DW_LANG_Fortran08 from ../include/dwarf2.h.

2015-01-22  Han Shen  <shenhan@google.com>

	* arm.h (R_ARM_IRELATIVE): New dynamic relocation.

2015-01-01  Alan Modra  <amodra@gmail.com>

	Update year range in copyright notice of all files.

2014-12-25  Alan Modra  <amodra@gmail.com>

	* arm.h: Add enums for Tag_ABI_FP_number_model and Tag_ABI_VFP_args.

2014-09-17  Han Shen  <shenhan@google.com>

	* aarch64.h (R_AARCH64_TLS_DTPREL64): Switch enum value with ...
	(R_AARCH64_TLS_DTPMOD64): ... enum value.

2014-09-15  Andrew Bennett  <andrew.bennett@imgtec.com>
	    Matthew Fortune  <matthew.fortune@imgtec.com>

	* mips.h (E_MIPS_ARCH_32R6, E_MIPS_ARCH_64R6): New enum constants.

2014-09-02  Cary Coutant  <ccoutant@google.com>

	* elfcpp_file.h (Elf_file::shnum): New const function.
	(Elf_file::shstrndx): New const function.
	(Elf_file::large_shndx_offset): New const function.
	(Elf_file::section_name): Add const attribute.
	(Elf_file::section_header_offset): Likewise.

2014-08-08  Han Shen  <shenhan@google.com>

	* aarch64.h (withdrawn): Replaced with R_AARCH64_withdrawn.

2014-07-29  Matthew Fortune  <matthew.fortune@imgtec.com>

	* elfcpp.h (PT_MIPS_ABIFLAGS): New program header type.

2014-07-02  Jing Yu  <jingyu@google.com>

	* aarch64.h: New file. New enums for aarch64-elf64 relocations.
	* elfcpp.h (EM_AARCH64, SHT_AARCH64_ATTRIBUTES, PT_AARCH64_ARCHEXT,
	PT_AARCH64_UNWIND): New enum constant.

2014-04-22  Christian Svensson  <blue@cmd.nu>

	* elfcpp.h: Remove openrisc and or32 support.

2014-04-15  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>

	* mips.h (R _MIPS16_TLS_GD, R_MIPS16_TLS_LDM, R_MIPS16_TLS_DTPREL_HI16,
	R_MIPS16_TLS_DTPREL_LO16, R_MIPS16_TLS_GOTTPREL,
	R_MIPS16_TLS_TPREL_HI16, R_MIPS16_TLS_TPREL_LO16, R_MICROMIPS_26_S1,
	R_MICROMIPS_HI16, R_MICROMIPS_LO16, R_MICROMIPS_GPREL16,
	R_MICROMIPS_LITERAL, R_MICROMIPS_GOT16, R_MICROMIPS_PC7_S1,
	R_MICROMIPS_PC10_S1, R_MICROMIPS_PC16_S1, R_MICROMIPS_CALL16,
	R_MICROMIPS_GOT_DISP, R_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_OFST,
	R_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_LO16, R_MICROMIPS_SUB,
	R_MICROMIPS_HIGHER, R_MICROMIPS_HIGHEST, R_MICROMIPS_CALL_HI16,
	R_MICROMIPS_CALL_LO16, R_MICROMIPS_SCN_DISP, R_MICROMIPS_JALR,
	R_MICROMIPS_HI0_LO16, R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM,
	R_MICROMIPS_TLS_DTPREL_HI16, R_MICROMIPS_TLS_DTPREL_LO16,
	R_MICROMIPS_TLS_GOTTPREL, R_MICROMIPS_TLS_TPREL_HI16,
	R_MICROMIPS_TLS_TPREL_LO16, R_MICROMIPS_GPREL7_S2,
	R_MICROMIPS_PC23_S20, R_MIPS_EH): New enums for relocations (mips16 and
	micromips).
	(STO_MIPS_FLAGS): New enum constant.
	(elf_st_is_mips16): New function.
	(elf_st_is_micromips): New function.
	(is_micromips): New function.
	(abi_n32): New function.
	(abi_n64): New function.
	(ODK_NULL, ODK_REGINFO, ODK_EXCEPTIONS, ODK_PAD, ODK_HWPATCH, ODK_FILL,
	ODK_TAGS, ODK_HWAND, ODK_HWOR, ODK_GP_GROUP, ODK_IDENT): New enum
	constants.
	* elfcpp.h (SHT_MIPS_OPTIONS): New enum constant.

2014-03-05  Alan Modra  <amodra@gmail.com>

	Update copyright years.

2014-03-05  Alan Modra  <amodra@gmail.com>

	* powerpc.h (R_PPC64_REL24_NOTOC, R_PPC64_ADDR64_LOCAL): Define.

2014-02-06  Andrew Pinski  <apinski@cavium.com>

	* mips.h (E_MIPS_MACH_OCTEON3): New enum constant.

2013-11-17  H.J. Lu  <hongjiu.lu@intel.com>

	* x86_64.h (R_X86_64_PC32_BND): New.
	(R_X86_64_PLT32_BND): Likewise.

2013-10-30  Alan Modra  <amodra@gmail.com>

	* powerpc.h (EF_PPC64_ABI): New enum constant.
	(STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Likewise.
	(ppc64_decode_local_entry): New function.
	(ppc64_encode_local_entry): Likewise.

2013-10-30  Alan Modra  <amodra@gmail.com>

	* powerpc.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA,
	R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA,
	R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): Define.

2013-03-01  Cary Coutant  <ccoutant@google.com>

	* dwarf.h (enum DW_LANG): Adjust spacing for consistency.
	(enum DW_SECT): New enum type.

2012-12-17  Nick Clifton  <nickc@redhat.com>

	* README: Add copyright notice.

2012-10-30  Steve McIntyre  <steve.mcintyre@linaro.org>

	* arm.h: New enum for EABI soft- and hard-float flags.

2012-09-15  Jiong Wang  <jiwang@tilera.com>

	* tilegx.h: New file.
	* elfcpp.h: add EM_TILEGX.

2012-08-14  Alan Modra  <amodra@gmail.com>

	* powerpc.h: Add more relocs.
	(R_PPC_REL16*): Rename to R_POWERPC_REL16*.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR gold/14091
	* x86_64.h (R_X86_64_RELATIVE64): New.

2012-05-01  Cary Coutant  <ccoutant@google.com>

	* dwarf.h (enum DW_TAG, enum DW_FORM, enum DW_AT, enum DW_ENCODING)
	(enum DW_OP, enum DW_CFA): Remove.
	Include dwarf2.def.

2012-04-23  Cary Coutant  <ccoutant@google.com>

	* elfcpp_swap.h (struct Swap_aligned32): New template.

2012-04-16  David S. Miller  <davem@davemloft.net>

	* sparc.h (R_SPARC_JMP_IREL): New relocation.

2012-04-12  David S. Miller  <davem@davemloft.net>

	* sparc.h (R_SPARC_WDISP10): New relocation.

2012-03-12  Cary Coutant  <ccoutant@google.com>

	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.

2012-01-27  Aleksandar Simeonov  <asimeonov@mips.com>

	* mips.h: New file
	* elfcpp.h (SHT_MIPS_REGINFO): New enums for processor-specific flags.
	(SHF_MIPS_GPREL): Likewise.
	(PT_MIPS_REGINFO, PT_MIPS_RTPROC, PT_MIPS_OPTIONS): Likewise.
	(DT_MIPS_RLD_VERSION, DT_MIPS_TIME_STAMP, DT_MIPS_ICHECKSUM,
	 DT_MIPS_IVERSION, DT_MIPS_FLAGS, DT_MIPS_BASE_ADDRESS, DT_MIPS_MSYM,
	 DT_MIPS_CONFLICT, DT_MIPS_LIBLIST, DT_MIPS_LOCAL_GOTNO,
	 DT_MIPS_CONFLICTNO, DT_MIPS_LIBLISTNO, DT_MIPS_SYMTABNO,
	 DT_MIPS_UNREFEXTNO, DT_MIPS_GOTSYM, DT_MIPS_HIPAGENO, DT_MIPS_RLD_MAP,
	 DT_MIPS_DELTA_CLASS, DT_MIPS_DELTA_CLASS_NO, DT_MIPS_DELTA_INSTANCE,
	 DT_MIPS_DELTA_INSTANCE_NO, DT_MIPS_DELTA_RELOC, DT_MIPS_DELTA_RELOC_NO,
	 DT_MIPS_DELTA_SYM, DT_MIPS_DELTA_SYM_NO, DT_MIPS_DELTA_CLASSSYM,
	 DT_MIPS_DELTA_CLASSSYM_NO, DT_MIPS_CXX_FLAGS, DT_MIPS_PIXIE_INIT,
	 DT_MIPS_SYMBOL_LIB, DT_MIPS_LOCALPAGE_GOTIDX, DT_MIPS_LOCAL_GOTIDX,
	 DT_MIPS_HIDDEN_GOTIDX, DT_MIPS_PROTECTED_GOTIDX, DT_MIPS_OPTIONS,
	 DT_MIPS_INTERFACE, DT_MIPS_DYNSTR_ALIGN, DT_MIPS_INTERFACE_SIZE,
	 DT_MIPS_RLD_TEXT_RESOLVE_ADDR, DT_MIPS_PERF_SUFFIX,
	 DT_MIPS_COMPACT_SIZE, DT_MIPS_GP_VALUE, DT_MIPS_AUX_DYNAMIC,
	 DT_MIPS_PLTGOT, DT_MIPS_RWPLT): Likewise.

2012-01-27  Ian Lance Taylor  <iant@google.com>

	* elfcpp.h (STT_GNU_IFUNC): Add comment.

2011-07-03  Samuel Thibault  <samuel.thibault@gnu.org>
	    Thomas Schwinge  <thomas@schwinge.name>

	PR binutils/12913
	* elfcpp.h (ELFOSABI): Add ELFOSABI_GNU with value of ELFOSABI_LINUX,
	keep ELFOSABI_LINUX as an alias.  Remove ELFOSABI_HURD.

2011-07-01  Ian Lance Taylor  <iant@google.com>

	* dwarf.h (enum DW_CFA): Define.

2010-08-12  Cary Coutant  <ccoutant@google.com>

	* elfcpp.h (enum SHT): Add SHT_GNU_INCREMENTAL_GOT_PLT.

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.

Copyright (C) 2008-2015 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
