Short:    IXemul 45.1 - 68020+fpu library
Author:   various
Uploader: fnf@ninemoons.com
Type:     dev/gcc

This is ixemul.library release 45.1, a shared library that makes it possible
to compile and run most Unix programs under AmigaOS with almost no changes.
IXemul is part of the ADE (Amiga Developer's Environment), a community
effort to produce a complete development environment that is stable,
available in source, and completely self-hosting.  See the ADE readme file
at ftp://ftp.ninemoons.com/pub/ade/README for more details about ADE.

As of version 43.1, IXemul includes Jeff Shepherd's networking code.  If
ixnet.library (included) is installed then ixemul.library will use the
networking functions from the ixnet.library, instead of the default dummy
implementation.  Ixnet.library works with AS225 and with AmiTCP.  It
supports both clients and daemons.  A program that uses networking functions
is completely shielded from the AS225 and AmiTCP differences by
ixnet.library, which will take care of all the details for you. That means
that there is no longer any need to provide two different binaries, one for
AS225 and one for AmiTCP.  Furthermore, it is relatively easy to add support
for other network packages.

The following are the changes made since the 45.0 release:

	Fixed a bug in the Unix Domain socket code that would
	occasionally cause a client to wait indefinately for a
	connection to be granted, while in fact the server had
	already accepted the connection.

	getdtablesize() now returns FD_SETSIZE instead of NOFILE
	(256 instead of 512). The result of this function was used
	by several X clients to discover the number of filehandles
	select() can test. And if that value is to large, you'll get
	unexpected and hard to find crashes. The same change was
	made to sysconf(_SC_OPEN_MAX).

	shutdown() could close down the whole Unix domain socket,
	causing a crash when the socket was closed a second time by
	the 'real' close.

	rename() now tests for a rename across devices and returns
	the correct error code.

	Applied patch from Norbert Pueschel to improve delayed
	unlink.

	Closing of Unix domain sockets is now atomic (between
	Forbid/Permit), otherwise the Amiga could crash if the X
	server was running at a higher priority than the client.

	Fixed a bug in ixemul.trace that caused Enforcer hits in
	gcc.

	Fixed a bug with 'du -ks /volume'. The convert_dir()
	function stored the directory name in Amiga format instead
	of Unix format.

	Norbert Pueschel greatly improved uid/gid handling in
	ixemul.library. See the README for detailed information.

	Fixed a bug in handling volumes/devices named "dev:". Ixemul
	handles the volume /dev specially (e.g., /dev/console is
	translated to console:) and that interfered with the
	handling of the DEV: device or any volume named DEV:.  To
	circumvent the /dev handling you can now use "dev:" instead
	of "/dev" or write "DEV" instead of "dev" (in other words,
	the open() function tests for the string "/dev/" in a
	case-sensitive way).

	Due to a clumsy design of the ENV: notification a signal was
	occasionally left unfreed. WShell gives warnings for that,
	so I changed the design and that should take care of the
	warning. The unfreed signal warning was harmless, but
	annoying.

	Now fill the file type in the dirent struct. Thanks to Lars
	Hecking for reporting this.

	Some AmigaOS programs started from an ixemul program set
	Signals that were allocated by ixemul. This can happen
	because ixemul resets the allocated signal mask in the Task
	structure.  Because of that a handshake between the child
	and the parent when the child process is dying failed, and
	Enforcer hits (usually followed by a crash) were the result.
	Fixed by resetting all Signals.

	Fixed a bug in the trap.s supervisor() code: you cannot
	safely pass data on the stack to the function to be executed
	in supervisor mode. In fact, this failed with a beta version
	of the 68060.library from Phase 5. Now pass the data through
	registers.

	Fixed bug in frexp(0.0, &i) where i was set to 1 instead of
	0.

	Fixed 32 Kb memory leak.

	Added tty CRMOD support.

	Fixed serious bug in unix domain sockets where a kind of
	deadlock situation could occur.

	system() now searches the whole path for 'sh' and doesn't
	use /bin/sh only.  Also the paths in paths.h have been
	ADE-dified. Thanks to Robert Davis for pointing out the
	system() problem.

	select() on a small file that was stored in memory if the
	user selected a non-zero Membuf size in ixprefs didn't
	produce the expected results. Thanks to Stefan Grosse Pawig
	for reporting this.

The net ixemul library distribution consists of several archives:

  ixemul-bin.lha	Utils for gnu/bin, like ixtrace and ixconfig

  ixemul-sdk.lha	Files needed to build applications that use
			ixemul.library.

  ixemul-doc.lha	Various documentation, such as this file

  ixemul-src.lha	Complete source code for ixemul library

  ixemul-tz.lha		Pieces for doing TZ (timezone) management

  ixemul-CCCF.lha	Specific flavors of the library, where 'CCC'
			is one of 000, 020, 030, or 040, for 68000, 68020,
			68030, and 68040 respectively, and 'F' is either
			'f', 's', or 't' for FPU support or soft floating
			point or a "trace" version (also soft float)
			respectively.

For further information consult the NEWS, INSTALL, README and TODO files in
the documentation archive.

-Fred Fish  (fnf@ninemoons.com)


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
  162812   88332 45.7% 05-Jan-97 11:12:56 +ixemul020fpu.library
   16736    7778 53.5% 05-Jan-97 10:26:34 +ixnet020fpu.library
   16726    7059 57.7% 11-Dec-96 17:28:34 +README
-------- ------- ----- --------- --------
  196274  103169 47.4% 14-Jan-97 22:36:08   3 files