2003-12-02  Graham Reed <grahamr@algorithmics.com>

	* internal.h (C_WEAKEXT): Add alternative value for AIX 5.2
	based targets.

2003-08-23  Jason Eckhardt  <jle@rice.edu>

	* coff/i860.h (COFF860_R_PAIR, COFF860_R_LOW0, COFF860_R_LOW1,
	COFF860_R_LOW2, COFF860_R_LOW3, COFF860_R_LOW4, COFF860_R_SPLIT0,
	COFF860_R_SPLIT1, COFF860_R_SPLIT2, COFF860_R_HIGHADJ,
	COFF860_R_BRADDR): Define new relocation constants and document.
	Minor formatting adjustments.

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

	* ti.h (GET_SCNHDR_NRELOC): Rename PTR param to LOC.
	(PUT_SCNHDR_NRELOC, GET_SCNHDR_NLNNO, PUT_SCNHDR_NLNNO): Likewise.
	(GET_SCNHDR_FLAGS, PUT_SCNHDR_FLAGS): Likewise.
	(GET_SCNHDR_PAGE, PUT_SCNHDR_PAGE): Likewise.

2003-07-17  Jeff Muizelaar  <muizelaar@rogers.com>

	* pe.h: (IMAGE_FILE_NET_RUN_FROM_SWAP): Define.
	(IMAGE_FILE_MACHINE_WCEMIPSV2): Define.
	(IMAGE_FILE_MACHINE_SH3DSP): Define.
	(IMAGE_FILE_MACHINE_SH3E): Define.
	(IMAGE_FILE_MACHINE_SH5): Define.
	(IMAGE_FILE_MACHINE_AM33): Define.
	(IMAGE_FILE_MACHINE_POWERPCFP): Define.
	(IMAGE_FILE_MACHINE_AXP64): Define.
	(IMAGE_FILE_MACHINE_TRICORE): Define.
	(IMAGE_FILE_MACHINE_CEF): Define.
	(IMAGE_FILE_MACHINE_EBC): Define.
	(IMAGE_FILE_MACHINE_AMD64): Define.
	(IMAGE_FILE_MACHINE_M32R): Define.
	(IMAGE_FILE_MACHINE_CEE): Define.

2003-07-14  Christian Groessler  <chris@groessler.org>

        * i860.h (AOUTSZ): Define for i860 coff.

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

	* xcoff.h (struct __rtinit ): Convert to ISO C90 prototypes.

	* ecoff.h: Convert to ISO C90 prototypes.  Replace PTR by void *.

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

	* coff/h8300.h (H8300HNMAGIC, H8300SNMAGIC): New.
	(H8300HNBADMAG, H8300SNBADMAG): New.

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

	* sh.h: Replace occurrances of 'Hitachi' with 'Renesas'.
	* h8300.h: Likewise.
	* h8500.h: Likewise.

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.

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

	* ecoff.h: Replace boolean with bfd_boolean.
	* xcoff.h: Likewise.

2002-03-18  Tom Rix  <trix@redhat.com>

	* rs6k64.h: Add U64_TOCMAGIC, AIX 5 64 bit magic number.

2002-02-01  Tom Rix  <trix@redhat.com>

	* xcoff.h: Conditionally support <aiaff> for pre AIX 4.3.

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

	* or32.h: New file.

2001-12-24  Tom Rix  <trix@redhat.com>

	* xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive
	format.
	(XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for
	archive header ascii elements.

2001-12-17  Tom Rix  <trix@redhat.com>

	* xcoff.h :  Add .except and .typchk section string and styp flags.
	Fix xcoff_big_format_p macro.

2001-12-16  Tom Rix  <trix@redhat.com>

	* xcoff.h : Clean up formatting.

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

	* arm.h (F_VFP_FLOAT): Define.

2001-11-11  Timothy Wall  <twall@alum.mit.edu>

	* ti.h: Move arch-specific stuff from here...
	(COFF_ADJUST_SYM_IN/OUT): Optionally put page flag into symbol
	value.
	* tic54x.h: ...to here.

2001-10-26  Christian Groessler  <cpg@aladdin.de>

	* external.h (GET_LINENO_LNNO): Fix usage of H_GET_32/16.
	(PUT_LINENO_LNNO): Likewise with H_PUT_32/16.

2001-09-21  Nick Clifton  <nickc@cambridge.redhat.com>

	* ti.h (GET_SCNHDR_PAGE): Fix compile time warning.

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

	* external.h (GET_LINENO_LNNO): Use H_GET_32/16.
	(PUT_LINENO_LNNO): Use H_PUT_32/16.
	* m88k.h (GET_LNSZ_SIZE, GET_LNSZ_LNNO, GET_SCN_NRELOC,
	GET_SCN_NLINNO): Use H_GET_32.
	(PUT_LNSZ_LNNO, PUT_LNSZ_SIZE, PUT_SCN_NRELOC, PUT_SCN_NLINNO):
	Use H_PUT_32.
	* ti.h: Formatting fixes.  Make use of H_GET_* and H_PUT_* throughout.
	* xcoff.h: White space changes.

2001-09-05  Tom Rix <trix@redhat.com>

	* xcoff.h : Add XCOFF_SYSCALL32 and XCOFF_SYSCALL64 hash table flags.

2001-08-27  Andreas Jaeger  <aj@suse.de>

	* xcoff.h (struct __rtinit): Make proper prototype for rtl.

Fri Aug 24 01:18:51 2001  J"orn Rennecke <amylaar@redhat.com>

	* internal.h (R_JMP2, R_JMPL2, R_MOVL2): Comment spelling fix.

2001-04-05  Tom Rix <trix@redhat.com>

	* rs6000.h : move xcoff32 external structures from xcofflink.
	* rs6k64.h : move xcoff64 external structures from xcofflink.
	* internal.h : promote 32 bit structure elements to 64 bit
	for xcoff64 support
	* xcoff.h : New file.

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

	* a29k.h: Fix compile time warning.
	* external.h: Fix compile time warning.
	* m88k.h: Fix compile time warning.

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

	* external.h: New file. Common structure definitions found in
	other COFF header files.

	* a29k.h: Use external.h.
	* apollo.h: Use external.h.
	* arm.h: Use external.h.
	* h8300.h: Use external.h.
	* h8500.h: Use external.h.
	* i386.h: Use external.h.
	* i860.h: Use external.h.
	* ia64.h: Use external.h.
	* m68k.h: Use external.h.
	* m88k.h: Use external.h.
	* mcore.h: Use external.h.
	* mips.h: Use external.h.
	* mipspe.h: Use external.h.
	* powerpc.h: Use external.h.
	* rs6000.h: Use external.h.
	* rs6k64.h: Use external.h.
	* sh.h: Use external.h.
	* sparc.h: Use external.h.
	* tic30.h: Use external.h.
	* tic80.h: Use external.h.
	* w65.h: Use external.h.
	* we32k.h: Use external.h.
	* z8k.h: Use external.h.

2001-02-09  David Mosberger  <davidm@hpl.hp.com>

	* pe.h (PEPAOUTSZ): Rename from PEP64AOUTSZ.
	Rename from PEPAOUTHDR.

2001-01-23  H.J. Lu  <hjl@gnu.org>

	* pe.h (struct external_PEI_DOS_hdr): New.
	(struct external_PEI_IMAGE_hdr): New.

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

	* ti.h (OCTETS_PER_BYTE_POWER): Change #warning to #error.

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

	* ti.h (OCTETS_PER_BYTE_POWER): Change #warn to #warning.

2000-06-30  DJ Delorie  <dj@cygnus.com>

	* pe.h: Clarify a comment.

2000-05-05  Clinton Popetz  <cpopetz@cygnus.com>

	* rs6k64.h (U802TOC64MAGIC): Change to U803XTOCMAGIC.

2000-04-24  Clinton Popetz  <cpopetz@cygnus.com>

	* rs6k64.h: New file.

2000-04-17  Timothy Wall  <twall@cygnus.com>

	* ti.h: Load page cleanup.
	* intental.h: Add load page field.

Mon Apr 17 16:44:01 2000  David Mosberger  <davidm@hpl.hp.com>

	* pe.h (PEP64AOUTHDR): New header for PE+.
	(PEP64AOUTSZ): New macro.
	(IMAGE_SUBSYSTEM_UNKNOWN): New macro.
	(IMAGE_SUBSYSTEM_NATIVE): Ditto.
	(IMAGE_SUBSYSTEM_WINDOWS_GUI): Ditto.
	(IMAGE_SUBSYSTEM_WINDOWS_CUI): Ditto.
	(IMAGE_SUBSYSTEM_POSIX_CUI): Ditto.
	(IMAGE_SUBSYSTEM_WINDOWS_CE_GUI): Ditto.
	(IMAGE_SUBSYSTEM_EFI_APPLICATION): Ditto.
	(IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER): Ditto.
	(IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER): Ditto.
	* internal.h (PE_DEF_FILE_ALIGNMENT): Define only if not defined
	already.
	* ia64.h: New file.

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

	* ti.h (ADDR_MASK): Don't use ul suffix on constants.
	(PG_MASK): Ditto.

2000-04-11  Timothy Wall  <twall@cygnus.com>

	* ti.h: Remove load page references until load pages are
	reimplemented.
	* tic54x.h: Ditto.

2000-04-07  Timothy Wall  <twall@cygnus.com>

	* internal.h: Fix some comments related to TI COFF (instead of tic80).
	* ti.h: New.
	* tic54x.h: New.

Wed Apr  5 22:08:41 2000  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): Define.

2000-03-15  Kazu Hirata  <kazu@hxi.com>

	* internal.h: Fix a typo in the comment for R_MOVL2.

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

	* mipspe.h (MIPS_PE_MAGIC): Define.
	* sh.h (SH_PE_MAGIC): Define.

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

	* sh.h: Add Windows CE definitions.
	* arm.h: Add Windows CE definitions.
	* mipspe.h: New file: Windows CE definitions for MIPS.
	* pe.h: Add constants for ILF support.

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

	* pe.h: Fix formatting of comments.
	(IMAGE_FILE_AGGRESSIVE_WS_TRIM): Define.
	(IMAGE_FILE_LARGE_ADDRESS_AWARE): Define.
	(IMAGE_FILE_16BIT_MACHINE): Define.
	(IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP): Define.
	(IMAGE_FILE_UP_SYSTEM_ONLY): Define.
	(IMAGE_FILE_MACHINE_UNKNOWN): Define.
	(IMAGE_FILE_MACHINE_ALPHA): Define.
	(IMAGE_FILE_MACHINE_ALPHA64): Define.
	(IMAGE_FILE_MACHINE_I386): Define.
	(IMAGE_FILE_MACHINE_IA64): Define.
	(IMAGE_FILE_MACHINE_M68K): Define.
	(IMAGE_FILE_MACHINE_MIPS16): Define.
	(IMAGE_FILE_MACHINE_MIPSFPU): Define.
	(IMAGE_FILE_MACHINE_MIPSFPU16): Define.
	(IMAGE_FILE_MACHINE_POWERPC): Define.
	(IMAGE_FILE_MACHINE_R3000): Define.
	(IMAGE_FILE_MACHINE_R4000): Define.
	(IMAGE_FILE_MACHINE_R10000): Define.
	(IMAGE_FILE_MACHINE_SH3): Define.
	(IMAGE_FILE_MACHINE_SH4): Define.
	(IMAGE_FILE_MACHINE_THUMB): Define.

1999-09-20  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* internal.h: Delete bogus R_PCLONG, duplicate R_RELBYTE and
	R_RELWORD, and rewrite some R_* as decimal.

1999-09-06  Donn Terry  <donn@interix.com>

	* internal.h (DTYPE): Define.
	* pe.h (struct external_PEI_filehdr): Rename from
	external_PE_filehdr.  Define even if COFF_IMAGE_WITH_PE is not
	defined.

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

	* arm.h (F_SOFT_FLOAT): Rename from F_SOFTFLOAT.

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

	* arm.h (F_SOFTFLOAT): Define.

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

	* arm.h (F_ARM_5): Define.

Wed Jun  2 18:08:18 1999  Richard Henderson  <rth@cygnus.com>

	* internal.h (BEOS_EXE_IMAGE_BASE, BEOS_DLL_IMAGE_BASE): New.

Mon May 17 13:35:35 1999  Stan Cox  <scox@cygnus.com>

	* arm.h (F_PIC, F_ARM_2, F_ARM_2a, F_ARM_3, F_ARM_3M,
	F_ARM_4, F_ARM_4T, F_APCS26): Changed values to distinguish
	F_ARM_2a, F_ARM_3M, F_ARM_4T.

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

	* mcore.h (IMAGE_REL_MCORE_RVA): Define.

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

	* mcore.h (GET_LINENO_LNNO): New macro.
	(PUT_LINENO_LNNO): New macro.

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

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

Sun Dec  6 21:36:37 1998  Mark Elbrecht  <snowball3@usa.net>

	* internal.h (C_WEAKEXT): Define.

Wed Jan 27 13:35:35 1999  Stan Cox  <scox@cygnus.com>

	* arm.h (F_PIC_INT, F_ARM_2, F_ARM_3, F_ARM_4, F_APCS26):
	Changed values to avoid clashing with IMAGE_FILE_* coff header
	flag values.

Wed Apr  1 16:06:15 1998  Nick Clifton  <nickc@cygnus.com>

	* internal.h: Document numbers associated with Thumb symbol
	types.

Fri Mar 27 17:16:57 1998  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (ISPTR, ISFCN, ISARY): Add casts to unsigned long.

Mon Feb  2 17:10:38 1998  Steve Haworth  <steve@pm.cse.rmit.EDU.AU>

	* tic30.h: New file.

Fri Dec 12 11:49:07 1997  Fred Fish  <fnf@cygnus.com>

	* tic80.h (R_MPPCR15W): New relocation type, for 15 bit PC relative
	offsets.

Tue Dec  2 10:21:40 1997  Nick Clifton  <nickc@cygnus.com>

	* arm.h (COFFARM): New define.

Mon Dec  1 20:24:18 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* sh.h (R_SH_SWITCH8): New.

Sat Nov 22 15:10:14 1997  Nick Clifton  <nickc@cygnus.com>

	* internal.h (C_THUMBEXTFUNC, C_THUMBSTATFUNC): Constants to
	define static and external functions.

	* arm.h: Add bits to support PIC and APCS-FLOAT type binaries,
	when implemented.

Fri Oct  3 14:25:17 1997  Fred Fish  <fnf@cygnus.com>

	* tic80.h (R_PPL16B): Make constant uppercase for consistency.

Tue Jul 22 18:18:58 1997  Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>

	* go32exe.h: New file.

Tue Jul  8 12:23:55 1997  Fred Fish  <fnf@cygnus.com>

	* tic80.h (TIC80_TARGET_ID): Add define.
	* internal.h (struct internal_filehdr): Add f_target_id field.

Tue Jun  3 16:44:18 1997  Nick Clifton  <nickc@cygnus.com>

	* internal.h: Add storage classes for Thumb symbols

Mon May 26 14:07:55 1997  Ian Lance Taylor  <ian@cygnus.com>

	* tic80.h (R_PPL16B): Correct value.

Tue May 13 10:21:14 1997  Nick Clifton  <nickc@cygnus.com>

	* arm.h (constants):   Added new flag bits F_APCS_26 and
	F_APCS_SET for the f_flags field of the filehdr structure.  Added new
	flags: F_APCS26, F_ARM_2, F_ARM_3, F_ARM_7, F_ARM_7T to store
	information in the flags field of the internal_f structure used by BFD
	routines.

Sat May  3 08:24:59 1997  Fred Fish  <fnf@cygnus.com>

	* internal.h (C_UEXT, C_STATLAB, C_EXTLAB, C_SYSTEM):
	New storage classes for TIc80.

Fri Apr 18 11:52:55 1997  Niklas Hallqvist  <niklas@appli.se>

	* alpha.h (ALPHA_ECOFF_BADMAG): Recognize *BSD/alpha magic too.
	(ALPHA_R_LITERALSLEAZY): Define.
	* ecoff.h (ALPHA_MAGIC_BSD): Define.

Wed Jan 29 11:31:51 1997  Ian Lance Taylor  <ian@cygnus.com>

	* i960.h (R_IPR13, R_ALIGN): Define.

Mon Jan 27 13:34:30 1997  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): Move definitions
	from here...
	* i960.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): ...to here.

Wed Jan 22 20:10:47 1997  Fred Fish  <fnf@cygnus.com>

	* tic80.h (TIC80MAGIC): Renamed to TIC80_AOUTHDR_MAGIC.

Fri Dec 27 22:05:45 1996  Fred Fish  <fnf@cygnus.com>

	* tic80.h: New file for TIc80 support.

Thu Dec 19 16:18:11 1996  Ian Lance Taylor  <ian@cygnus.com>

	* arm.h (_LIT): Define.

Fri Jun 28 12:54:38 1996  Ian Lance Taylor  <ian@cygnus.com>

	* pe.h (FILHSZ): Define.

Wed Jun 26 16:24:26 1996  Ian Lance Taylor  <ian@cygnus.com>

	* All files: Define FILHSZ, AOUTSZ, AOUTHDRSZ, SCNHSZ, SYMESZ,
	AUXESZ, LINESZ, RELSZ as numeric constants rather than uses of
	sizeof.  Define AOUTHDRSZ in all files.
	* pe.h (AOUTSZ): Define by adding to AOUTHDRSZ.

Fri Jun 21 11:17:46 1996  Richard Henderson  <rth@tamu.edu>

	* alpha.h: Add declarations for relocation types added for Alpha
	OSF/1 3.0.

Tue Jun 18 16:04:29 1996  Jeffrey A. Law  <law@rtl.cygnus.com>

	* h8300.h (H8300SMAGIC): Define.
	(H8300SBADMAG): Define.

Mon Jun 10 11:53:28 1996  Jeffrey A Law  (law@cygnus.com)

	* internal.h (R_BCC_INV, R_JMP_DEL): New relocations for
	relaxing in the H8/300 series.

Thu May 16 15:49:22 1996  Ian Lance Taylor  <ian@cygnus.com>

	* sh.h (R_SH_CODE, R_SH_DATA, R_SH_LABEL): Define.

Tue May  7 00:36:39 1996  Jeffrey A Law  (law@cygnus.com)

	* internal.h (R_JMPL2): Renamed from R_JMPL_B8 to be
	consistent with other similar relocs.

	* internal.h (H8/300 specific relocs): Add comments better
	explaining what each reloc is used for.
	(R_MOV16B1, R_MOV16B2): Renamed from R_MOVB1 and R_MOVB2.
	(R_MOV24B1, R_MOV24B2): Renamed from R_MOVLB1 and R_MOVLB2.
	(R_MOVL1, R_MOVL2): New relocs.

Fri May  3 13:01:12 1996  Jeffrey A Law  (law@cygnus.com)

	* internal.h (R_PCRWORD_B): Define for the h8300 relaxing
	linker.

Wed May  1 19:21:03 1996  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (SCNNMLEN): Define.
	(struct internal_scnhdr): Use SCNNMLEN for s_name field.

Fri Mar 29 13:41:25 1996  Ian Lance Taylor  <ian@cygnus.com>

	* pe.h: Define IMAGE_COMDAT codes.

Wed Mar 27 17:29:42 1996  Ian Lance Taylor  <ian@cygnus.com>

	* arm.h (union external_auxent): Add x_checksum, x_associated, and
	x_comdat fields to x_scn struct.
	* i386.h (union external_auxent): Likewise.
	* powerpc.h (union external_auxent): Likewise.
	* internal.h (union internal_auxent): Likewise.

Thu Mar 21 16:25:57 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* ecoff.h (struct ecoff_find_line): Add caching fields.

Thu Mar 14 15:22:44 1996  Jeffrey A Law  (law@cygnus.com)

	* internal.h (R_MEM_INDIRECT): New reloc for the h8300.

Fri Feb  9 10:44:11 1996  Ian Lance Taylor  <ian@cygnus.com>

	* aux-coff.h: Rename from aux.h, to avoid problems on hapless DOS
	systems which think that aux is a com port.

Mon Feb  5 18:35:00 1996  Ian Lance Taylor  <ian@cygnus.com>

	* i960.h (F_I960HX): Define.

Wed Jan 31 13:11:54 1996  Richard Henderson  <rth@tamu.edu>

	* aux.h: New file.
	* internal.h, m68k.h: Protect against multiple inclusion.

Wed Nov 22 13:48:39 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ecoff.h (_RCONST, STYP_RCONST, RELOC_SECTION_RCONST): Define.
	(NUM_RELOC_SECTIONS): Update.
	* symconst.h (scRConst): Define.

Tue Nov 14 18:54:29 1995  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (C_NT_WEAK): Define.

Thu Nov  9 14:08:30 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rs6000.h (STYP_OVRFLO): Define.

Tue Nov  7 14:38:45 1995  Kim Knuttila  <krk@cygnus.com>

	* powerpc.h (IMAGE_NT_OPTIONAL_HDR_MAGIC): Added define.
	* pe.h: Added defines for file level flags

Mon Nov  6 17:28:01 1995  Harry Dolan  <dolan@ssd.intel.com>

	* i860.h: New file, based on i386.h.

Wed Nov  1 15:25:18 1995  Manfred Hollstein KS/EF4A 60/1F/110 #40283  <manfred@lts.sel.alcatel.de>

	* m68k.h (PAGEMAGICEXECSWAPPED): Define.
	(PAGEMAGICPEXECSWAPPED): Define.
	(PAGEMAGICPEXECTSHLIB): Define.
	(PAGEMAGICPEXECPAGED): Define.
	(_COMMENT): DEFINE.
	* m88k.h (_COMMENT): Define.

Wed Oct 18 18:36:19 1995  Geoffrey Noer  <noer@cygnus.com>

	* sym.h: #if 0'd out runtime_pdr struct because it chokes
	Visual C++ and there aren't any references to it elsewhere in gdb.

Mon Oct 16 11:12:24 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rs6000.h (SMALL_AOUTSZ): Define.

	* internal.h (XMC_TD): Define.

Tue Oct 10 18:41:03 1995  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (struct internal_aouthdr): Add o_cputype field.
	* rs6000.h (AOUTHDR): Rename o_resv1 to o_cputype.

Mon Oct  9 14:45:46 1995  Ian Lance Taylor  <ian@cygnus.com>

	* rs6000.h (AOUTHDR): Add o_maxdata field.  Add comments.
	(_PAD, _LOADER): Define.
	(STYP_LOADER): Define.
	* internal.h (struct internal_aouthdr): Add o_maxdata field.

Thu Oct  5 10:02:57 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ecoff.h: Define section name macros and STYP macros for various
	Alpha sections: .got, .hash, .dynsym, .dynstr, .rel.dyn, .conflic,
	.comment, .liblist, .dynamic.

Wed Oct  4 10:56:35 1995  Kim Knuttila  <krk@cygnus.com>

	* pe.h: Moved DOSMAGIC and NT_SIGNATURE defines here
	* powerpc.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
	Also removed other unused defines (various MAGIC ones)
	* i386.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
	* arm.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
	* apollo.h: removed unused DEFAULT_* defines
	* alpha.h: removed unused DEFAULT_* defines
	* h8500.h: removed unused DEFAULT_* defines
	* h8300.h: removed unused DEFAULT_* defines
	* i960.h: removed unused DEFAULT_* defines
	* m88k.h: removed unused DEFAULT_* defines
	* we32k.h: removed unused DEFAULT_* defines
	* rs6000.h: removed unused DEFAULT_* defines
	* mips.h: removed unused DEFAULT_* defines
	* m68k.h: removed unused DEFAULT_* defines
	* z8k.h: removed unused DEFAULT_* defines
	* w65.h: removed unused DEFAULT_* defines
	* sparc.h: removed unused DEFAULT_* defines
	* sh.h: removed unused DEFAULT_* defines

Fri Sep 29 08:40:08 1995  Kim Knuttila  <krk@cygnus.com>

	* powerpc.h: Reformatted to GNU coding conventions.

Wed Sep 27 06:50:50 1995  Kim Knuttila  <krk@nellie>

	* pe.h: added defines for more section characteristics
	* powerpc.h (new file): base coff definitions for ppc PE

Tue Sep 12 12:08:20 1995  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h (struct internal_syment): Change n_numaux field from
	char to unsigned char.

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

	* mips.h (struct rpdr_ext): Define.

Thu Aug 31 16:51:50 1995  steve chamberlain  <sac@slash.cygnus.com>

	* internal.h (internal_aouthdr, internal_filehdr):
	don't indirect the pe stuff.

Tue Aug 29 14:16:07 1995  steve chamberlain  <sac@slash.cygnus.com>

	* i386.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Make the same
	as 'the other' compiler.
	* internal.h (NT_IMAGE_BASE): Deleted.
	(NT_EXE_IMAGE_BASE, NT_DLL_IMAGE_BASE): New.
	(PE_DEF_SECTION_ALIGNMENT, PE_DEF_FILE_ALIGNMENT): New.
	(R_IMAGEBASE): New.

Mon Aug 21 18:12:19 1995  steve chamberlain  <sac@slash.cygnus.com>

	* internal.h: (internal_filehdr): Moved PE stuff into
	internal_extra_pe_filehdr.
	(internal_aouthdr): Moved PE stuff into
	interanl_extra_pe_aouthdr.

Mon Jul 24 14:05:39 1995  Ian Lance Taylor  <ian@cygnus.com>

	* internal.h: Move R_SH_* relocs from here...
	* sh.h: ...to here.
	(R_SH_SWITCH16, R_SH_SWITCH32): Define.
	(R_SH_USES, R_SH_COUNT, R_SH_ALIGN): Define.

Thu Jun 29 00:04:25 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* internal.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Increase a lot.

Tue May 16 15:08:20 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* internal.h (NT_subsystem, NT_stack_heap): Delete

Tue May 16 15:08:20 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* internal.h (NT_subsystem, NT_stack_heap): Now extern.

Sat May 13 10:14:08 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	* pe.h: New file.
	* i386.h (NT_SECTION_ALIGNMENT, NT_FILE_ALIGNMENT,
	NT_DEF_RESERVE, NT_DEF_COMMIT): New.
	* internal.h (internal_filehdr):  New fields for PE.
	(IMAGE_DATA_DIRECTORY): New.
	(internal_aouthdr): New fields for PE.

Tue Feb 14 17:59:37 1995  Ian Lance Taylor  <ian@cygnus.com>

	* ecoff.h (struct ecoff_fdrtab_entry): Define.
	(struct ecoff_find_line): Define.

Sat Feb  4 14:38:03 1995  David Mosberger-Tang  <davidm@piston.cs.arizona.edu>

	* sym.h (struct pdr): field "prof" added.

	* alpha.h (PDR_BITS1_PROF_*): added, macros for PDR_BITS*_RESERVED_*
	updated accordingly.

Sun Jan 15 18:38:33 1995  Steve Chamberlain  <sac@splat>

	* w65.h: New file.

Wed Nov 23 22:43:38 1994  Steve Chamberlain  (sac@jonny.cygnus.com)

	* sh.h (SH_ARCH_MAGIC_BIG, SH_ARCH_MAGIC_LITTLE): New.
	(SHBADMAG): Changed to suit.

Tue Jul 26 17:46:08 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* i960.h (F_I960JX): New macro.

Wed Jul  6 00:48:57 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* alpha.h:  Add definitions for alpha file header flags, encoding
	the object type of the file.

Mon Jun 20 13:47:01 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* ecoff.h (ecoff_swap_tir_in): Remove declaration.
	(ecoff_swap_tir_out): Likewise.
	(ecoff_swap_rndx_in, ecoff_swap_rndx_out): Likewise.
	(struct ecoff_debug_swap): Add new fields: swap_tir_in,
	swap_rndx_in, swap_tir_out, swap_rndx_out, read_debug_info.

Sun Jun 12 03:51:52 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* symconst.h:  Pick up SGI define for stIndirect.

Fri Apr 22 13:05:28 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (REGINFO): Don't define.
	(struct ecoff_reginfo): Don't define.

	* sh.h (SH_ARCH_MAGIC): Rename from SHMAGIC.  SHMAGIC is used by
	several targets to mean a shared library.
	(SHBADMAG): Corresponding change.

Thu Apr 14 13:00:53 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* mips.h (RELOC_BITS3_TYPE_BIG): Changed from 0x1e to 0x3e.
	(RELOC_BITS3_TYPEHI_LITTLE): Define.
	(RELOC_BITS3_TYPEHI_SH_LITTLE): Define.
	(MIPS_R_PCREL16): Change value from 8 to 12 to match Irix 4.
	(MIPS_R_RELHI): Define.
	(MIPS_R_RELLO): Define.
	(MIPS_R_SWITCH): Change value from 9 to 22.

Thu Apr  7 14:19:35 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* mips.h (MIPS_R_SWITCH): Define.

Thu Mar 31 19:28:33 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* internal.h (internal_aouthdr): Added comments for Apollo fields.

Thu Mar 31 16:28:02 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (STYP_ECOFF_LIB): Define as used on Irix 4.

Fri Mar 25 17:16:55 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (struct ecoff_debug_info): Add adjust field.
	(struct ecoff_value_adjust): Define.

Tue Mar 22 13:22:47 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* mips.h (MIPS_R_PCREL16): Define.

Sat Feb 26 10:26:38 1994  Ian Lance Taylor  (ian@cygnus.com)

	* ecoff.h: Add casts to avoid warnings from SVR4 cc.

Mon Feb 21 09:48:46 1994  Ian Lance Taylor  (ian@lisa.cygnus.com)

	* sym.h (struct runtime_pdr): Make field adr bfd_vma, not unsigned
	long.
	(SYMR): Make field value bfd_vma, not long.

Fri Feb  4 23:35:53 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* rs6000.h (STYP_DEBUG): Define.

Wed Feb  2 14:31:37 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* internal.h (union internal_auxent): Change x_csect.x_scnlen into
	a union of a long and a pointer to a symbol.  XCOFF sometimes uses
	this field as a symbol index.

Mon Jan 10 23:54:25 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (ecoff_debug_info): Remove fields line_end,
	external_dnr_end, external_pdr_end, external_sym_end,
	external_opt_end, external_aux_end, ss_end, external_fdr_end.
	Replace ifdbase with ifdmap.

Wed Jan  5 17:05:36 1994  Ken Raeburn  (raeburn@deneb.cygnus.com)

	* ecoff.h (STYP_EXTENDESC, STYP_COMMENT, STYP_XDATA, STYP_PDATA):
	Define.

Wed Jan  5 16:58:24 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (NUM_RELOC_SECTIONS): Define.

Tue Dec 21 09:24:56 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* sparc.h (struct external_reloc): Rename field r_addend to
	r_offset.

Sat Dec 11 16:12:32 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* internal.h (R_DISP7, R_SH_IMM16): New reloc types.

Tue Nov 23 14:23:19 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (struct ecoff_debug_swap): Added *_end fields for all
	the symbolic information pointers.

	* sym.h: Named the EXTR structure ecoff_extr.

Fri Nov 19 08:21:18 1993  Ken Raeburn  (raeburn@rover.cygnus.com)

	* sparc.h (RELSZ): Use correct size.

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

	* mips.h (struct ecoff_debug_info): Define.

Tue Nov  2 17:56:57 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (struct ecoff_debug_swap): Define.

Thu Oct 28 17:07:50 1993  Stan Shebs  (shebs@rtl.cygnus.com)

	* i386.h (I386LYNXMAGIC): Rename to LYNXCOFFMAGIC.
	* m68k.h (LYNXCOFFMAGIC): Define.
	* sparc.h: New file.

Tue Oct 19 15:34:50 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* alpha.h (external_aouthdr): Split four byte padding field into
	two byte bldrev field and two byte padding field.

	* ecoff.h (_LITA, _PDATA, _XDATA, STYP_LITA): Defined.

Wed Oct 13 15:52:34 1993  Ken Raeburn  (raeburn@cygnus.com)

	Sun Oct 10 17:27:10 1993  Troy Rollo (troy@cbme.unsw.edu.au)

	* internal.h: Added o_sri, o_inlib and o_vid for Apollos as well
	as R_DIR16.

	* apollo.h: New file

Mon Oct 11 17:16:48 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (REGINFO, struct ecoff_reginfo): Define.

Tue Oct  5 10:52:53 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* rs6000.h: Change non-ASCII characters in comment to octal
	escapes.

Tue Sep 28 03:27:04 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* ecoff.h (_FINI, STYP_ECOFF_FINI):  Add to support .fini section.

Fri Sep 24 11:53:53 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3.
	* ecoff.h: Define MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3.

Thu Sep 23 21:07:14 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2.
	* ecoff.h: Define MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2.

Thu Sep 16 20:27:21 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)

	* sym.h, symconst.h: Add comment stating these files are not part
	of GDB, GAS, etc.  In 1991, when we asked rms whether we could
	include these files in GDB (although they are copyrighted by
	someone besides the FSF), he said it was OK if they were not
	considered part of GDB.

Fri Sep 10 17:40:35 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (AUX_PUT_ANY): Cast val argument to bfd_vma.

	* alpha.c (external_aouthdr): Need four bytes of padding between
	vstamp and tsize.

Tue Sep  7 14:20:43 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff.h (AUX_GET_ANY, AUX_PUT_ANY): Changed to reflect further
	change in bfd swapping routine names.

Tue Sep  7 10:15:17 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* ecoff.h (AUX_GET_ANY): Change name of _do_getb32 to reflect bfd
	changes.

Fri Aug 13 14:30:32 1993  Ian Lance Taylor  (ian@cygnus.com)

	* ecoff.h (RELOC_SECTION_NONE): Define.

Thu Aug 12 11:24:42 1993  Ian Lance Taylor  (ian@cygnus.com)

	* alpha.h (struct external_reloc): Add r_symndx field.
	(RELSZ): Correct.
	(RELOC_BITS*): Correct.
	(ALPHA_R_*): Define.
	* ecoff.h (RELOC_SECTION_{XDATA,PDATA,FINI,LITA,ABS}): Define.
	(r_extern): Undefine.
	* internal.h (struct internal_reloc): Make r_vaddr bfd_vma rather
	than long.  Add r_extern field.

	* alpha.h (PDR_BITS*): Define.
	* sym.h (PDR): Give correct names to new fields.

	* ecoff.h: Moved MIPS reloc definitions from here...
	* mips.h: to here.

Mon Aug  2 16:37:14 1993  Stu Grossman  (grossman at cygnus.com)

	* i386.h:  Add Lynx magic number.

Tue Aug  3 11:17:53 1993  Ian Lance Taylor  (ian@cygnus.com)

	* alpha.h: Corrected external symbolic debugging structures to
	match actual usage.
	* internal.h (internal_filehdr, internal_aouthdr,
	internal_scnhdr): Changed type of some fields to bfd_vma so they
	can hold 64 bits.
	* sym.h (HDRR, FDR, PDR, EXTR): Likewise.
	(PDR): Added new fields found on Alpha.
	* symconst.h (magicSym2): Define; new value found on Alpha.

	* ecoff.h: New file.
	* alpha.h, mips.h: Moved common information into ecoff.h.  Moved
	external structure definitions in from ecoff-ext.h.
	* ecoff-ext.h: Removed; information now in alpha.h and mips.h.

Sun Jul 18 21:43:59 1993  Jim Kingdon  (kingdon@rtl.cygnus.com)

	* i386.h: Recognize I386PTXMAGIC.

Fri Jul 16 09:54:35 1993  Ian Lance Taylor  (ian@cygnus.com)

	* mips.h (MIPS_AOUT_{OZ}MAGIC): Renamed from {OZ}MAGIC.

Thu Jul 15 12:23:55 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* m88k.h (union external_auxent): Move x_fcn back inside x_fcnary.
	({GET,PUT}_FCN_{LNNOPTR,ENDNDX}): Adjust accordingly.

Sun Jul 11 18:00:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* m68k.h: Define MC68KBCSMAGIC.

Thu Jun 10 11:46:28 1993  Ian Lance Taylor  (ian@cygnus.com)

	* mips.h (_INIT, STYP_MIPS_INIT): Define (used on Irix4).
	(STYP_OTHER_LOAD): Define as STYP_MIPS_INIT.

Wed Jun  9 15:09:09 1993  Ian Lance Taylor  (ian@cygnus.com)

	* mips.h (OMAGIC): Define.

Tue Jun  8 12:16:03 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)

	 Support for H8/300-H
	* h8300.h: New magic number.
	* internal.h: New relocations.

Mon Apr 26 18:04:47 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* internal.h, sh.h: Support for SH.

Sat Apr 24 21:34:59 1993  Jim Kingdon  (kingdon@cygnus.com)

	* a29k.h: Define _LIT.

Fri Apr 23 18:41:23 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* alpha.h: New file.

Thu Apr  8 12:36:34 1993  Ian Lance Taylor  (ian@cygnus.com)

	* internal.h (C_SHADOW, C_VERSION): Copied in from m88k.h.
	* m88k.h, i386.h, we32k.h: Don't define all the storage classes;
	they're already in internal.h.

Wed Apr  7 11:51:24 1993  Jim Kingdon  (kingdon@cygnus.com)

	* internal.h: Change n_sclass to unsigned char.
	Change C_EFCN to 0xff, change RS/6000 dbx symbols
	to no longer be signed.

Fri Mar 19 14:52:56 1993  Steve Chamberlain  (sac@thepub.cygnus.com)

	* internal.h: Add H8/500 reloc types.

Wed Mar 17 09:46:03 1993  Ian Lance Taylor  (ian@cygnus.com)

	* ecoff-ext.h (AUX_PUT_ANY): Don't use void values in branches of
	conditional expression.

Thu Mar  4 14:12:06 1993  Ian Lance Taylor  (ian@cygnus.com)

	* ecoff-ext.h (AUX_GET_*): Rewrote to use new macro AUX_GET_ANY.
	(AUX_PUT_*): New macros corresponding to the AUX_GET macros.
	(ecoff_swap_tir_out): Added prototype.

	* mips.h (N_BTMASK, N_TMASK, N_BTSHFT, N_TSHIFT): Define; these
	are needed to interpret gcc debugging output.

Tue Feb  9 07:43:27 1993  Ian Lance Taylor  (ian@cygnus.com)

	* we32k.h (BTYPE, ISPTR, ISFCN, ISARY, DECREF): Removed
	more definitions duplicated in internal.h.

Wed Feb  3 09:18:24 1993  Ian Lance Taylor  (ian@cygnus.com)

	* mips.h (RELOC_BITS3_TYPE_*): Correct for big endian machines.

Mon Jan 25 11:35:51 1993  Ian Lance Taylor  (ian@cygnus.com)

	* internal.h (internal_aouthdr): Added additional fields used only
	by MIPS ECOFF.

Thu Jan 21 10:28:38 1993  Ian Lance Taylor  (ian@cygnus.com)

	* mips.h (AOUTHDR): Added additional fields used by ECOFF.

Tue Jan 19 12:21:19 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* i386.h, we32k.h (N_*, T_*, DT_*): Removed still more definitions
	duplicated in internal.h.

	* mips.h (RELOC_SECTION_*, ECOFF_R_*): Defined constants for ECOFF
	relocs.

Fri Jan 15 18:17:00 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff-ext.h: Added prototypes for new ECOFF swapping functions.
	(opt_ext): New structure.
	* mips.h (ZMAGIC): Defined to be 0413.
	(_LIB): Defined to be ".lib"
	(external_reloc): MIPS ECOFF relocs are only 8 bytes.  Added
	macros to aid in swapping.

Fri Jan  8 16:19:26 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* ecoff-ext.h: Added prototypes for ECOFF swapping functions.
	* internal.h (internal_scnhdr): Always provide s_align field, not
	just on i960.
	(internal_reloc): Always provide r_size field, not just on
	RS/6000.
	* mips.h (_RDATA, _SDATA, _SBSS, _LIT4, _LIT8, STYP_RDATA,
	STYP_SDATA, STYP_SBSS, STYP_LIT4, STYP_LIT8): Defined.
	(CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB,
	STABS_SYMBOL): Moved in from gdb/mipsread.c.

Wed Jan  6 14:01:46 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* i386.h, we32k.h: removed STYP_* defines, since they duplicated
	those in internal.h.

Tue Dec 29 15:40:07 1992  Ian Lance Taylor  (ian@cygnus.com)

	* i386.h: define I386AIXMAGIC for Danbury AIX PS/2 compiler.

Sat Dec 12 16:07:57 1992  Ian Lance Taylor  (ian@cygnus.com)

	* i386.h: don't define BTYPE, ISPTR, ISFCN, ISARY, DECREF: they
	are defined in internal.h.

Thu Nov 12 09:52:01 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* internal.h: (internal_reloc): r_offset is now a long.
	* z8k.h: slight comment enhancement

Wed Sep 30 07:46:08 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* internal.h: changed z8k reloc types

Fri Aug 28 10:16:31 1992  Brendan Kehoe  (brendan@cygnus.com)

	* we32k.h: new file

Thu Aug 27 13:00:01 1992  Brendan Kehoe  (brendan@cygnus.com)

	* symconst.h: comment out cruft at the end of #endif

Tue Aug 25 15:06:49 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* internal.h: added #define for STYP_LIT, removed from a29k and
	h8300.

	* z8k.h: added z8000 support

Thu Jul 16 16:32:00 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* internal.h: added R_RELLONG_NEG reloc type

Fri Jun 12 20:11:04 1992  John Gilmore  (gnu at cygnus.com)

	* symconst.h:  Fix unterminated comment.

Wed Jun 10 07:57:49 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	* i386.h: a.out magic numbers from
	mohring@informatik.tu-muenchen.de

Mon Jun  8 20:13:33 1992  John Gilmore  (gnu at cygnus.com)

	* ecoff-ext.h, mips.h:  Use unsigned chars everywhere.
	(Suggested by Antti Miettinen.)

Tue Apr 14 15:18:44 1992  John Gilmore  (gnu at cygnus.com)

	* sym.h:  Add comments.
	* symconst.h:  Merge with Fred's changes.

Tue Apr 14 14:30:05 1992  Fred Fish  (fnf@cygnus.com)

	* symconst.h:  Pick up SGI defines for stStruct, stUnion, stEnum,
	langCplusplus, and langCplusplusV2.

Thu Apr  2 19:47:43 1992  John Gilmore  (gnu at cygnus.com)

	* sym.h, symconst.h:  MIPS has provided redistributable versions
	of these files.  Thanks!
	* ecoff-ext.h:  Add weakext bit to match new sym.h.

Fri Mar  6 00:10:46 1992  John Gilmore  (gnu at cygnus.com)

	* ecoff-ext.h:  Add relative file descriptors.

Thu Feb 27 11:53:04 1992  John Gilmore  (gnu at cygnus.com)

	* ecoff-ext.h:  New file for external (in-file) form of ecoff
	symbol structures.

Thu Feb  6 11:33:32 1992  Steve Chamberlain  (sac at rtl.cygnus.com)

	* h8300.h: made the external_lineno l_lnno field 4 bytes wide.
	andded GET/PUT_LINENO_LNNO macros

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

	* a29k.h, h8300.h, i386.h, i960.h, internal.h, m68k.h, m88k.h,
	mips.h, rs6000.h: Move from above coff-<foo>.h.


Local Variables:
version-control: never
End:
