2003-12-06  Alan Modra  <amodra@bigpond.net.au>

	From Jan Beulich <JBeulich@novell.com>
	* common.h (DT_HIOS): Correct value.

2003-12-03   Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* elf/m32r.h: Add new machine type m32r2 and instruction modes.

2003-11-06  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (R_PPC_RELAX32PC): Define.

2003-10-22  Alexandre Oliva  <aoliva@redhat.com>,
	    Michael Snyder  <msnyder@redhat.com>

	* sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New.
	(EF_SH_MERGE_MACH): Combine them.

2003-10-18  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmix.h (R_MMIX_PUSHJ_STUBBABLE): New reloc number.
	(_bfd_mmix_before_linker_allocation): Rename from
	_bfd_mmix_prepare_linker_allocated_gregs.
	(_bfd_mmix_after_linker_allocation): Rename from
	_bfd_mmix_finalize_linker_allocated_gregs.

2003-10-06  Dave Brolley  <brolley@redhat.com>

	* frv.h (EF_FRV_CPU_FR550): New macro.

2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (E_MIPS_ARCH_64R2): New define.

2003-09-23  DJ Delorie  <dj@redhat.com>

	* sh.h (R_SH_SWITCH8, R_SH_GNU_VTINHERIT, R_SH_GNU_VTENTRY,
	R_SH_LOOP_START,R_SH_LOOP_END): Move to "reserved" spaces.
	(R_SH_DIR16, R_SH_DIR8, R_SH_DIR8UL, R_SH_DIR8UW, R_SH_DIR8U,
	R_SH_DIR8SW, R_SH_DIR8S, R_SH_DIR4UL, R_SH_DIR4UW, R_SH_DIR4U,
	R_SH_PSHA, R_SH_PSHL): New.

2003-09-11  James Cownie <jcownie@etnus.com>

	* dwarf2.h: Add HP dwarf extensions from their hacked gdb
	header files (ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz).

2003-09-04  Nick Clifton  <nickc@redhat.com>

	* v850.h (E_V850E1_ARCH): Define.

2003-08-21  James Cownie <jcownie@etnus.com>

	* dwarf2.h: Add PGI dwarf extensions.

2003-08-08 Dmitry Diky <diwil@mail.ru>

	* msp430.h: Add xW42 and xE42 parts. Sort MPU list according to
	gcc order.

2003-08-07  Alan Modra  <amodra@bigpond.net.au>

	* reloc-macros.h (START_RELOC_NUMBERS) : Remove PARAMS macro.  Use
	C90 function definition.  Formatting.
	(RELOC_NUMBER): Remove !__STDC__ code.

2003-07-28  Eric Christopher  <echristo@redhat.com>

	* ppc.h (R_PPC_RELAX32): New. Fake relocation.

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

	* v850.h (SHF_V850_GPREL): New.
	(SHF_V850_EPREL): Likewise.
	(SHF_V850_R0REL): Likewise.

2003-07-09  Alexandre Oliva  <aoliva@redhat.com>

	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
	* mn10300.h: Introduce GOTPC16, GOTOFF24, GOTOFF16 and
	PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32.
	Renumbered all relocs.
	2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
	* mn10300.h (R_MN10300_GOTPC, R_MN10300_GOTOFF,
	R_MN10300_PLT32, R_MN10300_GOT32, R_MN10300_GOT24,
	R_MN10300_GOT16, R_MN10300_COPY, R_MN10300_GLOB_DAT,
	R_MN10300_JMP_SLOT, R_MN10300_RELATIVE): New relocs.

2003-07-09  Alexandre Oliva  <aoliva@redhat.com>

	2000-04-01  Alexandre Oliva  <aoliva@cygnus.com>
	* mn10300.h (E_MN10300_MACH_AM33_2): Renamed from
	E_MN10300_MACH_AM332.
	2000-03-31  Alexandre Oliva  <aoliva@cygnus.com>
	* mn10300.h (E_MN10300_MACH_AM332): Defined.

2003-07-01  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* s390.h (elf_s390_reloc_type): Add long displacement relocations
	R_390_20, R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20.

2003-06-29  Andreas Jaeger  <aj@suse.de>

	* mmix.h: Convert to ISO C90 prototypes.
	* mips.h: Likewise.

2003-06-13  Robert Millan <zeratul2@wanadoo.es>

	* common.h (GNU_ABI_TAG_NETBSD): New tag.
	(GNU_ABI_TAG_FREEBSD): New tag.

2003-06-10  Richard Sandiford  <rsandifo@redhat.com>

	* h8.h (E_H8_MACH_H8300SXN): New flag.

2003-06-03  Nick Clifton  <nickc@redhat.com>

	* v850.h (R_V850_32): Rename to R_V850_ABS32.
	Add R_V850_REL32.

2003-05-15  Roland McGrath  <roland@redhat.com>

	* common.h (NT_AUXV, AT_*): New macros.
	* external.h (Elf32_External_Auxv, Elf64_External_Auxv): New types.
	* internal.h (Elf_Internal_Auxv): New type.

2003-05-14  Michael Snyder  <msnyder@redhat.com>
	From  Bernd Schmidt  <bernds@redhat.com>
	* h8.h (E_H8_MACH_H8300SX): New.

2003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>

	* elf/h8.h (E_H8_MACH_H8300HN, E_H8_MACH_H8300SN): New

2003-04-23  J"orn Rennecke <joern.rennecke@superh.com>

	* common.h (EM_SH): Amend comment to refer to SuperH.

2003-04-22  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* common.h: Replace references to Mitsubishi M32R with
	references to Renesas M32R.

2003-04-15  Rohit Kumar Srivastava <rohits@kpitcummins.com>

	* common.h: Replace occurrances of 'Hitachi' with 'Renesas'.

2003-04-01  Bob Wilson  <bob.wilson@acm.org>

	* elf/common.h (EM_XTENSA_OLD): Define.
	* elf/xtensa.h: New file.

2003-04-01  Nick Clifton  <nickc@redhat.com>

	* arm.h (ARM_NOTE_SECTION): Include .gnu in the string.

2003-03-25  Stan Cox   <scox@redhat.com>
	    Nick Clifton  <nickc@redhat.com>

	Contribute support for Intel's iWMMXt chip - an	ARM variant:

	* arm.h (ARM_NOTE_SECTION): Define.

2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
	and SH2E & SH4 merge to SH4, not SH2E.

2003-02-21  Ian Wienand  <ianw@gelato.unsw.edu.au>

	* ia64.h (SHT_IA_64_LOPSREG, SHT_IA_64_HIPSREG,
	SHT_IA_64_PRIORITY_INIT): Define.

2003-02-18  Alan Modra  <amodra@bigpond.net.au>

	* ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC.

	* ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc.
	(IS_PPC_TLS_RELOC): Define.

2003-02-10  Nick Clifton  <nickc@redhat.com>

	* arm.h (EF_ARM_MAVERICK_FLOAT): Define.

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

	* ppc.h: Add TLS relocs.  Format.
	* ppc64.h: Likewise.

2003-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* mips.h (EF_MIPS_XGOT): Define.

2003-01-24  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* s390.h: Add s390 TLS relocations.

2003-01-23  Nick Clifton  <nickc@redhat.com>

	* Add sh2e support:

	2002-04-02  Alexandre Oliva  <aoliva@redhat.com>

		* sh.h (EF_SH_MERGE_MACH): Handle SH2E.

	2002-04-02  Elena Zannoni  <ezannoni@redhat.com>

		* sh.h (EF_SH2E): New.

2003-01-23  Alan Modra  <amodra@bigpond.net.au>

	* sh.h: Split out various bits to bfd/elf32-sh64.h.

2003-01-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* s390.h: Rename R_390_GOTOFF to R_390_GOTOFF32. Add new gotoff,
	gotplt and pltoff relocations.

2003-01-17  Alan Modra  <amodra@bigpond.net.au>

	* common.h: Formatting, typo fixes.
	(DT_ENCODING): Correct value.

2003-01-17  Fabio Alemagna  <falemagn@aros.org>

	* common.h (ELFOSABI_AROS): Define.
	(ELFOSABI_OPENVMS): Likewise.
	(ELFOSABI_NSK): Likewise.

2003-01-16  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h: Split out ppc64 definitions to..
	* pcc64.h: ..here.  New file.
	(R_PPC64_REL30): Rename from R_PPC64_ADDR30.

2003-01-13 Dmitry Diky <diwil@mail.ru>

	* elf/common.h (EM_MSP430): Change e_machine value to officially
	assigned.

2003-01-02  Ben Elliston  <bje@redhat.com>

	* common.h (EM_IQ2000): Define.
	* iq2000.h: New file.

2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (E_MIPS_ARCH_32R2): New define.

2002-12-24    Dmitry Diky <diwil@mail.ru>

	* common.h: Define msp430 machine numbers.
	* msp430.h: New file.  Define msp430 relocs.

2002-12-20  DJ Delorie  <dj@redhat.com>

	* xstormy16.h: Add XSTORMY16_12.

2002-12-16  Andrew MacLeod  <amacleod@redhat.com>

	* xstormy16.h (START_RELOC_NUMBERS) Add relocation numbers
	for R_XSTORMY16_LO16 and R_XSTORMY16_HI16.

2002-12-10  James Cownie <jcownie@etnus.com>

	* dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type,
	DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc):
	Define.

2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
	(EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
	(EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.

2002-11-30  Alan Modra  <amodra@bigpond.net.au>

	* mmix.h: Replace boolean with bfd_boolean.
	* sh.h: Likewise.

2002-11-28  Alan Modra  <amodra@bigpond.net.au>

	* internal.h (elf32_internal_ehdr, Elf32_Internal_Ehdr,
	elf64_internal_ehdr, Elf64_Internal_Ehdr, elf32_internal_phdr,
	Elf32_Internal_Phdr, elf64_internal_phdr, Elf64_Internal_Phdr,
	elf32_internal_shdr, Elf32_Internal_Shdr, elf64_internal_shdr,
	Elf64_Internal_Shdr, elf32_internal_sym, elf64_internal_sym,
	Elf32_Internal_Sym, Elf64_Internal_Sym, Elf32_Internal_Note,
	elf32_internal_note, elf32_internal_rel, Elf32_Internal_Rel,
	elf64_internal_rel, Elf64_Internal_Rel, elf32_internal_rela,
	elf64_internal_rela, Elf32_Internal_Rela, Elf64_Internal_Rela,
	elf32_internal_dyn, elf64_internal_dyn, Elf32_Internal_Dyn,
	Elf64_Internal_Dyn, elf32_internal_verdef, elf64_internal_verdef,
	elf32_internal_verdaux, elf64_internal_verdaux, elf32_internal_verneed,
	elf64_internal_verneed, elf32_internal_vernaux, elf64_internal_vernaux,
	elf32_internal_versym, elf64_internal_versym, Elf32_Internal_Verdef,
	Elf64_Internal_Verdef, Elf32_Internal_Verdaux, Elf64_Internal_Verdaux,
	Elf32_Internal_Verneed, Elf64_Internal_Verneed, Elf32_Internal_Vernaux,
	Elf64_Internal_Vernaux, Elf32_Internal_Versym, Elf64_Internal_Versym,
	Elf32_Internal_Syminfo, Elf64_Internal_Syminfo): Delete.
	(Elf_Internal_Rel): Delete.

2002-10-11  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sh.h: Add SH TLS relocs.

2002-09-30  Gavin Romig-Koch  <gavin@redhat.com>
	    Ken Raeburn  <raeburn@cygnus.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Eric Christopher  <echristo@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>

	* mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New.

2002-09-12  Roland McGrath  <roland@redhat.com>

	* dwarf2.h: Updates from GCC version of thie file:
	(enum dwarf_location_atom): DW_OP_calli -> DW_OP_call_ref.
	Add DW_OP_GNU_push_tls_address.
	(DW_OP_lo_user): Change to 0xe0.

2002-08-28  Catherine Moore  <clm@redhat.com>

	* elf/v850.h (R_V850_LONGCALL, R_V850_ALIGN,
	R_V850_LONGJUMP): New relocations.

2002-08-15  Alan Modra  <amodra@bigpond.net.au>

	* i370.h: Define relocs using reloc-macros.h.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* m68hc11.h (E_M68HC12_BANKS, E_M68HC11_I32, E_M68HC11_F64,
	EF_M68HC11_ABI): Define for ABI specification.
	(STO_M68HC12_FAR, STO_M68HC12_INTERRUPT): Symbol flags for
	linker and debugger.
	(R_M68HC11_24, R_M68HC11_LO16, R_M68HC11_PAGE): New relocs.
	(R_M68HC11_RL_JUMP, R_M68HC11_RL_GROUP): New reloc for linker
	relaxation.

2002-07-15  Denis Chertykov  <denisc@overta.ru>
	    Frank Ch. Eigler  <fche@redhat.com>
	    Ben Elliston  <bje@redhat.com>
	    Alan Lehotsky  <alehotsky@cygnus.com>
	    John Healy  <jhealy@redhat.com>
	    Graham Stott  <grahams@redhat.com>
	    Jeff Johnston  <jjohnstn@redhat.com>

	* common.h (EM_IP2K): New macro.
	(EM_IP2K_OLD): New macro.
	* ip2k.h: New file.

2002-07-01  Matt Thomas  <matt@3am-software.com>

	* vax.h: Rename EF_* to EF_VAX_*.

2002-06-18  Dave Brolley  <brolley@redhat.com>

	From Catherine Moore, Michael Meissner, Dave Brolley:
	* common.h (EM_CYGNUS_FRV): New macro.
	* frv.h: New file.

2002-06-06  Lars Brinkhoff  <lars@nocrew.org>

	* common.h: Change registry@sco.com to registry@caldera.com.
	(EM_PDP10, EM_PDP11): Define.

2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* sh.h (_bfd_sh64_crange_qsort_cmpb, _bfd_sh64_crange_qsort_cmpl)
	(_bfd_sh64_crange_bsearch_cmpb, _bfd_sh64_crange_bsearch_cmpl): New
	prototypes.

2002-06-01  Richard Henderson  <rth@redhat.com>

	* alpha.h (LITUSE_ALPHA_ADDR, LITUSE_ALPHA_BASE, LITUSE_ALPHA_BYTOFF,
	LITUSE_ALPHA_JSR, LITUSE_ALPHA_TLSGD, LITUSE_ALPHA_TLSLDM): New.

2002-05-30  Richard Henderson  <rth@redhat.com>

	* alpha.h (R_ALPHA_TLSGD, R_ALPHA_TLSLDM, R_ALPHA_DTPMOD64,
	R_ALPHA_GOTDTPREL, R_ALPHA_DTPREL64, R_ALPHA_DTPRELHI,
	R_ALPHA_DTPRELLO, R_ALPHA_DTPREL16, R_ALPHA_GOTTPREL, R_ALPHA_TPREL64,
	R_ALPHA_TPRELHI, R_ALPHA_TPRELLO, R_ALPHA_TPREL16): New.

2002-05-29  Matt Thomas  <matt@3am-software.com>

	* vax.h: New file

2002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>

	* common.h (EM_DLX): Define.
	* dlx.h: New file.

2002-05-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* common.h (NT_GNU_ABI_TAG): Define.
	(GNU_ABI_TAG_LINUX): Define.
	(GNU_ABI_TAG_HURD): Define.
	(GNU_ABI_TAG_SOLARIS): Define.
	(NT_NETBSD_IDENT): Define.
	(NT_FREEBSD_ABI_TAG): Define.

2002-04-24  Elena Zannoni  <ezannoni@redhat.com>

	* dwarf2.h: Add DW_AT_GNU_vector.

2002-02-13  Matt Fredette  <fredette@netbsd.org>

	* m68k.h (EF_M68000): Define.

2002-02-12  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define.

2002-02-09  Richard Henderson  <rth@redhat.com>

	* alpha.h (R_ALPHA_BRSGP): New.

2002-02-08  Alexandre Oliva  <aoliva@redhat.com>

	Contribute sh64-elf.
	2002-01-23  Alexandre Oliva  <aoliva@redhat.com>
	* sh.h (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
	R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
	R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
	R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
	R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
	R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
	R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
	R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8,
	R_SH_GOTPLT10BY8, R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64,
	R_SH_RELATIVE64): New relocs.
	(R_SH_FIRST_INVALID_RELOC_4): Adjust.
	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
	* sh.h: Renumbered and renamed some SH5 relocations to match
	official numbers and names; moved unmaching ones to the range
	0xf2-0xff.
	2001-01-06  Hans-Peter Nilsson  <hpn@cygnus.com>
	* sh.h (sh64_get_contents_type): Declare.
	(sh64_address_is_shmedia): Likewise.
	2000-12-30  Hans-Peter Nilsson  <hpn@cygnus.com>
	* sh.h (sh64_elf_crange): New type.
	(struct sh64_section_data): New.
	(sh64_elf_section_data): New macro.
	(EF_SH5): Rename back from EF_SH64.
	2000-12-18  Hans-Peter Nilsson  <hpn@cygnus.com>
	* sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED,
	SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE,
	SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET,
	SH64_CRANGE_CR_TYPE_OFFSET): New macros.
	2000-12-12  Hans-Peter Nilsson  <hpn@cygnus.com>
	* sh.h (EF_SH64): Don't define EF_SH64_ABI64.
	2000-11-27  Hans-Peter Nilsson  <hpn@cygnus.com>
	* sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete.
	(EF_SH64_ABI64): New.
	2000-11-23  Hans-Peter Nilsson  <hpn@cygnus.com>
	* sh.h (EF_SH64): Rename from EF_SH5.
	(EF_SH64_32BIT_ABI): New.
	(EF_SH64_64BIT_ABI): New.
	(R_SH_PT_16, R_SH_SHMEDIA_CODE
	R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
	R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
	R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
	R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
	R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL): New
	relocs.
	2000-09-01  Ben Elliston  <bje@redhat.com>
	* sh.h (EF_SH5): Define.

2002-02-01  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmix.h: Tweak comments.
	(MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New.
	[BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs,
	_bfd_mmix_finalize_linker_allocated_gregs,
	_bfd_mmix_check_all_relocs): Provide prototypes.

2002-01-31  Ivan Guzvinec  <ivang@opencores.org>

	* or32.h: New file.
	* common.h: Add support for or32 targets.

2002-01-28  Jason Merrill  <jason@redhat.com>

	* dwarf2.h: Sync with gcc version.

2002-01-16  Alan Modra  <amodra@bigpond.net.au>

	* ppc.h (DT_PPC64_GLINK): Define.

2002-01-15  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.

2002-01-09  Jason Thorpe  <thorpej@wasabisystems.com>

	* common.h: Update copyright years.
	(NT_NETBSDCORE_PROCINFO): Define.
	(NT_NETBSDCORE_FIRSTMACH): Define.

2002-01-06  Steve Ellcey  <sje@cup.hp.com>

	* ia64.h (ELF_STRING_ia64_unwind_hdr): New Macro for HP-UX.
	(SHT_IA_64_HP_OPT_ANOT): Ditto
	(PT_IA_64_HP_OPT_ANOT): Ditto
	(PT_IA_64_HP_HSL_ANOT): Ditto
	(PT_IA_64_HP_STACK): Ditto
	(SHN_IA_64_ANSI_COMMON): Ditto

2001-12-17  Alan Modra  <amodra@bigpond.net.au>

	* external.h (Elf_External_Sym_Shndx): Declare.
	* internal.h (struct elf_internal_sym <st_shndx>): Make it an
	unsigned int.
	* common.h (SHN_BAD): Define.

2001-12-13  Jakub Jelinek  <jakub@redhat.com>

	* elf/common.h (PT_GNU_EH_FRAME): Define.

2001-12-11  Alan Modra  <amodra@bigpond.net.au>

	* common.h (SHN_XINDEX): Comment typo fix.
	* internal.h (Elf_Internal_Ehdr): Change existing "unsigned short"
	size, count and index fields to "unsigned int".

2001-12-07  Geoffrey Keating  <geoffk@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* common.h (EM_XSTORMY16): Define.
	* xstormy16.h: New file.

2001-11-15  Alan Modra  <amodra@bigpond.net.au>

	* common.h (NT_ARCH): Define.  Remove incorrect comment.

2001-11-11  Geoffrey Keating  <geoffk@redhat.com>

	* dwarf2.h (dwarf_line_number_ops): Add DWARF 3 opcodes.

2001-10-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmix.h: New file.

2001-10-23  Alan Modra  <amodra@bigpond.net.au>

	* internal.h: White space changes to keep lines under 80 chars.

2001-10-16  Jeff Holcomb  <jeffh@redhat.com>

	* internal.h (elf_internal_shdr): Make contents a unsigned char *.

2001-09-18  Alan Modra  <amodra@bigpond.net.au>

	* internal.h (elf_internal_rela): Make r_addend a bfd_vma.

2001-09-13  Alexandre Oliva  <aoliva@redhat.com>

	* common.h (EM_OPENRISC_OLD): Renamed the old EM_OPENRISC entry.

2001-09-12  Alexandre Oliva  <aoliva@redhat.com>

	* common.h (EM_AVR_OLD): Renamed from...
	(EM_AVR): this, redefined as in the current ELF standard.
	(EM_PJ_OLD): Renamed from...
	(EM_PJ): this, redefined as in the current ELF standard.
	(EM_R30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
	EM_MN10200, EM_OPENRISC, EM_ARC_A5, EM_XTENSA): Defined as in
	the current ELF standard.
	(EM_CYGNUS_ARC): Removed, unused for a long time.

2001-09-04  Richard Henderson  <rth@redhat.com>

	* alpha.h (R_ALPHA_OP*, R_ALPHA_IMMED*, R_ALPHA_GPVALUE): Remove.
	(R_ALPHA_GPREL16): Rename from R_ALPHA_IMMED_GP_16.

2001-08-30  Eric Christopher  <echristo@redhat.com>

	* mips.h: Remove E_MIPS_MACH_MIPS32_4K.

2001-08-29  Jeff Law <law@redhat.com>

	* h8.h (EF_H8_MACH): New mask for encoded machine type.
	(E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
	machine types.

2001-08-26  J"orn Rennecke <amylaar@redhat.com>

	* h8.h: New file.

2001-08-27  Staffan Ulfberg  <staffanu@swox.se>

	* ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2.

2001-06-30  Daniel Berlin  <dan@cgsoftware.com>

	* dwarf2.h: Remerge with gcc version,
	including all new DWARF 2.1 extensions.

2001-06-29  James Cownie <jcownie@etnus.com>

	* dwarf2.h: Add DWARF 2.1 attribues.

2001-06-15  Per Bothner  <per@bothner.com>

	* dwarf2.h:  Partial merge with gcc version.
	(enum dwarf_descrim_list):  Fix typo -> dwarf_discrim_list.
	(DW_LANG_Java):  Use value from dwarf 2.1 draft (also used in gcc).

2001-05-15  Ralf Baechle  <ralf@gnu.org>

	* common.h: Remove definition of EM_MIPS_RS4_BE.  The constant was
	never in active use and is used otherwise by the ABI.

2001-05-11  Jakub Jelinek  <jakub@redhat.com>

	* ia64.h (ELF_STRING_ia64_unwind_once): Define.
	(ELF_STRING_ia64_unwind_info_once): Define.

2001-05-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* external.h: Fix typo.
	* mips.h: Add/Extend many comments with reference to the MIPS ELF64
	spec v. 2.4, available at e.g.
	ftp://oss.sgi.com/pub/linux/mips/doc/ABI/ELF64.ps.
	(EF_MIPS_UCODE): Define.
	(EF_MIPS_OPTIONS_FIRST): Define.
	(EF_MIPS_ARCH_ASE): Define.
	(EF_MIPS_ARCH_ASE_MDMX): Define.
	(EF_MIPS_ARCH_ASE_M16): Define.
	(SHF_MIPS_ADDR): Renamed SHF_MIPS_ADDR32.
	(SHF_MIPS_STRING): Renamed SHF_MIPS_ADDR64.
	(SHF_MIPS_NODUPES): Define.
	(ELF64_MIPS_R_SSYM): New MIPS ELF 64 relocation info access macro.
	(ELF64_MIPS_R_TYPE3): Likewise.
	(ELF64_MIPS_R_TYPE2): Likewise.
	(ELF64_MIPS_R_TYPE): Likewise.
	(OHW_R10KLDL): Define.

2001-04-24  Todd Fries  <todd@fries.net>

	* sparc.h: Fix typo.

2001-04-20  Johan Rydberg  <jrydberg@opencores.org>

	* openrisc.h: New file.
	* common.h (EM_OPENRISC): New constant.

2001-04-23  Bo Thorsen  <bo@suse.de>

	* x86-64.h: Add vtable support.

2001-03-23  Nick Clifton  <nickc@redhat.com>

	* mips.h: Remove extraneous whitespace.

2001-03-22  Hans-Peter Nilsson  <hp@axis.com>

	* cris.h: Add leading comment about PC-relative location.
	(R_CRIS_COPY, R_CRIS_GLOB_DAT, R_CRIS_JUMP_SLOT, R_CRIS_RELATIVE,
	R_CRIS_16_GOT, R_CRIS_32_GOT, R_CRIS_16_GOTPLT, R_CRIS_32_GOTPLT,
	R_CRIS_32_GOTREL, R_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_PCREL):
	New relocs.

2001-02-27  Philip Blundell  <pb@futuretv.com>

	* arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01.
	(EF_PIC, et al.): Rename to EF_ARM_xx.

2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* common.h: Add linux target for S/390.
	* s390.h: New file.

2001-01-11  Peter Targett  <peter.targett@arccores.com>

	* arc.h (E_ARC_MACH_ARC5, E_ARC_MACH_ARC6, E_ARC_MACH_ARC7,
	E_ARC_MACH_ARC8): New definitions for cpu types.

	* common.h (EM_ARC): Change comment.

2000-12-12  Nick Clifton  <nickc@redhat.com>

	* mips.h: Fix formatting.

2000-12-11  Jeffrey A Law  (law@cygnus.com)

	* hppa.h (DT_HP_*): Define relative to OLD_DT_LOOS for hpux
	compatibility.

2000-10-16  Chris Demetriou  <cgd@sibyte.com>

	* mips.h (E_MIPS_ARCH_32): New constant.
	(E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the
	former with the latter.

	* mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions.

	* mips.h (E_MIPS_MACH_SB1): New constant.

2000-11-30  Jan Hubicka  <jh@suse.cz>

	* common.h (EM_X86_64): New macro.
	* x86-64.h: New file.

2000-11-27  Hans-Peter Nilsson  <hp@axis.com>

	* common.h (e_machine numbers): Clarify comments to describe how
	EM_* constants are assigned.  Move EM_PJ from official section to
	ad-hoc section.
	(EM_CRIS): Correct comment to match official description.
	(EM_MMIX): Ditto.

2000-11-22  Nick Clifton  <nickc@redhat.com>

	* common.h (EM_JAVELIN): New machine number.
	(EM_FIREPATH): New machine number.
	(EM_ZSP): New machine number.
	(EM_MMIX): New machine number.
	(EM_HUANY): New machine number.
	(EM_PRISM): New machine number.
	(SHT_GROUP): New section type.
	(SHT_SYMTAB_SHNDX): New section type.
	(SHF_GROUP): New section flag.
	(SHN_XINDEX): New section index.
	(GRP_COMDAT): New section group flag.

2000-11-20  H.J. Lu  <hjl@gnu.org>

	* common.h (ELFOSABI_MONTEREY): Renamed to ...
	(ELFOSABI_AIX): This.

2000-11-16  Richard Henderson  <rth@redhat.com>

	Update relocations per August psABI docs.
	* ia64.h (R_IA64_SEGBASE): Remove.
	(R_IA64_LTV*): Renumber to 0x74 to 0x77.
	(R_IA64_EPLTMSB, R_IA64_EPLTLSB): Remove.
	(R_IA64_TPREL14, R_IA64_TPREL64I): New.
	(R_IA64_DTPMOD*): New.
	(R_IA64_DTPREL*): New.

2000-09-29  Hans-Peter Nilsson  <hp@axis.com>

	* cris.h (EF_CRIS_UNDERSCORE): New.

2000-09-27  Alan Modra  <alan@linuxcare.com.au>

	* hppa.h (R_PARISC_DIR14F): Add.

2000-09-14  Alexandre Oliva  <aoliva@redhat.com>

	* sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
	R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Change
	numbers to the range from 160 to 167.
	(R_SH_FIRST_INVALID_RELOC): Adjust.
	(R_SH_FIRST_INVALID_RELOC_2, R_SH_LAST_INVALID_RELOC_2):
	New relocs to fill in the gap.

2000-09-13  Anders Norlander  <anorland@acc.umu.se>

	* mips.h (E_MIPS_MACH_4K): New define.

2000-09-05  Alan Modra  <alan@linuxcare.com.au>

	* hppa.h: Fix a comment.
	(R_PARISC_PCREL12F): Define.
	(R_PARISC_GNU_VTENTRY): Define.
	(R_PARISC_GNU_VTINHERIT): Define.

2000-09-01  Alexandre Oliva  <aoliva@redhat.com>

	* sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
	R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): New relocs.
	(R_SH_FIRST_INVALID_RELOC): Adjust.

2000-08-14  Jim Wilson  <wilson@cygnus.com>

	* ia64.h (EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP,
	EF_IA_64_NOFUNCDESC_CONS_GP, EF_IA_64_ABSOLUTE): Define.

2000-08-07  Nick Clifton  <nickc@cygnus.com>

	* ppc.h: Remove spurious CYGNUS LOCAL comments.
	* v850.h: Likewise.

2000-07-22  Jason Eckhardt  <jle@cygnus.com>

	* i860.h: New file.
	(elf_i860_reloc_type): Defined ELF32 i860 relocations.

2000-07-20  Hans-Peter Nilsson  <hp@axis.com>

	common.h (EM_CRIS): New machine number.
	cris.h: New file.

2000-07-19  H.J. Lu  <hjl@gnu.org>

	* common.h (DF_1_NODEFLIB): Renamed from DF_1_NODEPLIB.

2000-07-19  H.J. Lu  <hjl@gnu.org>

	* common.h (DT_CHECKSUM): Set to 0x6ffffdf8.
	(DTF_1_CONFEXP): It is 0x00000002 as suspected.

2000-07-19  H.J. Lu  <hjl@gnu.org>

	* common.h (DT_FEATURE): Renamed from DT_FEATURE_1.
	(DT_CONFIG): New. From Solaris 8.
	(DT_DEPAUDIT): Likewise.
	(DT_AUDIT): Likewise.
	(DT_PLTPAD): Likewise.
	(DT_MOVETAB): Likewise.
	(DF_1_NODEPLIB): Likewise.
	(DF_1_NODUMP): Likewise.
	(DF_1_CONLFAT): Likewise.
	(DT_CHECKSUM): Likewise. FIXME. Check the value on Solaris 8.
	(DTF_1_CONFEXP): Likewise.

2000-07-18  H.J. Lu  <hjl@gnu.org>

	* common.h (DT_FLAGS_1): Renamed from DT_1_FLAGS.

2000-07-12  Alan Modra  <alan@linuxcare.com.au>

	* internal.h (struct elf_internal_sym): Update comment for st_other.

2000-07-10  Alan Modra  <alan@linuxcare.com.au>

	* hppa.h: Add comments to all the relocs.

2000-06-26  Marek Michalkiewicz  <marekm@linux.org.pl>

	* avr.h (E_AVR_MACH_AVR5): Define.

2000-06-18  Stephane Carrez  <stcarrez@worldnet.fr>

	* m68hc11.h: New file, definitions for the Motorola 68hc11.

2000-06-06  Alan Modra  <alan@linuxcare.com.au>

	* reloc-macros.h (START_RELOC_NUMBERS): Don't define initial dummy
	-1 valued enum.
	(RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC): Append rather than
	prepend comma.
	(END_RELOC_NUMBERS): Give macro an arg to define as last enum.

	* alpha.h (R_ALPHA_max): Define via END_RELOC_NUMBERS rather than
	with EMPTY_RELOC.
	* arc.h (R_ARC_max): Likewise.
	* avr.h (R_AVR_max): Likewise.
	* fr30.h (R_FR30_max): Likewise.
	* hppa.h (R_PARISC_UNIMPLEMENTED): Likewise.
	* i960.h (R_960_max): Likewise.
	* m32r.h (R_M32R_max): Likewise.
	* m68k.h (R_68K_max): Likewise.
	* mcore.h (R_MCORE_max): Likewise.
	* mn10300.h (R_MN10300_MAX): Likewise.
	* pj.h (R_PJ_max): Likewise.
	* ppc.h (R_PPC_max): Likewise.
	* sh.h (R_SH_max): Likewise.
	* sparc.h (R_SPARC_max): Likewise.
	* v850.h (R_V850_max): Likewise.

	* arm.h (R_ARM_max): Define via END_RELOC_NUMBERS.
	* d10v.h (R_D10V_max): Likewise.
	* d30v.h (R_D30V_max): Likewise.
	* ia64.h (R_IA64_max): Likewise.
	* mips.h (R_MIPS_maxext): Likewise.
	* mn10200.h (R_MN10200_max): Likewise.

	* i386.h (R_386_max): Remove old RELOC_NUMBER definition, and
	define via END_RELOC_NUMBERS.

2000-06-03  Alan Modra  <alan@linuxcare.com.au>

	* reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for
	!__STDC__ case.
	(RELOC_NUMBER): Use ansi stringify if ALMOST_STDC defined.

2000-05-22  Richard Henderson  <rth@cygnus.com>

	* ia64.h (R_IA64_PCREL60B, R_IA64_PCREL21BI): New.
	(R_IA64_PCREL22, R_IA64_PCREL64I): New.

2000-05-02  H.J. Lu  <hjl@gnu.org>

	* common.h (ELFOSABI_NONE): Renamed from ELFOSABI_SYSV.
	(ELFOSABI_MODESTO): Defined.
	(ELFOSABI_OPENBSD): Likewise.

2000-04-21  Richard Henderson  <rth@cygnus.com>
	    David Mosberger  <davidm@hpl.hp.com>

	* ia64.h: New file.

2000-04-14  H.J. Lu  <hjl@gnu.org>

	* common.h (ELFOSABI_TRUE64): Renamed to ELFOSABI_TRU64.

2000-04-14  H.J. Lu  <hjl@gnu.org>

	* common.h (ELFOSABI_NETBSD): Defined.
	(ELFOSABI_HURD): Likewise.
	(ELFOSABI_SOLARIS): Likewise.
	(ELFOSABI_MONTEREY): Likewise.
	(ELFOSABI_IRIX): Likewise.
	(ELFOSABI_FREEBSD): Likewise.
	(ELFOSABI_TRUE64): Likewise.

2000-04-07  Nick Clifton  <nickc@cygnus.com>

	* arm-oabi.h: Delete.
	* arm.h: Merge in definitions of old reloc numbers from
	arm-oabi.h.

2000-04-06  Nick Clifton  <nickc@cygnus.com>

	* arm.h (EF_ARM_SYMSARESORTED): Define.
	(EF_ARM_EABIMASK): Define.
	(EF_ARM_EABI_VERSION): Define.
	(EF_ARM_EABI_UNKNOWN): Define.
	(EF_ARM_EABI_VER1): Define.
	(PF_ARM_PI): Define.
	(PF_ARM_ABS): Define.

2000-04-05  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.

2000-03-27  Denis Chertykov  <denisc@overta.ru>

	* avr.h: New file.  AVR ELF support for BFD.
	* common.h: Add AVR magic number.

2000-03-10  Geoffrey Keating  <geoffk@cygnus.com>

	* mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16,
	R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation
	numbers.

2000-02-23  Linas Vepstas <linas@linas.org>

	* i370.h: New file.

2000-02-22  Nick Clifton  <nickc@cygnus.com>

	* common.h (ELF_ST_OTHER): Remove definition.
	(ELF32_ST_OTHER): Remove definition.
	(ELF64_ST_OTHER): Remove definition.

2000-02-22  H.J. Lu  <hjl@gnu.org>

	* common.h (ELFOSABI_LINUX): Define.

2000-02-17  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros.
	(EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise.
	(EF_SH_HAS_FP, EF_SH3E, EF_SH4, EF_SH_MERGE_MACH): Likewise.

2000-02-03  H.J. Lu  <hjl@gnu.org>

	* arm-oabi.h: Duplicate changes made to arm.h on Jan. 27,
	2000 by Thomas de Lellis  <tdel@windriver.com>.

2000-01-27  Thomas de Lellis  <tdel@windriver.com>

	* arm.h (STT_ARM_TFUNC): Define in terms of STT_LOPROC.
	(STT_ARM_16BIT): New flag.  Denotes a label that was defined in
	Thumb block but was does not identify a function.

2000-01-20  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_MCORE): Fix spelling of Motorola.
	* mcore.h (EM_MCORE): Fix spelling of Motorola.

2000-01-13  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_S370): Change comment - this is now the IBM
	System/370.
	(EM_IA_64): Change comment - this is now the IA-64.

2000-01-11  Nick Clifton  <nickc@cygnus.com>

	* common.h (DT_ENCODING): Fix definition of this value.
	(DT_LOOS): Fix definition of this value.
	(DT_HIOS): Fix definition of this value.
	(OLD_DT_LOOS): Value of DT_LOOS before Oct 4, 1999 draft
	of ELF spec changed it.
	(OLD_DT_HIOS): Value of DT_HIOS before Oct 4, 1999 draft
	of ELF spec changed it.

2000-01-10  Egor Duda  <deo@logos-m.ru>

	* common.h (NT_WIN32PSTATUS): Define.  (cygwin elf core dumps).

1999-12-28  Nick Clifton  <nickc@cygnus.com>

	* mips.h (STO_*): Redefine in terms of STV_* values now in
	common.h.

1999-12-27  Nick Clifton  <nickc@cygnus.com>

	* common.h: Upgrade to match Oct4, 1999 Draft ELF ABI Spec.
	(EM_MIPS_RS3_LE): New machine number.
	(EM_RCE): New machine number.
	(EM_MMA): New machine number.
	(EM_PCP): New machine number.
	(EM_NCPU): New machine number.
	(EM_NDR1): New machine number.
	(EM_STARCORE): New machine number.
	(EM_ME16): New machine number.
	(EM_ST100): New machine number.
	(EM_TINYJ): New machine number.
	(EM_FX66): New machine number.
	(EM_ST9PLUS): New machine number.
	(EM_ST7): New machine number.
	(EM_68HC16): New machine number.
	(EM_68HC11): New machine number.
	(EM_68HC08): New machine number.
	(EM_68HC05): New machine number.
	(EM_SVX): New machine number.
	(EM_VAX): New machine number.
	(PF_MASKOS): Change value.
	(SHT_INIT_ARRAY): New value for sh_type field.
	(SHT_FINI_ARRAY): New value for sh_type field.
	(SHT_PREINIT_ARRAY): New value for sh_type field.
	(SHT_HIUSER): Change value.
	(SHF_MERGE): New valye for sh_flags field.
	(SHF_STRINGS): New valye for sh_flags field.
	(SHF_INFO_LINK): New valye for sh_flags field.
	(SHF_OS_NONCONFORMING): New valye for sh_flags field.
	(SHF_MASKOS): Change value.
	(ELF_ST_VISIBILITY): New macro.
	(ELF_ST_OTHER): New macro.
	(STT_COMMON): New symbol type.
	(STV_DEFAULT): Value for symbol visibility.
	(STV_INTERNAL): Value for symbol visibility.
	(STV_HIDDEN): Value for symbol visibility.
	(STV_PROTECTED): Value for symbol visibility.
	(DT_RUNPATH): New dynamic section tag.
	(DT_FLAGS): New dynamic section tag.
	(DT_ENCODING): New dynamic section tag.
	(DT_PREINIT_ARRAY): New dynamic section tag.
	(DT_PREINIT_ARRAYSZ): New dynamic section tag.
	(DT_LOPROC): New dynamic section tag index.
	(DT_HIPROC): New dynamic section tag index.
	(DF_ORIGIN): Value for dynamic section flag.
	(DF_SYMBOLIC): Value for dynamic section flag.
	(DF_TEXTREL): Value for dynamic section flag.
	(DF_BIND_NOW): Value for dynamic section flag.

1999-12-09  Fred Fish  <fnf@cygnus.com>

	* i960.h (reloc-macros.h):  Include using relative dir elf/.
	* i386.h (reloc-macros.h):  Include using relative dir elf/.
	* hppa.h (reloc-macros.h):  Include using relative dir elf/.

1999-12-07  Jim Blandy  <jimb@cygnus.com>

	* common.h (NT_PRXFPREG): New definition.

Wed Dec  1 03:02:15 1999  Jeffrey A Law  (law@cygnus.com)

	* mn10300.h (E_MN10300_MACH_AM33): Define.

Mon Oct 11 22:42:37 1999  Jeffrey A Law  (law@cygnus.com)

	* hppa.h (PF_HP_PAGE_SIZE): Define.
	(PF_HP_FAR_SHARED, PF_HP_NEAR_SHARED, PF_HP_CODE): Likewise.
	(PF_HP_MODIFY, PF_HP_LAZYSWAP, PF_HP_SBP): Likewise.

Mon Oct  4 17:42:38 1999  Doug Evans  <devans@canuck.cygnus.com>

	* m32r.h (E_M32RX_ARCH): Define.

1999-09-15  Ulrich Drepper  <drepper@cygnus.com>

	* hppa.h: Add DT_HP_GST_SIZE, DT_HP_GST_VERSION, and DT_HP_GST_HASHVAL.

1999-09-04  Steve Chamberlain  <sac@pobox.com>

	* pj.h: New file.
	* common.h (EM_PJ): Define.

1999-09-02  Ulrich Drepper  <drepper@cygnus.com>

	* hppa.h: Add HPUX specific symbol type definitions.

	* hppa.h: Add HPUX specific dynamic and program header table
	specific definitions.

1999-08-31  Scott Bambrough <scottb@netwinder.org>

	* common.h (NT_TASKSTRUCT): Define.

1999-07-16  Jakub Jelinek  <jj@ultra.linux.cz>

	* sparc.h (EF_SPARC_SUN_US3): Define in Cheetah extensions
	flag (as per SCD2.4.1).

1999-07-16  Jakub Jelinek  <jj@ultra.linux.cz>

	* sparc.h (ELF64_R_TYPE_DATA): Only use ELF64_R_TYPE bits, not
	ELF64_R_SYM bits.

1999-06-21  Philip Blundell  <pb@nexus.co.uk>

	* arm.h (EF_SOFT_FLOAT, F_SOFT_FLOAT): Define.

1999-07-13  Andreas Schwab  <schwab@suse.de>

	* m68k.h (EF_CPU32): Move definition inside multiple inclusion
	guard.

1999-07-08  Richard Henderson  <rth@cygnus.com>

	* sparc.h (ELF64_R_TYPE_DATA): Sign extend the value.
	(ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data.
	(DT_SPARC_PLTFMT): Delete.
	Based on a patch from Jakub Jelinek.

Mon Jun 21 16:36:02 1999  Jeffrey A Law  (law@cygnus.com)

	* hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.

1999-06-10  Jakub Jelinek  <jj@ultra.linux.cz>

	* sparc.h (R_SPARC_max_std): Define.

Wed Jun  9 15:16:34 1999  Jeffrey A Law  (law@cygnus.com)

	* hppa.h: Update with various changes from newest PA ELF
	specifications.

1999-06-03  Ian Lance Taylor  <ian@zembu.com>

	* common.h (EM_PPC64): Define.

1999-06-02  Stu Grossman  <grossman@babylon-5.cygnus.com>

	* dwarf.h: Add LANG_JAVA.
	* dwarf2.h: Add DW_LANG_Java.

1999-05-29  Nick Clifton  <nickc@cygnus.com>

	* common.h (ELFOSABI_ARM): Define.

1999-05-28  Nick Clifton  <nickc@cygnus.com>

	* reloc-macros.h: Update comment.

1999-05-28  Ian Lance Taylor  <ian@zembu.com>

	* i960.h: New file.

1999-05-16  Nick Clifton  <nickc@cygnus.com>

	* mcore.h (R_MCORE_COPY): Define.
	(R_MCORE_GLOB_DAT): Define.
	(R_MCORE_JUMP_SLOT): Define.

1999-05-15  Nick Clifton  <nickc@cygnus.com>

	* mcore.h (R_MCORE_RELATIVE): Define.

1999-05-05  Catherine Moore  <clm@cygnus.com>

	* m68k.h (EF_CPU32): Define.

1999-04-21  Nick Clifton  <nickc@cygnus.com>

	* reloc-macros.h (START_RELOC_NUMBERS): Prepend an underscore to
	fake reloc entry name (if possible), in order to avoid conflicts
	with typedefs of the same name.

1999-04-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* mips.h (EF_MIPS_32BITMODE): New.

1999-04-08  Nick Clifton  <nickc@cygnus.com>

	* mcore.h: New header file.  Defines for Motorola's MCore
	processor.

1999-04-08  Nick Clifton  <nickc@cygnus.com>

	* common.h: Add new constants defined in: "System V Application
	Binary Interface - DRAFT - April 29, 1998" found at the web site:
	http://www.sco.com/developer/gabi/contents.html

	(EM_MMA): Removed.  Replaced with EM_MCORE as Motorolla own this
	value.

1999-03-31  Nick Clifton  <nickc@cygnus.com>

	* reloc-macros.h: Fixed to not generate an enum with a trailing
	comma.

1999-03-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* mips.h (E_MIPS_MACH_5000): New.

1999-03-10  Ulrich Drepper  <drepper@cygnus.com>

	* common.h: Add definitions for a few more Solaris ELF extensions.

Thu Feb 18 18:58:26 1999  Ian Lance Taylor  <ian@cygnus.com>

	* external.h: Only use attribute if __GNUC__ is defined.

1999-02-17  Nick Clifton  <nickc@cygnus.com>

	Patch submitted by: Scott Bambrough <scottb@corelcomputer.com>

	* external.h: struct Elf_External_Versym must be packed on
	ARM.  Code uses sizeof(Elf_External_Versym) and assumes it is
	equal to sizeof(char[2]).  Reported by Jim Pick <jim@jimpick.com>

1999-02-02  Nick Clifton  <nickc@cygnus.com>

	* dwarf2.h (DWARF2_External_ARange): New structure.
	(DWARF2_Internal_ARange): New structure.

Mon Feb  1 11:33:56 1999  Catherine Moore  <clm@cygnus.com>

	* arm.h:  Renumber relocs to conform to standard.
	(EF_NEW_ABI):  Define.
	(EF_OLD_ABI):  Define.
	* arm-oabi.h:  New file.

1999-01-28  Nick Clifton  <nickc@cygnus.com>

	* fr30.h: Add R_FR30_GNU_VT{INHERIT,ENTRY} relocs.

1999-01-27  Nick Clifton  <nickc@cygnus.com>

	* dwarf2.h: Add typedefs for structures found in dwarf2 sections.

1998-12-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* mips.h (E_MIPS_MACH_4111): New.

1998-12-15  Gavin Romig-Koch  <gavin@cygnus.com>

	* mips.h (EF_MIPS_ABI,E_MIPS_ABI_O32,E_MIPS_ABI_O64,
	E_MIPS_ABI_EABI32,E_MIPS_ABI_EABI64):

1998-12-03  Nick Clifton  <nickc@cygnus.com>

	* fr30.h: Add R_FR30_48 reloc.

1998-12-02  Ulrich Drepper  <drepper@cygnus.com>

	* mips.h: Add external data type for conflict section.

	* mips.h: Add more LL_* options from Irix 6.5.

	* mips.h: Add R_MIPS_JALR and adjust R_MIPS_max appropriately.

Mon Nov 30 15:25:58 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (elf_sh_reloc_type): Add R_SH_FIRST_INVALID_RELOC,
	R_SH_LAST_INVALID_RELOC, R_SH_SWITCH8 and R_SH_max.

Tue Nov 10 15:12:28 1998  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_CYGNUS_FR30): Reduce to a 16 bit value.

Tue Nov 10 15:17:28 1998  Catherine Moore  <clm@cygnus.com>

	* d10v.h:  Add vtable relocs.

Wed Nov  4 15:56:50 1998  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_CYGNUS_FR30): New machine number.

	* fr30.h: New file: Definitions for the FR30.

Fri Oct 30 11:54:15 1998  Catherine Moore  <clm@cygnus.com>

	From Philip Blundell <pb@nexus.co.uk>:
	* arm.h (R_ARM_COPY, et al.): New relocs, used by Linux for PIC.
	(EF_ALIGN8): New flag.

Tue Oct 20 11:19:50 1998  Ian Lance Taylor  <ian@cygnus.com>

	* common.h (NT_LWPSTATUS): Close comment accidentally left open.

Mon Oct 19 20:24:11 1998  Catherine Moore  <clm@cygnus.com>

	* sh.h:  Add vtable relocs.

Mon Oct 19 01:44:42 1998  Felix Lee  <flee@cygnus.com>

	* common.h (NT_PSTATUS, NT_FPREGS, NT_PSINFO,
	NT_LWPSTATUS,NT_LWPSINFO): added.
	* internal.h (Elf_Internal_Note): new structure members.

Fri Oct 16 14:11:25 1998  Catherine Moore  <clm@cygnus.com>

	* m32r.h:  Add vtable relocs.

Tue Oct  6 09:22:22 1998  Catherine Moore  <clm@cygnus.com>

	* sparc.h:  Add vtable relocs.

Mon Oct  5 09:39:22 1998  Catherine Moore  <clm@cygnus.com>

	* v850.h:  Add vtable relocs.

Sun Oct  4 21:17:51 1998  Ian Lance Taylor  <ian@cygnus.com>

	* i386.h (R_386_max): Change from 252 to 24.

Mon Sep 21 12:24:44 1998  Catherine Moore  <clm@cygnus.com>

	* i386.h:  Change vtable reloc numbers.

Sun Sep 20 00:54:22 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* m68k.h: Add vtable relocs and R_68K_max.

Tue Sep 15 09:56:49 CDT 1998  Catherine Moore  <clm@cygnus.com>

	* arm.h:  Add vtable relocs.

Mon Aug 31 11:25:27 1998  Catherine Moore  <clm@cygnus.com>

	* arm.h:  Define STT_ARM_TFUNC.  Remove ST_THUMB_xxxx
	definitions.

Sat Aug 29 22:25:51 1998  Richard Henderson  <rth@cygnus.com>

	* i386.h: Add vtable relocs.

1998-08-25 16:42  Ulrich Drepper  <drepper@cygnus.com>

	* common.h: Add SYMINFO_* macros to access Elf*_Syminfo information.

	* external.h: Add Elf_External_Syminfo definition.

	* internal.h: Add Elf_Internal_Syminfo, Elf32_Internal_Syminfo,
	and Elf64_Syminfo definitions.

Sun Aug  9 20:26:49 CDT 1998  Catherine Moore  <clm@cygnus.com>

	* arm.h:  Add ST_THUMB definitions.

Wed Aug  5 15:52:35 1998  Nick Clifton  <nickc@cygnus.com>

	* arm.h: Add ELF header flags to specify compile time optins:
	EF_INTERWORK: New flag.
	EF_APCS_26: New flag.
	EF_APCS_FLOAT: New flag.
	EF_PIC: New flag.

1998-07-31 21:28  Ulrich Drepper  <drepper@cygnus.com>

	* mips.h: Add missing RHF_* constants.

Fri Jul 31 10:01:40 1998 Catherine Moore  <clm@cygnus.com>

	* arm.h: Add R_ARM_THM_PC9 relocation.

1998-07-30 16:25  Ulrich Drepper  <drepper@cygnus.com>

	* common.h: Add new DT_* entries and there flag macros from Solaris.

Tue Jul 28 18:14:07 1998  Stan Cox  <scox@equinox.cygnus.com>

	* sparc.h: (R_SPARC_REV32): Added for little endian data e.g. sparc 86x.

Fri Jul 24 11:22:06 1998  Jeffrey A Law  (law@cygnus.com)

	* mn10300.h: Add R_MN10300_24 relocation.

1998-07-24  Ulrich Drepper  <drepper@cygnus.com>

	* mips.h: Add MIPS64 relocation names and values.

Wed Jul 22 19:29:00 Catherine Moore  <clm@cygnus.com>

	* arm.h: Rename relocations.

1998-07-22  Ulrich Drepper  <drepper@cygnus.com>

	* ppc.h: Define enum as elf_ppc_reloc_type.

Wed Jul 22 16:22:11 1998  Nick Clifton  <nickc@cygnus.com>

	* reloc-macros.h: New file.  Provides relocation macros:
	START_RELOC_NUMBERS, RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC and
	END_RELOC_NUMBERS used by other elf header files.

	* alpha.h: Use reloc-macros.h.
	* arc.h: Use reloc-macros.h.
	* arm.h: Use reloc-macros.h.
	* d10v.h: Use reloc-macros.h.
	* d30v.h: Use reloc-macros.h.
	* hppa.h: Use reloc-macros.h.
	* i386.h: Use reloc-macros.h.
	* m32r.h: Use reloc-macros.h.
	* m68k.h: Use reloc-macros.h.
	* mips.h: Use reloc-macros.h.
	* mn10200.h: Use reloc-macros.h.
	* mn10300.h: Use reloc-macros.h.
	* ppc.h: Use reloc-macros.h.
	* sh.h: Use reloc-macros.h.
	* sparc.h: Use reloc-macros.h.
	* v850.h: Use reloc-macros.h.

1998-07-22 13:07  Ulrich Drepper  <drepper@cygnus.com>

	* mn10300.h: Rewrite relocation definition using macros.
	* mips.h: Likewise.
	* ppc.h: Likewise.
	* alpha.h: Likewise.
	* arm.h: Likewise.
	* d10v.h: Likewise.
	* d30v.h: Likewise.
	* m32r.h: Likewise.
	* m68k.h: Likewise.
	* mn10200.h: Likewise.
	* sh.h: Likewise.
	* sparc.h: Likewise.

1998-07-21 13:07  Ulrich Drepper  <drepper@cygnus.com>

	* arm.h: New file.
	* d10v.h: New file.
	* d30v.h: New file.
	* i386.h: New file.
	* m68k.h: New file.
	* mn10200.h: New file.
	* sh.h: New file.

	* mips.h: Add R_MIPS_* and SHT_MIPS_* entries.

	* mn10300.h: Add R_MN10300_* entries.

	* ppc.h: Add R_PPC_* entries.

1998-07-20 07:11  Ulrich Drepper  <drepper@cygnus.com>

	* mips.h: Add ODK_*, OEX_*, OPAD_*, OHW_*, and OGP_* constants.
	Define Elf32_External_Lib.

1998-07-19 15:24  Ulrich Drepper  <drepper@cygnus.com>

	* mips.h (PT_MIPS_OPTIONS): New symbol.
	Add lots of DT_MIPS_* symbols.

Fri Jun 26 10:46:35 1998  Jeffrey A Law  (law@cygnus.com)

	* mn10300.h: New file.

Thu Jun 18 19:27:56 1998  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_960, EM_V800, EM_FR20, EM_RH32, EM_MMA,
	EM_OLD_ALPHA): Add these constants.

Thu Jun 11 17:59:01 1998  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_486, EM_S370): Add these constants.

Tue Jun  9 09:35:29 1998  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_ARM): Add this constant.

Wed May  6 09:45:30 1998  Gavin Koch  <gavin@cygnus.com>

	* mips.h (EF_MIPS_MACH,E_MIPS_MACH_*): Added.

Sat Apr 25 18:35:06 1998  Richard Henderson  <rth@cygnus.com>

	* alpha.h (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New.

Wed Apr 15 15:42:45 1998  Richard Henderson  <rth@cygnus.com>

	* common.h (EM_SPARC64): Move and rename to EM_OLD_SPARCV9.
	(EM_SPARCV9): New.  This is the official ABI name and number.

Sat Feb 28 17:04:41 1998  Richard Henderson  <rth@cygnus.com>

	* alpha.h (EF_ALPHA_32BIT, EF_ALPHA_CANRELAX): New.

Mon Dec 15 15:07:49 1997  Nick Clifton  <nickc@cygnus.com>

	* m32r.h (EF_M32R_ARCH, E_M32R_ARCH): New flags to
	specify machine architecture.

Fri Dec  5 11:20:08 1997  Nick Clifton  <nickc@cygnus.com>

	* v850.h: New constants: SHN_V850_SCOMMON, SHN_V850_TCOMMON,
	SHN_V850_ZCOMMON, SHT_V850_SCOMMON, SHT_V850_TCOMMON,
	SHT_V850_ZCOMMON to handle v850 common sections.
	enum reloc_type renamed to v850_reloc_type to avoid name
	conflict.

Thu Oct 23 13:55:24 1997  Richard Henderson  <rth@cygnus.com>

	* sparc.h (enum elf_sparc_reloc_type): Add UA64 & UA16.

Thu Oct 23 00:42:04 1997  Richard Henderson  <rth@dot.cygnus.com>

	* sparc.h (DT_SPARC_REGISTER): New macro.
	(DT_SPARC_PLTFMT): In support of old sparc64-linux .plts; will
	go away soon.

Tue Sep 30 13:26:58 1997  Doug Evans  <dje@canuck.cygnus.com>

	* sparc.h (EF_SPARC_HAL_R1, EF_SPARC_EXT_MASK): New macros.
	(EF_SPARCV9_{MM,TSO,PSO,RMO}): New macros.
	(SHN_BEFORE,SHN_AFTER): New macros.
	(SHF_EXCLUDE,SHF_ORDERED): New macros.
	(STT_REGISTER): New macro.
	(R_SPARC_GLOB_JMP): Deleted, but slot reserved.
	(R_SPARC_{DISP64,PLT64,HIX22,LOX10}): New relocations.
	(R_SPARC_{H44,M44,L44,REGISTER}): New relocations.
	(ELF64_R_TYPE_{DATA,ID,INFO}): New macros.

Wed Sep 17 16:41:42 1997  Nick Clifton  <nickc@cygnus.com>

	* v850.h: Add R_V850_CALLT_6_7_OFFSET and R_V850_CALLT_16_16_OFFSET.

Tue Sep 16 14:16:17 1997  Nick Clifton  <nickc@cygnus.com>

	* v850.h (reloc_type): Add R_V850_TDA_16_16_OFFSET.

Wed Sep  3 15:11:14 1997  Richard Henderson  <rth@cygnus.com>

	* mips.h: Correct typo in comment.

Wed Sep  3 11:25:57 1997  Nick Clifton  <nickc@cygnus.com>

	* v850.h (reloc_type): Remove R_V850_16_PCREL.

Tue Sep  2 17:41:05 1997  Nick Clifton  <nickc@cygnus.com>

	* common.h: Remove magic number for V850E.
	* common.h: Remove magic number for V850EA.
	* v850.h: Add new flags for e_flags field in elf header.

Mon Aug 25 16:06:47 1997  Nick Clifton  <nickc@cygnus.com>

	* common.h (EM_CYGNUS_V850E): backend magic number for v850e.
	* common.h (EM_CYGNUS_V850EA): backend magic number for v850ea.

Mon Aug 18 11:05:23 1997  Nick Clifton  <nickc@cygnus.com>

	* v850.h (reloc_type): Add 16 bit PC relative relocation.

Fri Aug 15 05:10:09 1997  Doug Evans  <dje@canuck.cygnus.com>

	* arc.h (enum reloc): Move here from elf32-arc.c.

Fri Aug  8 17:05:29 1997  Doug Evans  <dje@canuck.cygnus.com>

	* arc.h: New file.
	* common.h (EM_CYGNUS_ARC): Define.

Mon Jun 16 14:46:12 1997  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (Elf_Internal_Ehdr): Change e_phoff and e_shoff from
	bfd_signed_vma to bfd_size_type, as they are not signed.

Wed Mar  5 15:35:26 1997  Doug Evans  <dje@seba.cygnus.com>

	* m32r.h (SHF_M32R_CAN_RELAX): Define.

Mon Feb 24 17:49:01 1997  Ian Lance Taylor  <ian@cygnus.com>

	* external.h: Dump the 32/64 bit specific forms of the version
	structures, and just define them as size independent.

	* common.h (VERSYM_HIDDEN, VERSYM_VERSION): Define.

Fri Feb 21 13:00:34 1997  Doug Evans  <dje@canuck.cygnus.com>

	* m32r.h (enum reloc_type): Add R_M32R_SDA16.
	(SHN_M32R_SCOMMON): Define.

Wed Feb 19 15:35:31 1997  Ian Lance Taylor  <ian@cygnus.com>

	From Eric Youngdale <eric@andante.jic.com>:
	* external.h, internal.h, common.h: Added new structures and
	definitions for ELF versions.

Tue Feb 18 17:40:36 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* common.h (EM_CYGNUS_D30V): Define.

Mon Jan 27 11:54:44 1997  Doug Evans  <dje@seba.cygnus.com>

	* m32r.h (enum reloc_type): Add R_M32R_HI16_[SU]LO,R_M32R_LO16.

Fri Jan  3 11:32:51 1997  Michael Meissner  <meissner@tiktok.cygnus.com>

	* v850.h (V850_OTHER_{TDA_BYTE,ERROR}): New bits for the st_other
	field.
	(SHN_V850_*): Remove v850 specific section indexes, which are not
	needed.
	(enum reloc_type): Move the v850 relocations here from
	elf32-v850.c

Thu Jan  2 19:30:23 1997  Michael Meissner  <meissner@tiktok.cygnus.com>

	* v850.h: New file, provide V850 specific definitions.

Tue Dec 31 14:44:32 1996  Ian Lance Taylor  <ian@cygnus.com>

	* common.h (DT_AUXILIARY): Define.
	(DT_FILTER): Define.

Wed Dec  4 05:03:37 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* dwarf2.h: Update.

Tue Nov 26 10:44:47 1996  Ian Lance Taylor  <ian@cygnus.com>

	* mips.h (STO_MIPS16): Define.

Tue Nov 12 15:45:42 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* d10v.h: Remove empty file.

Tue Oct  8 11:31:24 1996  Ian Lance Taylor  <ian@cygnus.com>

	* mips.h (EF_MIPS_ABI2): Define.

Thu Oct  3 10:01:40 1996  Jeffrey A Law  (law@cygnus.com)

	* common.h: Break mn10x00 support into mn10200 and mn10300.

Wed Oct  2 21:26:43 1996  Jeffrey A Law  (law@cygnus.com)

	* common.h (EM_CYGNUS_MN10x00): Define.

Mon Sep 23 09:18:04 1996  Doug Evans  <dje@seba.cygnus.com>

	* m32r.h: New file.

Fri Aug 30 17:06:21 1996  Ian Lance Taylor  <ian@cygnus.com>

	* common.h (EM_SH): Define.

Tue Aug 20 14:47:54 1996  J.T. Conklin  <jtc@hippo.cygnus.com>

	* common.h (EM_CYGNUS_V850): Define.

Mon Aug 19 10:59:10 1996  Doug Evans  <dje@canuck.cygnus.com>

	* common.h (EM_CYGNUS_M32R): Define.

Mon Jul 22 18:59:55 1996  Ian Lance Taylor  <ian@cygnus.com>

	* mips.h (SHT_MIPS_IFACE, SHT_MIPS_CONTENT): Define.
	(SHT_MIPS_SYMBOL_LIB): Define.
	(SHF_MIPS_MERGE, SHF_MIPS_ADDR32, SHF_MIPS_ADDR64): Define.
	(SHF_MIPS_NOSTRIP, SHF_MIPS_LOCAL, SHF_MIPS_NAMES): Define.

Thu Jul 18 19:12:15 1996  Stan Shebs  <shebs@andros.cygnus.com>

	* dwarf2.h: New file.

Jul 18 13:20:39 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* common.h (EM_CYGNUS_D10V): Define.
	* d10v.h: New file.

Fri Jun 21 12:33:24 1996  Richard Henderson  <rth@tamu.edu>

	* alpha.h: New file.
	* common.h (EM_ALPHA): Define.

Fri May 31 17:28:05 1996  Ian Lance Taylor  <ian@cygnus.com>

	* mips.h (Elf_External_Options, Elf_Internal_Options): Define.
	(bfd_mips_elf_swap_options_in): Declare.
	(bfd_mips_elf_swap_options_out): Declare.
	(ODK_*): Define.
	(Elf64_External_RegInfo, Elf64_Internal_RegInfo): Define.
	(bfd_mips_elf64_swap_reginfo_in): Declare.
	(bfd_mips_elf64_swap_reginfo_out): Declare.

Thu May 30 12:35:57 1996  Ian Lance Taylor  <ian@cygnus.com>

	* mips.h (E_MIPS_ARCH_4): Define.

Wed May 29 15:35:33 1996  Ian Lance Taylor  <ian@cygnus.com>

	* mips.h (Elf64_Mips_External_Rel): Define.
	(Elf64_Mips_Internal_Rel): Define.
	(Elf64_Mips_External_Rela, Elf64_Mips_Internal_Rela): Define.
	(RSS_*): Define.

Mon Apr 22 18:26:30 1996  Doug Evans  <dje@canuck.cygnus.com>

	* sparc.h (R_SPARC_[56]): Always define.

Mon Feb 19 01:55:56 1996  Doug Evans  <dje@charmed.cygnus.com>

	* sparc.h (R_SPARC_{PLT32,HIPLT22,LOPLT10,PCPLT32,PCPLT22,
	PCPLT10,5,6}): Don't define ifdef SPARC64_OLD_RELOCS.

Tue Feb  6 11:33:58 1996  Doug Evans  <dje@charmed.cygnus.com>

	* sparc.h (enum sparc_elf_reloc_type): Define.

Wed Jan 17 09:09:16 1996  Doug Evans  <dje@canuck.cygnus.com>

	* common.h: Define EM_SPARC32PLUS.
	* sparc.h: New file.

Thu Jan 11 16:27:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com>

	* ppc.h (SHF_EXCLUDE, SHT_ORDERED): New fields from the abi.

Thu Nov 30 16:47:18 1995  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (struct elf_segment_map): Add includes_filehdr and
	includes_phdrs fields.

Tue Nov 28 16:58:10 1995  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (struct elf_segment_map): Define.

Tue Oct 31 15:19:36 1995  Fred Fish  <fnf@cygnus.com>

	* common.h, dwarf.h, external.h, hppa.h, internal.h,
	mips.h, ppc.h:  Protect against multiple inclusions.

Thu Sep 21 13:51:58 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* ppc.h (EF_PPC_RELOCATABLE_LIB): Add new flag bit.

Fri Sep  1 15:32:17 1995  Kazumoto Kojima  <kkojima@info.kanagawa-u.ac.jp>

	* mips.h: Add some definitions used on Irix 5.

Tue Jun 20 10:18:28 1995  Jeff Law  (law@snake.cs.utah.edu)

	* hppa.h (CPU_PA_RISC1_0): Protect from redefinitions.
	(CPU_PA_RISC1_1): Likewise.

Wed Mar  8 18:14:37 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* ppc.h: New file for PowerPC support.

Tue Feb 14 13:59:13 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* common.h (EM_PPC): Use offical value of 20, not 17.
	(EM_PPC_OLD): Define this to be the old value of EM_PPC.

Tue Jan 24 09:40:59 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* common.h (EM_PPC): New macro, PowerPC machine id.

Tue Jan 17 10:51:38 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* mips.h (SHT_MIPS_MSYM, SHT_MIPS_DWARF, SHT_MIPS_EVENTS): Define.

Mon Oct 17 13:43:59 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* internal.h (Elf_Internal_Shdr): Remove rawdata and size fields.
	Add bfd_section field.

Tue May 24 16:11:50 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* mips.h (Elf32_External_gptab): Define.

Mon May 16 13:22:04 1994  Jeff Law  (law@snake.cs.utah.edu)

	* common.h (EM_HPPA): Delete.
	(EM_PARISC): Add.
	* hppa.h: New file.

Mon May  9 13:27:03 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* common.h (SHN_LORESERVE): Rename from SHN_LORESERV.
	(ELF32_R_TYPE, ELF32_R_INFO): Don't rely on size of unsigned char.
	(ELF64_R_TYPE): Don't rely on size of unsigned long.

Mon Apr 25 15:53:09 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* internal.h (Elf_Internal_Shdr): Use PTR, not void *.

Fri Mar 11 00:34:59 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* mips.h (SHN_MIPS_TEXT, SHN_MIPS_DATA):  Define.

Sat Mar  5 14:08:54 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* internal.h:  Remove Elf32_*, Elf64_* typedefs.  These names
	cause conflicts with system headers, e.g. link.h in gdb/solib.c.
	Combine 32- and 64-bit versions of *_Internal_Dyn.
	* common.h:  Replace uses of Elf64_Word, Elf64_Xword typedefs
	by their expansion.
	* mips.h:  Replace uses of Elf32_Word, Elf32_Sword, Elf32_Addr
	typedefs by their expansion. Add DT_MIPS_RLD_MAP definition.

Fri Feb 18 10:39:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* common.h (EM_CYGNUS_POWERPC): Define.  This may be temporary,
	depending upon how quickly I can find a real PowerPC ABI.

Mon Feb  7 08:27:13 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT.

Wed Feb  2 14:12:18 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* common.h: Add comments regarding value of EM_HPPA and how to
	pick an unofficial value.

Wed Nov 17 17:14:26 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* mips.h (SHT_MIPS_OPTIONS): Define.

Mon Nov  8 17:57:00 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* mips.h: Added some more MIPS ABI macro definitions.

Wed Nov  3 22:07:17 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* common.h (EM_MIPS_RS4_BE): New macro.

Tue Oct 12 07:28:18 1993  Ian Lance Taylor  (ian@cygnus.com)

	* mips.h: New file.  MIPS ABI specific information.

Mon Jun 21 13:13:43 1993  Ken Raeburn  (raeburn@poseidon.cygnus.com)

	* internal.h: Combined 32- and 64-bit versions of all structures
	except *_Internal_Dyn.  This will simply the assembler interface,
	and some bfd code.

Tue May 25 02:00:16 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* external.h, internal.h, common.h: Added 64-bit versions of some
	structures and macros.  Renamed old versions to put "32" in the
	name.  Some are unchanged.

Thu Apr 29 12:12:20 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)

	* common.h (EM_HPPA, NT_VERSION, STN_UNDEF, DT_*): New macros.
	* external.h (Elf_External_Dyn): New type.

	* internal.h (Elf_Intenral_Shdr): New field `size'.
	(Elf_Internal_Dyn): New type.

Tue Apr 20 16:03:45 1993  Fred Fish  (fnf@cygnus.com)

	* dwarf.h (LANG_CHILL):  Change value to one randomly picked in
	the user defined range, to reduce probability of collisions.

Sun Nov 15 09:34:02 1992  Fred Fish  (fnf@cygnus.com)

	* dwarf.h (AT_src_coords):  Whitespace change only.
	* dwarf.h (AT_body_begin, AT_body_end, LANG_MODULA2):
	Add from latest gcc.
	* dwarf.h (LANG_CHILL):  Add as GNU extension.

Sat Aug  1 13:46:53 1992  Fred Fish  (fnf@cygnus.com)

	* dwarf.h:  Replace with current version from gcc distribution.

Fri Jun 19 19:05:09 1992  John Gilmore  (gnu at cygnus.com)

	* internal.h:  Add real struct tags to all the Type_Defs, so they
	can be used in prototypes where the Type_Defs are not known.

Fri Apr  3 20:58:58 1992  Mark Eichin  (eichin at cygnus.com)

	* common.h: added ELF_R_{SYM,TYPE,INFO} for handling relocation
	info
	added EM_MIPS, and corrected value of EM_860 based on System V ABI
	manual.

	* external.h: added Elf_External_{Rel,Rela}.

	* internal.h: added Elf_Internal_{Rel,Rela}.
	added rawdata to Elf_Internal_Shdr.

Sat Nov 30 20:43:59 1991  Steve Chamberlain  (sac at rtl.cygnus.com)

	* common.h, dwarf.h, external.h, internal.h, ChangeLog; moved from
	../elf-<foo>


Local Variables:
version-control: never
End:
