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

	* elf/m32r.h : Added m32r-linux and PIC support.  Add new ABI that
	uses RELA.
	(R_M32R_16_RELA, R_M32R_32_RELA, R_M32R_24_RELA,
	R_M32R_10_PCREL_RELA, R_M32R_18_PCREL_RELA,
	R_M32R_26_PCREL_RELA, R_M32R_HI16_ULO_RELA,
	R_M32R_HI16_SLO_RELA, R_M32R_LO16_RELA,
	R_M32R_SDA16_RELA, R_M32R_RELA_GNU_VTINHERIT,
	R_M32R_RELA_GNU_VTENTRY, R_M32R_GOT24,
	R_M32R_26_PLTREL, R_M32R_COPY, R_M32R_GLOB_DAT,
	R_M32R_JMP_SLOT, R_M32R_RELATIVE, R_M32R_GOTOFF,
	R_M32R_GOTPC24, R_M32R_GOT16_HI_ULO,
	R_M32R_GOT16_HI_SLO, R_M32R_GOT16_LO,
	R_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_SLO,
	R_M32R_GOTPC_LO): New relocs.

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:
