2009-08-10  Daniel Gutson  <dgutson@codesourcery.com>

	* arm.h: (SHT_ARM_DEBUGOVERLAY): New define.
	(SHT_ARM_OVERLAYSECTION): New define.

2006-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Mike Frysinger <michael.frysinger@analog.com>
	* bfin.h (R_BFIN_UNUSED, R_BFIN_PCREL5M2, R_BFIN_UNUSED1,
	R_BFIN_PCREL10, R_BFIN_PCREL12_JUMP, R_BFIN_RIMM16,
	R_BFIN_LUIMM16, R_BFIN_HUIMM16, R_BFIN_PCREL12_JUMP_S,
	R_BFIN_PCREL24_JUMP_X, R_BFIN_PCREL24, R_BFIN_UNUSEDB,
	R_BFIN_UNUSEDC, R_BFIN_PCREL24_JUMP_L, R_BFIN_PCREL24_CALL_X,
	R_BFIN_VAR_EQ_SYMB, R_BFIN_BYTE_DATA, R_BFIN_BYTE2_DATA,
	R_BFIN_BYTE4_DATA, R_BFIN_PCREL11, R_BFIN_PUSH, R_BFIN_CONST,
	R_BFIN_ADD, R_BFIN_SUB, R_BFIN_MULT, R_BFIN_DIV, R_BFIN_MOD,
	R_BFIN_LSHIFT, R_BFIN_RSHIFT, R_BFIN_AND, R_BFIN_OR, R_BFIN_XOR,
	R_BFIN_LAND, R_BFIN_LOR, R_BFIN_LEN, R_BFIN_NEG, R_BFIN_COMP,
	R_BFIN_PAGE, R_BFIN_HWPAGE, R_BFIN_ADDR, R_BFIN_PLTPLC,
	R_BFIN_GOT, R_BFIN_MAX): Renamed from R_unused0, R_pcrel5ms,
	R_unused1, R_pcrel10, R_pcrel12_jump, R_rimm16, R_luimm16,
	R_huimm16, R_pcrel12_jump_s, R_pcrel24_jump_x, R_pcrel24,
	R_unusedb, R_unusedc, R_pcrel24_jump_l, R_pcrel24_call_x,
	R_var_eq_symb, R_byte_data, R_byte2_data, R_byte4_data, R_pcrel11,
	R_push, R_const, R_add, R_sub, R_mult, R_div, R_mod, R_lshift,
	R_rshift, R_and, R_or, R_xor, R_land, R_lor, R_len, R_neg, R_comp,
	R_page, R_hwpage, R_addr, R_pltpc, R_got.
	
2009-08-09  Michael Eager <eager@eagercon.com>

	* elf/common.h: Define EM_resnnn reserved values. Add EM_AVR32,
	EM_STM8, EM_TILE64, EM_TILEPRO.  Change EM_MICROBLAZE. 

2009-08-06  Michael Eager <eager@eagercon.com>

	* elf/common.h: Define EM_MICROBLAZE & EM_MICROBLAZE_OLD.
	* elf/microblaze.h: New reloc definitions.

2009-07-30  Alan Modra  <amodra@bigpond.net.au>

	* ppc64.h: Add R_PPC64_JMP_IREL, R_PPC64_REL16, R_PPC64_REL16_LO,
	R_PPC64_REL16_HI, R_PPC64_REL16_HA.

2009-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h (EM_L1OM): New.

2009-07-24  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* spu.h (R_SPU_ADD_PIC): New.

2009-07-23  Ulrich Drepper  <drepper@redhat.com>

	* common.h (STB_GNU_UNIQUE): Define.

2009-07-10  Tom Tromey  <tromey@redhat.com>

	* dwarf2.h: Move to `..'.

2009-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2.h: Just include ../dwarf2.h.

2009-07-10  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (R_PPC_IRELATIVE): Add.
	(R_PPC_RELAX32, R_PPC_RELAX32PC,
	R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Renumber.
	* ppc64.h (R_PPC64_IRELATIVE): Add.

2009-07-03  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
	and DW_OP_stack_value.

2009-06-22  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (R_PPC_RELAX*): Define as enum.

2009-06-11  Anthony Green  <green@moxielogic.org>

	* moxie.h (R_MOXIE_PCREL10): New.

2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10205
	* i386.h (R_386_IRELATIVE): New.
	* x86-64.h (R_X86_64_IRELATIVE): Likewise.

2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h: Update comments for dynamic tag ranges.

2009-04-30  DJ Delorie  <dj@redhat.com>

	* mep.h (EF_MEP_COP_*): New.
	(EF_MEP_ALL_FLAGS): Add them.

2009-04-30  Nick Clifton  <nickc@redhat.com>

	* common.h (STT_GNU_IFUNC): Define.

2009-04-24  Cary Coutant  <ccoutant@google.com>

	 * dwarf2.h (DW_LNE_set_discriminator): New enum value.

2009-04-15  Anthony Green  <green@moxielogic.com>

	* common.h (EM_MOXIE): Define.
	* moxie.h: New file.

2009-04-07  DJ Delorie  <dj@redhat.com>

	* mep.h (EF_MEP_CPU_C5): New.

2009-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h (EM_INTEL178): Removed.
	(EM_INTEL179): Likewise.
	(EM_ETPU): New.
	(EM_SLE9X): Likewise.
	(EM_INTEL181): Likewise.
	(EM_INTEL182): Likewise.

2009-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h (EM_INTEL178): New.
	(EM_INTEL179): Likewise.
	(EM_INTEL180): Likewise.

2009-03-20  Mikolaj Zalewski  <mikolajz@google.com>

	* common.h (SHT_GNU_INCREMENTAL_INPUTS): Define.

2009-03-14  Mark Kettenis  <kettenis@gnu.org>

	* common.h (NT_OPENBSD_PROCINFO, NT_OPENBSD_AUXV) 
	(NT_OPENBSD_REGS, NT_OPENBSD_FPREGS, NT_OPENBSD_XFPREGS) 
	(NT_OPENBSD_WCOOKIE): New defines.

2009-03-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* common.h (AT_RANDOM): Define.

2009-03-04  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (R_PPC_TLSGD, R_PPC_TLSLD): Add new relocs.
	* ppc64.h (R_PPC64_TLSGD, R_PPC64_TLSLD): Add new relocs.

2009-03-02  Qinwei  <qinwei@sunnorth.com.cn>

	* score.h (RELOC_NUMBER): Add R_SCORE_IMM32.
	* common.h (EM_SCORE_OLD): Define.

2009-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h (STB_LOPROC): Replace Application-specific with
	Processor-specific in comments.
	(STB_HIPROC): Likewise.
	(STT_LOPROC): Likewise.
	(STT_HIPROC): Likewise.

2009-02-03  Sandip Matte  <sandip@rmicorp.com>

	* mips.h (E_MIPS_MACH_XLR): Define.

2009-02-03  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* m68k.h: Map TLS relocations to numbers.

2009-01-15  Andrew Stubbs  <ams@codesourcery.com>
	    Julian Brown   <julian@codesourcery.com>

	* arm.h (TAG_CPU_ARCH_V6_M, TAG_CPU_ARCH_V6S_M): New defines.
	(MAX_TAG_CPU_ARCH, TAG_CPU_ARCH_V4T_PLUS_V6_M): New defines.
	(Tag_NEON_arch): Rename to Tag_Advanced_SIMD_arch to match ARM ABI
	version 2.07.
	(Tag_undefined39, Tag_nodefaults): New enum values.
	(Tag_also_compatible_with, Tag_T2EE_use): Likewise.
	(Tag_conformance, Tag_Virtualization_use): Likewise.
	(Tag_undefined69, Tag_MPextension_use): Likewise.

2009-01-15  Douglas B Rupp  <rupp@gnat.com>

	* ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1):
	New macros. Minor reformatting.

2008-12-23  Jon Beniston <jon@beniston.com>

	* lm32.h: New file.

2008-12-23  Nick Clifton  <nickc@redhat.com>

	* commmon.h (STT_IFUNC): Delete.

2008-12-20  Hans-Peter Nilsson  <hp@axis.com>

	* cris.h (R_CRIS_32_IE): New relocation.

2008-12-03  Nick Clifton  <nickc@redhat.com>

	* common.h (STT_IFUNC): Define.

2008-11-27  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* cr16.h (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
	R_CR16_GLOB_DAT): New relocations.

2008-11-25  Hans-Peter Nilsson  <hp@axis.com>

	* cris.h (R_CRIS_32_TPREL): Correct comment.
	(R_CRIS_DTPMOD): Open up for use elsewhere than the fourth GOT entry.

2008-11-18  Catherine Moore  <clm@codesourcery.com>

	* arm.h (Tag_ABI_FP_16bit_format): Define.

2008-11-14  Nathan Sidwell  <nathan@codesourcery.com>

	* internal.h (struct elf_segment_map): Add header_size field.
 
2008-10-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* common.h (AT_BASE_PLATFORM, AT_EXECFN): Define.

2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>

	* ppc.h: Add Tag_GNU_Power_ABI_Struct_Return.

2008-10-04  Hans-Peter Nilsson  <hp@axis.com>

	* cris.h (R_CRIS_32_GOT_GD, R_CRIS_16_GOT_GD, R_CRIS_32_GD)
	(R_CRIS_DTP, R_CRIS_32_DTPREL, R_CRIS_16_DTPREL, R_CRIS_DTPMOD)
	(R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL)
	(R_CRIS_16_TPREL): New relocations.

2008-08-20  Bob Wilson  <bob.wilson@acm.org>

	* xtensa.h (R_XTENSA_TLSDESC_FN, R_XTENSA_TLSDESC_ARG)
	(R_XTENSA_TLS_DTPOFF, R_XTENSA_TLS_TPOFF, R_XTENSA_TLS_FUNC)
	(R_XTENSA_TLS_ARG, R_XTENSA_TLS_CALL): New.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Catherine Moore  <clm@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* mips.h (STO_MIPS_PLT, ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT)
	(STO_MIPS_PIC, DT_MIPS_PLTGOT, DT_MIPS_RWPLT): New macros.

2008-08-04  Markus Weiss  <weissms@aros.org>

	* common.h (ELFOSABI_AROS): Update comment.

2008-07-26  Michael Eager <eager@eagercon.com>

	* ppc.h: Add description of single-precision.

2008-07-21  Luis Machado  <luisgpm@br.ibm.com>

	* common.h: Define NT_PPC_VSX.

2008-07-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* mips.h (ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): New macros.

2008-06-18  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* common.h (EM_CR16): Correct value.
	(EM_CR16): Rename to EM_CR16_OLD.

2008-06-12  DJ Delorie  <dj@redhat.com>

	* common.h (EM_M32C_NEW): Rename to EM_M32C.
	(EM_M32C): Rename to EM_M32C_OLD.

2008-06-12  Joseph Myers  <joseph@codesourcery.com>

	* common.h: Update e_machine table.

2008-06-09  Takashi Yoshii  <yoshii.takashi@renesas.com>

	* sh.h (EF_SH_BFD_TABLE): Set bfd_mach_sh for EF_SH_UNKNOWN.

2008-06-09  Joseph Myers  <joseph@codesourcery.com>

	* common.h: Change registry@caldera.com to registry@sco.com.

2008-05-21  Nick Clifton  <nickc@redhat.com>

	* reloc-macros.h: Add a comment about the use of the
	END_RELOC_NUMBERS symbol as a sentinel value.

2008-05-15  Christophe Lyon  <christophe.lyon@st.com>
	
	* arm.h (END_RELOC_NUMBERS): Provide a maximum value.

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

	* elf/sparc.h (R_SPARC_GOTDATA_HIX22,
	R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22,
	R_SPARC_GOTDATA_OP_LOX10, R_SPARC_GOTDATA_OP,
	R_SPARC_H34, R_SPARC_SIZE32, R_SPARC_SIZE64): New relocs.

2008-03-24  Ian Lance Taylor  <iant@google.com>

	* common.h (NT_GNU_GOLD_VERSION): Define.

2008-03-13  Alan Modra  <amodra@bigpond.net.au>

	* internal.h (Elf_Internal_Shdr): Change sh_link and sh_info from
	unsigned long to unsigned int.  Change sh_addralign to bfd_vma.
	Order struct as for external version.

2008-03-12  Alan Modra  <amodra@bigpond.net.au>

	PR 5900
	* common.h (SHN_BAD): Delete.
	(SHN_LORESERVE .. SHN_HIRESERVE): Move to..
	* external.h: ..here.
	* internal.h (SHN_LORESERVE, SHN_HIRESERVE): Define.
	(SHN_LOPROC, SHN_HIPROC, SHN_LOOS, SHN_HIOS): Define.
	(SHN_ABS, SHN_COMMON, SHN_XINDEX, SHN_BAD): Define.

2008-03-12  Alan Modra  <amodra@bigpond.net.au>

	* cr16c.h (SHN_CR16C_FCOMMON): Define using SHN_LORESERVE.
	(SHN_CR16C_NCOMMON): Likewise.
	* hppa.h (SHN_PARISC_ANSI_COMMON): Likewise.
	(SHN_PARISC_HUGE_COMMON): Likewise.
	* ia64.h (SHN_IA_64_ANSI_COMMON): Likewise.
	(SHN_IA_64_VMS_SYMVEC): Define using SHN_LOOS.
	* m32r.h (SHN_M32R_SCOMMON): Define using SHN_LORESERVE.
	* mips.h (SHN_MIPS_ACOMMON, SHN_MIPS_TEXT): Likewise.
	(SHN_MIPS_DATA, SHN_MIPS_SCOMMON, SHN_MIPS_SUNDEFINED): Likewise.
	* score.h (SHN_SCORE_TEXT, SHN_SCORE_DATA): Likewise.
	(SHN_SCORE_SCOMMON): Likewise.
	* sparc.h (SHN_BEFORE, SHN_AFTER): Likewise.
	* v850.h (SHN_V850_SCOMMON, SHN_V850_TCOMMON): Likewise.
	(SHN_V850_ZCOMMON): Likewise.
	* x86-64.h (SHN_X86_64_LCOMMON): Likewise.

2008-03-03  Pallavi Tambay  <pallavi.tambay@amd.com>

	* dwarf2.h: (enum dwarf_location_atom): Add new DW_OP:
	DW_OP_PGI_omp_thread_num.

2008-02-04  Adam Nemet  <anemet@caviumnetworks.com>

	* mips.h: Update copyright.
	(E_MIPS_MACH_OCTEON): New macro.

2008-01-30  Tristan Gingold  <gingold@adacore.com>

	Add OpenVMS extensions.
	* ia64.h (SHF_IA_64_VMS_GLOBAL, SHF_IA_64_VMS_OVERLAID)
	(SHF_IA_64_VMS_SHARED, SHF_IA_64_VMS_VECTOR)
	(SHF_IA_64_VMS_ALLOC_64BIT, SHF_IA_64_VMS_PROTECTED)
	(SHT_IA_64_VMS_TRACE, SHT_IA_64_VMS_TIE_SIGNATURES)
	(SHT_IA_64_VMS_DEBUG, SHT_IA_64_VMS_DEBUG_STR)
	(SHT_IA_64_VMS_LINKAGES, SHT_IA_64_VMS_SYMBOL_VECTOR)
	(SHT_IA_64_VMS_FIXUP, DT_IA_64_VMS_SUBTYPE)
	(DT_IA_64_VMS_IMGIOCNT, DT_IA_64_VMS_LNKFLAGS)
	(DT_IA_64_VMS_VIR_MEM_BLK_SIZ, DT_IA_64_VMS_IDENT)
	(DT_IA_64_VMS_NEEDED_IDENT, DT_IA_64_VMS_IMG_RELA_CNT)
	(DT_IA_64_VMS_SEG_RELA_CNT, DT_IA_64_VMS_FIXUP_RELA_CNT)
	(DT_IA_64_VMS_FIXUP_NEEDED, DT_IA_64_VMS_SYMVEC_CNT)
	(DT_IA_64_VMS_XLATED, DT_IA_64_VMS_STACKSIZE)
	(DT_IA_64_VMS_UNWINDSZ, DT_IA_64_VMS_UNWIND_CODSEG)
	(DT_IA_64_VMS_UNWIND_INFOSEG, DT_IA_64_VMS_LINKTIME)
	(DT_IA_64_VMS_SEG_NO, DT_IA_64_VMS_SYMVEC_OFFSET)
	(DT_IA_64_VMS_SYMVEC_SEG, DT_IA_64_VMS_UNWIND_OFFSET)
	(DT_IA_64_VMS_UNWIND_SEG, DT_IA_64_VMS_STRTAB_OFFSET)
	(DT_IA_64_VMS_SYSVER_OFFSET, DT_IA_64_VMS_IMG_RELA_OFF)
	(DT_IA_64_VMS_SEG_RELA_OFF, DT_IA_64_VMS_FIXUP_RELA_OFF)
	(DT_IA_64_VMS_PLTGOT_OFFSET, DT_IA_64_VMS_PLTGOT_SEG)
	(DT_IA_64_VMS_FPMODE, SHN_IA_64_VMS_SYMVEC): Define

2008-01-16  Mark Kettenis  <kettenis@gnu.org>

	* common.h (AT_SUN_AUXFLAGS): Define.

2007-12-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2.h (DW_AT_hi_user): Correct value.

2007-12-07  Bob Wilson  <bob.wilson@acm.org>

	* xtensa.h (R_XTENSA_32_PCREL): New.

2007-11-29  Mark Shinwell  <shinwell@codesourcery.com>

	* mips.h (E_MIPS_MACH_LS2E): New.
	(E_MIPS_MACH_LS2F): New.

2007-11-28  Nathan Sidwell  <nathan@codesourcery.com>

	* internal.h (ELF_IS_SECTION_IN_SEGMENT): Adjust to cope with
	segments at the end of memory.

2007-11-17  Thiemo Seufer  <ths@mips.com>

	* mips.h (Tag_GNU_MIPS_ABI_FP): Mention -mips32r2 -mfp64 variant
	in comment.

2007-11-16  Nick Clifton  <nickc@redhat.com>

	* dwarf2.h: Mention the location of the DWARF3 spec on the web.
	(DW_AT_stride_size): Rename to DW_AT_bit_stride.
	(DW_AT_stride): Rename to DW_AT_byte_stride.

2007-11-08  Nathan Sidwell  <nathan@codesourcery.com>

	* vxworks.h: New.

2007-10-30  Nick Clifton  <nickc@redhat.com>

	* mn10300.h (R_MN10300_ALIGN): Define.

2007-10-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* ppc.h (Tag_GNU_Power_ABI_Vector): New.

2007-10-19  Nick Clifton  <nickc@redhat.com>

	* mn10300.h: Add R_MN10300_SYM_DIFF reloc.

2007-10-18  Roland McGrath  <roland@redhat.com>

	* common.h (NT_PPC_VMX): New macro.

2007-10-01  M R Swami Reddy <MR.Swami.Reddy@nsc.com>

	* cr16.h: Updated with new relocaction macros.

2007-09-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/3281
	PR binutils/5037
	* internal.h (elf_segment_map): Add p_size and p_size_valid.
	(ELF_IS_SECTION_IN_SEGMENT): Allow SHF_TLS sections in
	PT_GNU_RELRO segments.

2007-09-11  Nathan Sidwell  <nathan@codesourcery.com>

	* m68k.h (EF_M68K_CF_ISA_C_NODIV): New.

2007-08-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* common.h (NT_SPU): Define.

2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h: Revert last change.

2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	* common.h (PT_GNU_STACK): Renamed to ...
	(PT_GNU_ATTR): This.
	(PT_GNU_STACK): New.  Make an alias of PT_GNU_ATTR.

2007-07-09  Roland McGrath  <roland@redhat.com>

	* common.h (NT_GNU_HWCAP, NT_GNU_BUILD_ID): New macros.

2007-06-29  Joseph Myers  <joseph@codesourcery.com>

	* ppc.h (Tag_GNU_Power_ABI_FP): Define.

2007-06-29  Joseph Myers  <joseph@codesourcery.com>

	* mips.h (Tag_GNU_MIPS_ABI_FP): Define.

2007-06-29  Joseph Myers  <joseph@codesourcery.com>

	* arm.h (elf32_arm_add_eabi_attr_int,
	elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat,
	elf32_arm_get_eabi_attr_int, elf32_arm_set_eabi_attr_contents,
	elf32_arm_eabi_attr_size, Tag_NULL, Tag_File, Tag_Section,
	Tag_Symbol, Tag_compatibility): Remove.
	* common.h (SHT_GNU_ATTRIBUTES): Define.

2007-06-29  M R Swami Reddy  <MR.Swami.Reddy@nsc.com>

	* common.h (EM_CR16): New entry for CR16 cpu.
	* cr16.h: New file.

2007-06-11  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* xtensa.h (XTENSA_PROP_INSN_NO_TRANSFORM): Renamed to...
	(XTENSA_PROP_NO_TRANSFORM): ...this.

2007-05-18  Caroline Tice  <ctice@apple.com>

	* dwarf2.h: (enum dwarf_location_atom): Add new DW_OP,
	DW_OP_GNU_uninit.

2007-05-12  Alan Modra  <amodra@bigpond.net.au>

	* spu.h (R_SPU_ADDR16X): Define.
	(R_SPU_PPU32, R_SPU_PPU64): Renumber.

2007-05-11  Alan Modra  <amodra@bigpond.net.au>

	* spu.h (R_SPU_PPU32, R_SPU_PPU64): Define.

2007-05-02  Alan Modra  <amodra@bigpond.net.au>

	* internal.h (ELF_IS_SECTION_IN_SEGMENT): Check both file offset
	and vma for appropriate sections.

2007-04-26  Jan Beulich  <jbeulich@novell.com>

	* common.h (DT_ENCODING): Correct value (back to spec mandated
	value).

2007-03-08  Alan Modra  <amodra@bigpond.net.au>

	* v850.h (V850_OTHER_TDA_BYTE): Delete.
	(V850_OTHER_SDA, V850_OTHER_ZDA, V850_OTHER_TDA): Assign bits
	that don't clash with visibility bits.

2007-03-07  Alan Modra  <amodra@bigpond.net.au>

	* common.h (ELF_ST_VISIBILITY): Comment typo fix.

2007-02-05  Dave Brolley  <brolley@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>
	    Richard Henderson  <rth@redhat.com>
	    DJ Delorie  <dj@redhat.com>
	    Ben Elliston  <bje@redhat.com>

	* mep.h: New file.
	* common.h (EM_CYGNUS_MEP): Define.

2007-02-15  Dave Brolley  <brolley@redhat.com>

	From Graydon Hoare  <graydon@redhat.com>:
	* common.h (STT_RELC, STT_SRELC, R_RELC): New macros.

2007-01-08  Kazu Hirata  <kazu@codesourcery.com>

	* m68k.h (EF_M68K_FIDO): New.
	(EF_M68K_ARCH_MASK): OR EF_M68K_FIDO.
	(EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): Remove.

2006-12-25  Kazu Hirata  <kazu@codesourcery.com>

	* m68k.h (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): New.

2006-12-19  Kazu Hirata  <kazu@codesourcery.com>

	* m68k.h (EF_M68K_ARCH_MASK): New.

2006-12-19  Nathan Sidwell  <nathan@codesourcery.com>

	* internal.h (struct elf_segment_map): Add p_vaddr_offset field.

2006-12-07  Kazu Hirata  <kazu@codesourcery.com>

	* m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A_NODIV,
	EF_M68K_ISA_A, EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B_NOUSP,
	EF_M68K_ISA_B, EF_M68K_ISA_C, EF_M68K_MAC_MASK, EF_M68K_MAC,
	EF_M68K_EMAC, EF_M68K_EMAC_B, EF_M68K_FLOAT): Rename to
	EF_M68K_CF_ISA_MASK, EF_M68K_CF_ISA_A_NODIV, EF_M68K_CF_ISA_A,
	EF_M68K_CF_ISA_A_PLUS, EF_M68K_CF_ISA_B_NOUSP,
	EF_M68K_CF_ISA_B, EF_M68K_CF_ISA_C, EF_M68K_CF_MAC_MASK,
	EF_M68K_CF_MAC, EF_M68K_CF_EMAC, EF_M68K_CF_EMAC_B,
	EF_M68K_CF_FLOAT, respectively.

2006-12-05  Michael Tautschnig  <tautschn@model.in.tum.de>
	    Nick Clifton  <nickc@redhat.com>

	* external.h (struct Elf_External_Versym): Use ATTRIBUTE_PACKED.

2006-10-28  Richard Sandiford  <richard@codesourcery.com>

	* mips.h (R_MIPS_GLOB_DAT): Define
	(R_MIPS_max): Bump by 1.

2006-10-25  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
	    Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
	    Nobuhisa Fujinami  <fnami@rd.scei.sony.co.jp>
	    Takeaki Fukuoka  <fukuoka@rd.scei.sony.co.jp>
	    Alan Modra  <amodra@bigpond.net.au>

	* common.h (EM_SPU): Define.
	* spu.h: New file.

2006-10-19  Mei Ligang  <ligang@sunnorth.com.cn>

	* score.h (EF_SCORE_PIC): Redefine EF_SCORE_PIC as 0x80000000.
	(EF_SCORE_FIXDEP): Redefine EF_SCORE_FIXDEP as 0x40000000.
	(EF_SCORE_HASENTRY): Delete.

2006-10-17  Mark Shinwell  <shinwell@codesourcery.com>

	* arm.h: Define TAG_CPU_ARCH_* constants.

2006-09-17  Mei Ligang  <ligang@sunnorth.com.cn>

	* score.h: New file.
	* common.h: Add Score machine number.

2006-07-10  Jakub Jelinek  <jakub@redhat.com>

	* common.h (SHT_GNU_HASH, DT_GNU_HASH): Define.

2006-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* internal.h (ELF_SECTION_SIZE): New.
	(ELF_IS_SECTION_IN_SEGMENT): Likewise.
	(ELF_IS_SECTION_IN_SEGMENT_FILE): Updated.
	(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.

2006-05-27  H.J. Lu  <hongjiu.lu@intel.com>

	* internal.h (struct elf_segment_map): Add p_align and p_align_valid.

2006-05-24  Carlos O'Donell  <carlos@systemhalted.org>
	    Randolph Chung  <randolph@tausq.org>
	* hppa.h (R_PARISC_TLS_GD21L, R_PARISC_TLS_GD14R, R_PARISC_TLS_GDCALL,
	R_PARISC_TLS_LDM21L, R_PARISC_TLS_LDM14R, R_PARISC_TLS_LDMCALL,
	R_PARISC_TLS_LDO21L, R_PARISC_TLS_LDO14R, R_PARISC_TLS_DTPMOD32,
	R_PARISC_TLS_DTPMOD64, R_PARISC_TLS_DTPOFF32, R_PARISC_TLS_DTPOFF64):
	New TLS relocs.
	(R_PARISC_TLS_LE21L, R_PARISC_TLS_LE14R, R_PARISC_TLS_IE21L,
	R_PARISC_TLS_IE14R, R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64):
	Define TLS relocs using existing equivalents.

2006-05-24  Bjoern Haase  <bjoern.m.haase@web.de>

	* avr.h: Add E_AVR_MACH_AVR6, R_AVR_LO8_LDI_GS and R_AVR_HI8_LDI_GS.

2006-03-25  Bernd Schmidt  <bernd.schmidt@analog.com>

	* bfin.h (R_BFIN_GOT17M4, R_BFIN_GOTHI, R_BFIN_GOTLO,
	R_BFIN_FUNCDESC, R_BFIN_FUNCDESC_GOT17M4,  R_BFIN_FUNCDESC_GOTHI,
	R_BFIN_FUNCDESC_GOTLO, R_BFIN_FUNCDESC_VALUE,
	R_BFIN_FUNCDESC_GOTOFF17M4, R_BFIN_FUNCDESC_GOTOFFHI,
	R_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_GOTOFF17M4, R_BFIN_GOTOFFHI,
	R_BFIN_GOTOFFLO): New relocs.
	(EF_BFIN_PIC, EF_BFIN_FDPIC, EF_BFIN_PIC_FLAGS): New macros.

2006-03-23  Michael Matz  <matz@suse.de>

	* x86-64.h: Add the new relocations with their official
	numbers.

2006-03-22  Richard Sandiford  <richard@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>
	    Zack Weinberg  <zack@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* mips.h (R_MIPS_COPY, R_MIPS_JUMP_SLOT): New relocs.

2006-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* hppa.h (SHF_HP_TLS, SHF_HP_NEAR_SHARED, SHF_HP_FAR_SHARED,
	SHF_HP_COMDAT, SHF_HP_CONST, SHN_TLS_COMMON, SHN_NS_COMMON,
	SHN_NS_UNDEF, SHN_FS_UNDEF, SHN_HP_EXTERN, SHN_HP_EXTHINT,
	SHN_HP_UNDEF_BIND_IMM, SHT_HP_OVLBITS, SHT_HP_DLKM, SHT_HP_COMDAT,
	SHT_HP_OBJDICT, SHT_HP_ANNOT, STB_HP_ALIAS): Define.

2006-03-10  Paul Brook  <paul@codesourcery.com>

	* arm.h (EF_ARM_EABI_VER5): Define.

2006-03-06  Nathan Sidwell  <nathan@codesourcery.com>

	* m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A,
	EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B, EF_M68K_ISA_C): Adjust.
	(EF_M68K_ISA_A_NODIV, EF_M68K_ISA_B_NOUSP): New.
	(EF_M68K_HW_DIV, EF_M68K_USP): Remove.
	(EF_M68K_MAC, EF_M68K_EMAC, EF_M68K_FLOAT): Adjust.
	(EF_M68K_EMAC_B): New.

2006-03-03  Bjoern Haase  <bjoern.m.haase@web.de>

	* avr.h (R_AVR_MS8_LDI,R_AVR_MS8_LDI_NEG): Add.
	(EF_AVR_LINKRELAX_PREPARED): Add.

2006-03-02  Ben Elliston  <bje@au.ibm.com>

	Import from the GCC tree:
	2006-03-01  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
	from DWARF 3.
	(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
	DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
	DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
	DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
	DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
	(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
	(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
	DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
	(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
	DW_DS_leading_separate, DW_DS_trailing_separate): New.
	(DW_END_default, DW_END_big, DW_END_little): New.
	(DW_END_lo_user, DW_END_hi_user): Define.
	(DW_LNE_lo_user, DW_LNE_hi_user): Define.
	(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
	(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
	DW_LANG_D): New.

2006-02-06  Steve Ellcey  <sje@cup.hp.com>

	* ia64.h (SHF_IA_64_HP_TLS): New.

2006-02-24  DJ Delorie  <dj@redhat.com>

	* m32c.h: Add relax relocs.

2006-02-17  Shrirang Khisti  <shrirangk@kpitcummins.com>
            Anil Paranjape   <anilp1@kpitcummins.com>
            Shilin Shakti    <shilins@kpitcummins.com>

	* common.h (EM_XC16X): New entry for xc16x cpu.
	Sort other EM_* numbers into numerical order.
	* xc16x.h: New file.

2006-02-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/2258
	* internal.h (ELF_IS_SECTION_IN_SEGMENT_FILE): New.
	(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.

2006-02-07  Nathan Sidwell  <nathan@codesourcery.com>

	* m68k.h (EF_CPU32, EF_M68000, EF_CFV4E): Rename to ...
	(EF_M68K_CPU32, EF_M68K_M68000, EF_M68K_CFV4E): ... here.
	(EF_M68K_ISA_MASK, EF_M68K_ISA_A, EF_M68K_M68K_ISA_A_PLUS,
	EF_M68K_ISA_B, EF_M68K_HW_DIV, EF_M68K_MAC_MASK, EF_M68K_MAC,
	EF_M68K_EMAC, EF_M68K_USP, EF_M68K_FLOAT): New.

2006-02-06  Steve Ellcey  <sje@cup.hp.com>

	* ia64.h (SHF_IA_64_HP_TLS): New.

2006-01-18  Alexandre Oliva  <aoliva@redhat.com>

	Introduce TLS descriptors for i386 and x86_64.
	* common.h (DT_TLSDESC_GOT, DT_TLSDESC_PLT): New.
	* i386.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC):
	New.
	* x86-64.h (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
	R_X86_64_TLSDESC): New.

2006-01-09  Mike Frysinger  <vapier@gentoo.org>:

	* common.h (EM_ALTERA_NIOS2, EM_NIOS32) Define.

2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>

	Second part of ms1 to mt renaming.
	* common.h (EM_MT): Renamed.
	* mt.h: Rename relocs, cpu & other defines.

2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>

	* mt.h: Renamed from ms1.h

2005-12-12  Paul Brook  <paul@codesourcery.com>

	* arm.h (elf32_arm_get_eabi_attr_int): Add prototype.

2005-11-11  Nick Clifton  <nickc@redhat.com>

	PR 1150
	* mips.h (STO_OPTIONAL): Define.
	(ELF_MIPS_IS_OPTIONAL): Define.

2005-11-07  Nathan Sidwell  <nathan@codesourcery.com>

	Add ms2.
	* ms1.h (EF_MS1_CPU_MS2): New.

2005-11-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>

	* hppa.h (R_PARISC_DIR64WR, R_PARISC_DIR64DR): Remove relocs.

2005-09-30  Catherine Moore  <clm@cm00re.com>

	* bfin.h: New file.
	* common.h (EM_BLACKFIN): Define.

2005-10-08  Paul Brook  <paul@codesourcery.com>

	* arm.h: Add prototypes for BFD object attribute routines.

2005-09-09  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.h (SHT_ARM_PREEMPTMAP, SHT_ARM_ATTRIBUTES): New defines.

2005-08-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* hppa.h (SHT_PARISC_DLKM, SHF_PARISC_WEAKORDER, PT_PARISC_WEAKORDER):
	New defines.

2005-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* hppa.h (PF_HP_CODE, PF_HP_MODIFY, PF_HP_LAZYSWAP): Revise defines.
	(PF_HP_CODE_DEPR, PF_HP_MODIFY_DEPR, PF_HP_LAZYSWAP_DEPR): New
	deprecated defines.
	(DT_HP_EPLTREL, DT_HP_EPLTRELSZ, DT_HP_FILTERED, DT_HP_FILTER_TLS,
	DT_HP_COMPAT_FILTERED, DT_HP_LAZYLOAD, DT_HP_BIND_NOW_COUNT, DT_PLT,
	DT_PLT_SIZE, DT_DLT, DT_DLT_SIZE, DT_HP_BIND_DEPTH_FIRST, DT_HP_GST,
	DT_HP_SHLIB_FIXED, DT_HP_MERGE_SHLIB_SEG, DT_HP_NODELETE, DT_HP_GROUP,
	DT_HP_PROTECT_LINKAGE_TABLE, PT_HP_OPT_ANNOT, PT_HP_HSL_ANNOT,
	PT_HP_STACK, PT_HP_CORE_UTSNAME, NT_HP_COMPILER, NT_HP_COPYRIGHT,
	NT_HP_VERSION, NT_HP_SRCFILE_INFO, NT_HP_LINKER, NT_HP_INSTRUMENTED,
	NT_HP_UX_OPTIONS): Define.

2005-07-25  DJ Delorie  <dj@redhat.com>

	* m32c.h: Add R_M32C_8, R_M32C_LO16, R_M32C_HI8, and R_M32C_HI16.

2005-07-25  Jan Hubicka  <jh@suse.cz>

	* x86-64.h (SHN_X86_64_LCOMMON): New.
	(SHF_X86_64_LARGE): New.

2005-07-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* m32r.h (R_M32R_REL32): Added.

2005-07-18  Ben Elliston  <bje@au.ibm.com>

	* dwarf2.h (enum dwarf_type): Remove DW_AT_GNU_decimal_float.
	Replace with DW_ATE_decimal_float (now in DWARF 3).

2005-07-14  Jim Blandy  <jimb@redhat.com>

	Add support for Renesas M32C and M16C.
	* common.h (EM_M32C): New machine number.
	* m32c.h: New file.

2005-06-17  Jakub Jelinek  <jakub@redhat.com>

	* external.h (GRP_ENTRY_SIZE): Define.

2005-06-17  Jan Beulich  <jbeulich@novell.com>

	* x86-64.h (elf_x86_64_reloc_type): Adjust comment for
	R_X86_64_GOTPCREL. Add R_X86_64_PC64, R_X86_64_GOTOFF64, and
	R_X86_64_GOTPC32.

2005-06-07  Aldy Hernandez  <aldyh@redhat.com>
	    Michael Snyder  <msnyder@redhat.com>
	    Stan Cox  <scox@redhat.com>

	* common.h (EM_MS1): Define.

	* ms1.h: New file.

2005-05-31  Richard Henderson  <rth@redhat.com>

	* alpha.h (LITUSE_ALPHA_JSRDIRECT): New.

2005-05-29  Richard Henderson  <rth@redhat.com>

	* alpha.h (DT_ALPHA_PLTRO): New.

2005-05-19  Ben Elliston  <bje@au.ibm.com>

	* dwarf2.h (enum dwarf_type): Assign DW_ATE_GNU_decimal_float from
	the user-defined encoding space pending inclusion in the standard.

2005-05-18  Zack Weinberg  <zack@codesourcery.com>

	* arm.h: Make all #ifndef OLD_ARM_ABI blocks
	unconditional, delete all #ifdef OLD_ARM_ABI blocks.

2005-05-17  Zack Weinberg  <zack@codesourcery.com>

	* arm.h: Import complete list of official relocation names
	and numbers from AAELF.  Define FAKE_RELOCs for old names.
	Remove a few old names no longer used anywhere.

2005-05-14  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (DT_PPC_GOT): Rename from DT_PPC_GLINK.

2005-05-11  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
	R_PPC_RELAX32PC_PLT) Adjust.
	(R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI, R_PPC_REL16_HA): Define.
	(DT_PPC_GLINK): Define.

2005-05-10  Nick Clifton  <nickc@redhat.com>

	* Update the address and phone number of the FSF organization in
	the GPL notices in the following files:
	alpha.h, arc.h, arm.h, avr.h, common.h, cr16c.h, cris.h, crx.h,
	d10v.h, d30v.h, dlx.h, dwarf.h, dwarf2.h, external.h, fr30.h,
	frv.h, h8.h, hppa.h, i370.h, i386.h, i860.h, i960.h, ia64.h,
	internal.h, ip2k.h, iq2000.h, m32r.h, m68hc11.h, m68k.h, mcore.h,
	mips.h, mmix.h, mn10200.h, mn10300.h, msp430.h, openrisc.h,
	or32.h, pj.h, ppc.h, ppc64.h, reloc-macros.h, s390.h, sh.h,
	sparc.h, v850.h,  vax.h, x86-64.h, xstormy16.h,	xtensa.h

2005-04-13  H.J. Lu  <hongjiu.lu@intel.com>

	Moved from ../ChangeLog

	2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
	* arm.h: Add R_ARM_CALL and R_ARM_JUMP32.

	2004-10-12  Paul Brook  <paul@codesourcery.com>
	* arm.h (EF_ARM_EABI_VER4): Define.

	2004-10-08  Daniel Jacobowitz  <dan@debian.org>

	* common.h (PT_SUNW_EH_FRAME): Define.
	* x86-64.h (SHT_X86_64_UNWIND): Define.

	2004-10-07  Bob Wilson  <bob.wilson@acm.org>
	* xtensa.h (R_XTENSA_DIFF8, R_XTENSA_DIFF16, R_XTENSA_DIFF32,
	R_XTENSA_SLOT*_OP, R_XTENSA_SLOT*_ALT): New relocations.
	(XTENSA_PROP_SEC_NAME): Define.
	(property_table_entry): Add flags field.
	(XTENSA_PROP_*, GET_XTENSA_PROP_*, SET_XTENSA_PROP_*): Define.

	2004-09-17  Paul Brook  <paul@codesourcery.com>
	* arm.h: Remove R_ARM_STKCHK and R_ARM_THM_STKCHK.
	Add R_ARM_TARGET2, R_ARM_PREL31, R_ARM_GOT_ABS, R_ARM_GOT_PREL,
	R_ARM_GOT_BREL12, R_ARM_GOTOFF12 and R_ARM_GOTRELAX.

	2004-09-13  Paul Brook  <paul@codesourcery.com>
	* arm.h: Rename RELABS to TARGET1.

	2004-05-11  Jakub Jelinek  <jakub@redhat.com>
	* common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments.
	(PT_GNU_RELRO): Define.

2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>
	    Phil Blundell  <philb@gnu.org>

	* arm.h: Add TLS relocations.

2005-03-23  Ben Elliston  <bje@au.ibm.com>

	* dwarf.h: Merge with GCC's dwarf.h.

2005-03-18  C Jaipraash  <cjaiprakash@noida.hcltech.com>

	* m68k.h (EF_CFV4E): Define.

2005-03-17  Paul Brook <paul@codesourcery.com>
	    Dan Jacobowitz <dan@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* arm.h (PT_ARM_EXIDX): Define.

2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* mips.h: Define MIPS TLS relocations.

2005-02-15  Nigel Stephens  <nigel@mips.com>
	    Maciej W. Rozycki  <macro@mips.com>

	* mips.h (R_MIPS16_GOT16): New reloc code.
	(R_MIPS16_CALL16): Likewise.
	(R_MIPS16_HI16): Likewise.
	(R_MIPS16_LO16): Likewise.
	(R_MIPS16_min): New fake reloc code.
	(R_MIPS16_max): Likewise.

2005-02-11  Maciej W. Rozycki  <macro@mips.com>

	* mips.h (R_MIPS_max): Use FAKE_RELOC to define.

2005-01-25  Alexandre Oliva  <aoliva@redhat.com>

	2004-12-10  Alexandre Oliva  <aoliva@redhat.com>
	* frv.h: Add R_FRV_TLSMOFF.
	2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
	* frv.h: Add TLS relocations.

2005-01-17  Nick Clifton  <nickc@redhat.com>

	* sh.h (EF_SH2A_SH4_NOFPU, EF_SH2A_SH3_NOFPU, EF_SH2A_SH4,
	EF_SH2A_SH3E): New flags.
	(EF_SH_BFD_TABLE): Add these new flags to the table.

2005-01-12  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Define.
	(R_PPC_RELAX32, R_PPC_RELAX32PC): Adjust value.

2004-12-22  Klaus Rudolph  <lts-rudolph@gmx.de>

	* avr.h (R_AVR_LDI, R_AVR_6, R_AVR_6_ADIW): New relocs.

2004-12-16  Richard Sandiford  <rsandifo@redhat.com>

	* v850.h (R_V850_LO16_SPLIT_OFFSET): New reloc.

2004-12-09  Ian Lance Taylor  <ian@wasabisystems.com>

	* mips.h (E_MIPS_MACH_9000): Define.

2004-11-04  Hans-Peter Nilsson  <hp@axis.com>

	* cris.h (EF_CRIS_VARIANT_MASK, EF_CRIS_VARIANT_ANY_V0_V10)
	(EF_CRIS_VARIANT_V32, EF_CRIS_VARIANT_COMMON_V10_V32): New
	macros.

2004-10-06  Eric Christopher  <echristo@redhat.com>

	* dwarf2.h: Sync with gcc dwarf2.h. Fix typo.

2004-10-01  Paul Brook  <paul@codesourcery.com>

	* arm.h (SHT_ARM_EXIDX): Define.
	(ELF_STRING_ARM_unwind, ELF_STRING_ARM_unwind,
	ELF_STRING_ARM_unwind_once, ELF_STRING_ARM_unwind_info_once):
	Define.

2004-08-25  Dmitry Diky  <diwil@spec.ru>

	* msp430.h: Add new relocs.

2004-08-12  H.J. Lu  <hongjiu.lu@intel.com>

	* i386.h (R_386_USED_BY_INTEL_200): New.

2004-07-29  Alexandre Oliva  <aoliva@redhat.com>

	Introduce SH2a support.
	2004-02-18  Corinna Vinschen  <vinschen@redhat.com>
	* sh.h (EF_SH2A_NOFPU): New.
	2003-12-01  Michael Snyder  <msnyder@redhat.com>
	* sh.h (EF_SH2A): New.

2004-07-27  Tomer Levi  <Tomer.Levi@nsc.com>

	* crx.h: Add BFD_RELOC_CRX_SWITCH8, BFD_RELOC_CRX_SWITCH16,
	BFD_RELOC_CRX_SWITCH32.

2004-07-06  Tomer Levi  <Tomer.Levi@nsc.com>

	* common.h (EM_CRX): Define.
	* crx.h: New file.

2004-06-25  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* m32r.h: Add defintions of R_M32R_GOTOFF_HI_ULO,
	R_M32R_GOTOFF_HI_SLO and R_M32R_GOTOFF_LO.

2004-06-19  Alan Modra  <amodra@bigpond.net.au>

	* common.h (ELF64_R_INFO): Warning fix.

2004-06-14  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24),
	with an updated comment.

2004-05-28  Andrew Stubbs <andrew.stubbs@superh.com>

	* sh.h (EF_SH_HAS_DSP): Remove.
	(EF_SH_HAS_FP): Remove.
	(EF_SH_MERGE_MACH): Remove.
	(EF_SH4_NOFPU): Convert to decimal.
	(EF_SH4A_NOFPU): Likewise.
	(EF_SH4_NOMMU_NOFPU): Likewise.
	(EF_SH3_NOMMU): Add new macro.
	(EF_SH_BFD_TABLE): Likewise.
	(sh_find_elf_flags): Add prototype.
	(sh_elf_get_flags_from_mach): Likewise.

2004-04-24  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (R_MIPS_PC32, R_MIPS_PC64, R_MIPS_GNU_REL_LO16)
	(R_MIPS_GNU_REL_HI16): Remove.
	(R_MIPS_GNU_REL16_S2): Update comment.

2004-30-30  Galit Heller  <Galit.Heller@nsc.com>
	    Tomer Levi  <Tomer.Levi@nsc.com>

	* common.h (EM_CR): Define.
	* cr16c.h: New file.

2004-03-23  Paul Brook  <paul@codesourcery.com>

	* arm.h (EF_ERM_BE8, EF_ARM_LE8, EF_ARM_EABI_VER3): Add.

2003-03-03  Andrew Stubbs  <andrew.stubbs@superh.com>

	* sh.h: Add EF_SH4_NOMMU_NOFPU.

2004-03-01  Richard Sandiford  <rsandifo@redhat.com>

	* frv.h (EF_FRV_CPU_FR405, EF_FRV_CPU_FR450): Define.

2004-01-28  Roland McGrath  <roland@redhat.com>

	* common.h (AT_SECURE): New macro.

2004-01-21  Roland McGrath  <roland@redhat.com>

	* common.h (AT_SUN_UID, AT_SUN_RUID, AT_SUN_GID): New macros.
	(AT_SUN_RGID, AT_SUN_LDELF, AT_SUN_LDSHDR, AT_SUN_LDNAME,
	AT_SUN_LPAGESZ, AT_SUN_PLATFORM, AT_SUN_HWCAP, AT_SUN_IFLUSH,
	AT_SUN_CPU, AT_SUN_EMUL_ENTRY, AT_SUN_EMUL_EXECFD,
	AT_SUN_EXECNAME) AT_SUN_MMU, AT_SUN_LDDATA): Likewise.

2004-01-17  Mark Kettenis  <kettenis@gnu.org>

	* common.h (NT_OPENBSD_IDENT): Define.

2004-01-06  Alexandre Oliva  <aoliva@redhat.com>

	2003-09-18  Alexandre Oliva  <aoliva@redhat.com>
	* frv.h (EF_FRV_FDPIC): New macro.
	(EF_FRV_PIC_FLAGS): Adjust.
	2003-08-08  Alexandre Oliva  <aoliva@redhat.com>
	* frv.h (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
	R_FRV_FUNCDESC_GOTOFFLO, R_FRV_FUNCDESC_GOTOFFHI, R_FRV_GOTOFF12,
	R_FRV_GOTOFFLO, R_FRV_GOTOFFHI): New.
	2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
	* frv.h (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, R_FRV_FUNCDESC,
	R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, R_FRV_FUNCDESC_GOTLO):
	New.


For older changes see ChangeLog-9103

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
