Short: IXemul 45.1 - 68000 trace 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 -------- ------- ----- --------- -------- ------------- 207336 100591 51.4% 05-Jan-97 10:57:14 +ixemul000.trace 16726 7059 57.7% 11-Dec-96 17:28:34 +README -------- ------- ----- --------- -------- 224062 107650 51.9% 14-Jan-97 22:35:50 2 files