1999-07-12  Ian Lance Taylor  <ian@zembu.com>

	* aout64.h (N_SHARED_LIB): Define as 0 if TEXT_START_ADDR is
	defined as 0.

Sun Jun 28 11:33:48 1998  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* stab.def:  Add N_ALIAS from SunPro F77.

Mon Mar 11 12:15:52 1996  Ian Lance Taylor  <ian@cygnus.com>

	* stab.def: Use __define_stab_duplicate rather than __define_stab
	for duplicate entries N_BROWS and N_MOD2.
	* stab_gnu.h (__define_stab_duplicate): Define before including
	stab.def.

Fri Oct 27 17:47:16 1995  Niklas Hallqvist  <niklas@appli.se>

	* aout64.h, host.h, hp300hpux.h, sun4.h: Changed PAGE_SIZE to
	TARGET_PAGE_SIZE.

Tue Sep 12 12:07:02 1995  Ian Lance Taylor  <ian@cygnus.com>

	* sun4.h (struct internal_sun4_dynamic_link): Change all fields
	from long to unsigned long.

Wed Jul 12 00:15:13 1995  Ken Raeburn  <raeburn@kr-pc.cygnus.com>

	* sun4.h (PAGE_SIZE): Undefine before defining.

Thu Jun 16 14:22:55 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* aout64.h (BMAGIC): Define.

Sat Jun 11 16:16:09 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	Add weak symbols as an extension to a.out.
	* aout64.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB): Define.
	* stab.def: Update symbol value table.

Thu Jun  2 17:13:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* sun4.h (EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE): Correct from 28 to
	24.  Fix up ld_got comment.

Wed Mar 30 00:31:49 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* dynix3.h:  Cleanup, adapt to current bfd version.

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

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

Fri Feb 11 12:56:04 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* ar.h (ARMAG, ARMAGB, ARFMAG): Change '\n' to '\012', for greater
	portability.

Fri Jan 21 00:59:06 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* sun4.h: Added information about SunOS shared libraries.

Fri Jan  7 08:20:13 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)

	* aout64.h (N_TXTADDR): Add comment regarding OMAGIC and NMAGIC.

Sat Dec 25 14:55:41 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* aout64.h (N_DATOFF): Don't pad (revert change of 8 Jul 1993).

Tue Nov 16 15:43:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* aout64.h: New macros ZMAGIC_DISK_BLOCK_SIZE and N_DISK_BLOCK_SIZE
	for Linux ZMAGIC.
	(N_TXTOFF, N_DATOFF): Use them.

Thu Nov  4 00:33:48 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* aout64.h (RELOC_STD_BITS_RELATIVE_LITTLE): Fixed value to match
	sun3 system; used to overlap other fields.
	(RELOC_STD_BITS_JMPTABLE_LITTLE): Likewise.

Wed Nov  3 13:48:27 1993  David J. Mackenzie  (djm@thepub.cygnus.com)

	* aout64.h (RELOC_STD_BITS_BASEREL_LITTLE): Make it 0x10 (Ken's
	suggestion) to avoid conflict with RELOC_STD_BITS_EXTERN_LITTLE.

Fri Oct 29 15:09:52 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* hp300hpux.h (N_SHARED_LIB): Define to be 0.

Mon Sep 13 21:00:56 1993  John Gilmore  (gnu@cygnus.com)

	* ar.h (ARMAP_TIME_OFFSET):  Add and describe.

Mon Aug 23  Sean Fagan  (sef@cygnus.com)

	* aout64.h [ARCH_SIZE != 64]: Allow N_BADMAG to be overridden.

Mon Aug 16 14:30:14 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stab_gnu.h: Include aout/stab.def not just stab.def.

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

	* dynix3.h: New, for symmetry running dynix.

Thu Jul  8 12:52:22 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* aout64.h (N_BADMAG): Recognize QMAGIC.
	N_TXTOFF, N_TXTADDR, N_TXTSIZE: Special code for QMAGIC.
	N_DATOFF: Pad text size if we need to.

Fri Jun 18 19:19:38 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)

	* stab.def (N_ECOML): Fix comment.

Mon May 31 09:21:30 1993  Jim Kingdon  (kingdon@cygnus.com)

	* stab.def: Remove Solaris information on N_FUN stabstring grammar;
	I've transferred it to gdb/doc/stabs.texinfo, where it belongs.

Mon May 10 05:48:43 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* hp300hpux.h: Patch from Glenn Engel for linker problem and
	compatibility fix:
	(OMAGIC, NMAGIC): New definitions.
	(SHAREMAGIC): Deleted.
	(HPUX_DOT_O_MAGIC): New macro.
	(_N_BADMAG): Adjusted.
	(N_HEADER_IN_TEXT, N_DATADDR): New macros.

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

	* hp300hpux.h: New file from Glenn Engel, glenne@lsid.hp.com.

Tue Apr 27 05:51:04 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* aout64.h (struct external_exec, *MAGIC, N_BADMAG): Don't define
	if `external_exec' is already defined as a macro.
	(N_DATOFF, N_TRELOFF, N_DRELOFF, N_SYMOFF, N_STROFF): Don't define
	if already defined.
	(struct external_nlist, EXTERNAL_NLIST_SIZE): Don't define if
	`external_nlist' is already defined as a macro.

Sat Aug 15 04:23:02 1992  John Gilmore  (gnu@cygnus.com)

	* adobe.h:  Add description of a.out.adobe format.

Fri Jul  3 00:36:52 1992  John Gilmore  (gnu at cygnus.com)

	* stab.def:  Update more Solaris definitions.
	* stab_gnu.h:  Add N_SO language types, and Solaris basic float types.

Sun Jun 14 10:53:53 1992  John Gilmore  (gnu at cygnus.com)

	* stab.def:  Update descriptions of Solaris-2 stabs; add N_UNDF.

Thu Jun 11 01:12:07 1992  John Gilmore  (gnu at cygnus.com)

	* stab.def:  Add N_OBJ and N_OPT from Solaris-2.

Thu Jan 30 18:12:44 1992  John Gilmore  (gnu at cygnus.com)

	* aout/aout64.h: N_TXTSIZE needs some more parentheses.
	I don't trust C precedence.

Wed Dec 18 14:32:01 1991  Per Bothner  (bothner at cygnus.com)

	* aout/aout64.h:  Move common sunos-specific test
	to recognize shared libraries into new macro N_SHARED_LIB.
	Use it to simplify&reformat N_TXTADDR, N_TXTOFF, N_TXTSIZE.

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

	* ChangeLog, aout64.h, ar.h, encap.h, host.h, hp.h, ranlib.h,
	reloc.h, stab.def, stab_gnu.h, sun4.h: All moved from the
	devo/include directory


Local Variables:
version-control: never
End:
