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

	* common.h (NLM_CAT, NLM_CAT3): Don't define.
	(NLM_CAT4): Update conditions under which this is defined.  Document
	why CONCAT4 can't be used.

Fri May  6 13:31:04 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* external.h (nlmNAME(External_Custom_Header)): Add length,
	dataOffset, and dataStamp field.
	(nlmNAME(External_Cygnus_Ext_Header)): Remove.
	* internal.h (Nlm_Internal_Custom_Header): Add hdrLength,
	dataOffset, dataStamp and hdr fields.

Fri Apr 22 11:12:39 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* external.h (struct nlmNAME(external_cygnus_ext_header)): Rename
	from nlmNAME(external_cygnus_section_header).  Change stamp field
	to 8 bytes.  Add bytes field.
	* internal.h (nlm_internal_cygnus_ext_header): Rename from
	nlm_internal_cygnus_section_header.  Change stamp field to 8
	bytes.

Thu Apr 21 11:57:09 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* internal.h (struct nlm_internal_cygnus_section_header): Define.
	* external.h (struct nlmNAME(external_cygnus_section_header):
	Define.

Wed Apr 20 14:27:43 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* internal.h (struct nlm_internal_custom_header): Remove
	debugRecOffset and debugRecLength fields.  Add data field.
	* external.h (struct nlmNAME(external_custom_header)): Remove
	debugRecOffset and debugRecLength fields.

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

	* internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT.

Thu Dec  2 14:14:48 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* alpha-ext.h: New file describing formats of information in Alpha
	NetWare files.
	* common.h: Define some non-external Alpha information.

Wed Nov 17 17:38:58 1993  Sean Eric Fagan  (sef@cygnus.com)

	* external.h: Don't define external_fixed_header here.
	* i386-ext.h, sparc32-ext.h: New header files to define
	external_fixed_header for particular CPU's.

Wed Oct 27 11:45:56 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* internal.h (Nlm_Internal_Extended_Header): Added fields
	sharedDebugRecordOffset and sharedDebugRecordCount.
	* external.h (NlmNAME(External_Extended_Header)): Likewise.

	* common.h (NLM_SIGNATURE): Do not define (it's different for each
	backend).

Tue Aug 31 13:24:15 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* internal.h: Change length fields of type char to type unsigned
	char.

Sat Jul 31 02:12:14 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* common.h (NLM_HIBIT, NLM_HEADER_VERSION): Define.

Thu Jul 22 16:09:47 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* common.h (NLM_CAT*, NLM_ARCH_SIZE, NLM_TARGET_LONG_SIZE,
	NLM_TARGET_ADDRESS_SIZE, NLM_NAME, NlmNAME, nlmNAME):  New
	macros.
	* external.h (TARGET_LONG_SIZE, TARGET_ADDRESS_SIZE): Remove
	macros, convert usages to NLM_ equivalents.
	* external.h:  Use nlmNAME and NlmNAME macros to derive both
	32 and 64 bit versions.

Mon Jul 19 22:12:40 1993  Fred Fish  (fnf@deneb.cygnus.com)

	* (common.h, external.h, internal.h):  New files for NLM/NetWare
	support.


Local Variables:
version-control: never
End:
