diff -uNr --exclude-from=dontdiff linux-2.4.3/Documentation/abi/00-INDEX linux/Documentation/abi/00-INDEX --- linux-2.4.3/Documentation/abi/00-INDEX Thu Jan 1 01:00:00 1970 +++ linux/Documentation/abi/00-INDEX Fri Mar 30 16:12:20 2001 @@ -0,0 +1,28 @@ +00-INDEX + - this file +COMPAT + - a list of software that has run succesfull under iBCS +CREDITS + - a list of people that have contributed to linux-abi or iBCS +ChangeLog + - changelog of linux-abi +ChangeLog.ibcs + - changelog of the iBCS project (up to 1998) +Error.map + - mapping of error codes from Linux to various personalities +HINTS + - FAQ-style Q&A +Local-X + - help on local X interfaces +Notes.Signal + - some notes on signal handling +Personality + - an introduction into Linux personality support +README.first + - read this first! +Syscall.map + - the syscall mapping for certain personalities +TODO.ibcs + - things to be done, leftovers from iBCS + +$Id: 00-INDEX,v 1.1.1.1 2001/03/30 14:12:20 hch Exp $ diff -uNr --exclude-from=dontdiff linux-2.4.3/Documentation/abi/COMPAT linux/Documentation/abi/COMPAT --- linux-2.4.3/Documentation/abi/COMPAT Thu Jan 1 01:00:00 1970 +++ linux/Documentation/abi/COMPAT Fri Mar 30 16:12:20 2001 @@ -0,0 +1,181 @@ +C: This file contains details of programs that have been run under +C: Linux using the iBCS emulator. An entry here is no guarantee that +C: the program works 100% but does indicate that the major elements +C: of the program have been unable to exercise bugs in the emulator +C: unless otherwise noted. +C: +C: An entry in this file does not necessarily indicate that the vendor +C: or anyone else actually supports the package under Linux unless +C: there is a specific entry to that effect. +C: +C: Please add to this file - new entries, other releases, amendments +C: to existing entries etc. +C: +C: The layout of this file is intended to be both easy to browse and +C: easy to parse, allowing it to be formatted into documents in the +C: future. This hasn't happened yet though and might never happen :-). +C: +C: Key: +C: C = Comment +C: V = Vendor +C: S = Support details +C: O = Operating system compiled for +C: P = Product +C: R = Release(s) known to work +C: L = Libraries required +C: D = Description +C: N = Notes +C: T = Tester + +V: Applied Information Systems, Inc. (info@ais.com) +O: SCO +P: Xess (MOTIF Spreadsheet) +R: current +L: statically linked +N: A save-disabled demo is available in ftp.uu.net:/vendor/ais/ +N: Get three files: README, gen.tar, and sco.tar. +N: Don't add a .Z or .gz to the end of the filenames; the files +N: inside are compressed. ~300K of online documentation is in +N: gen.tar. +N: If anyone decides to actually *buy* this product, *please* +N: mention that you will be running it under Linux. I promise +N: you that you will still get technical support (the majority +N: of our technical support staff run Linux at home) -- but if +N: enough people buy the product asking for a Linux version, my +N: employer will be willing to make the investment. Pass the +N: word on if you want to see a native-mode, high-quality +N: spreadsheet for Linux as much as I do... +N: michaelkjohnson +T: Michael K.Johnson + +V: Corel +O: SCO ODT +P: CorelDraw! 3.0 and friends. +R: 3.0 +N: Requires X11, no character versions of these apps. +N: Everything seems to be statically linked, no extra libs +N: necessary. I had a few problems with my .xmodmap file +N: since CorelDraw wants all of the lower function keys to +N: be mapped to functions in the CorelDraw program. Uses a +N: networked license manager, it worked fine. My programs +N: did not install properly due to an install bug. The dir. +N: that contains the washes.3fx file and others must be hand +N: changed to mode 777 for CorelChart to work (This from +N: Corel tech support). +T: Doug Ledford + +V: Informix +O: SCO +P: Informix SQL Standard Engine +R: 4.00 & 5.01 +L: /shlib/libc_s +T: Mike Jagdis + +V: Informix +O: SCO +P: Informix SQL Online Dynamic Server +R: 7.20.UD5 +T: Mike Jagdis + +P: Informix INET +R: ??? +N: INET is reputed to work too but I can't remember who +N: said that... +T: ??? + +V: IXI +O: SCO +P: X.desktop +R: ??? +L: /shlib/libnsl_s +N: The version of X.desktop tested is that shipped with +N: Uniplex Windows. Functionality is at least enough to +N: support Uniplex Windows. +T: Mike Jagdis + +V: Oracle +O: Interactive +P: Oracle +R: V6 +L: /shlib/libnsl_s +T: Remete Gabor + +V: Soft-Tek +O: SCO +P: Tactician Plus (character and X) +R: 3.0 +T: Brandon S. Allbery + +V: SPSS Inc. +O: SCO +P: SPSS 5.0 for SCO UNIX +L: Motif, if you want to use the GUI +D: Statistical Package for the Social Sciences +N: SCO's cpio is not compatible with GNU's -- I had to dd all +N: floppys onto my hd and to concatenate them into one file. +N: I couldn't test the GUI since I had no Motif available. +T: Joerg Rade + +V: Uniplex Limited +O: SCO +P: Uniplex / Uniplex Windows +R: 7.02 +L: statically linked (Uniplex Windows requires libnsl_s) +N: Uniplex Windows is implemented using a version of IXI +N: X.desktop. It is this that requires libnsl_s. +T: Mike Jagdis + +V: V-Systems, Inc. +O: SCO +P: VSI*FAX (FxServer, FxScript, FxVision) (character and X) +R: FxServer 2.0.19, FxScript 1.1.05, FxVision 1.0.16 +L: Statically linked +N: Needs localhost in the X server's access control list +N: even when using a local X connection. +N: This has not been tested with a modem connected as I +N: don't have a Multitech... +T: Mike Jagdis + +V: ViaCrypt +O: SCO +P: ViaCrypt PGP +R: 2.4 +T: Mark C. Henderson + +V: WordPerfect Corporation +O: SCO +P: WordPerfect (character and X) +R: 5.1 +L: Statically linked +N: Installation under Linux may require changes to some of +N: the WP install scripts. See the PROD.Patches/WP file +N: for details. +N: +N: WP uses a network license manager. +N: +N: For some reason WP use a partition floppy device rather +N: than the full block device. Linux does not have this so +N: you need to use dd to skip the first cylinder (track?) +N: when loading the floppies under Linux. See the HINTS +N: file for details. +N: +N: Fonts appear corrupt. See the HINTS file for a cure. +T: Mike Jagdis + +V: Z-Code Inc +O: SCO +P: Z-Mail +R: 3.2 +L: Statically linked - Motif based. +N: Installation scripts work correctly. +N: +N: ZMail can use a network license manager or a license file. +N: Both are known to work. +N: +N: ZMail is a GUI-based mail program. +N: +N: You can download the binaries for ZMail via anonymous ftp +N: ftp@ncd.com +N: You will have to contact Z-Code to obtain an evaluation +N: license if you wish to try it out. +T: Eric Youngdale diff -uNr --exclude-from=dontdiff linux-2.4.3/Documentation/abi/CREDITS linux/Documentation/abi/CREDITS --- linux-2.4.3/Documentation/abi/CREDITS Thu Jan 1 01:00:00 1970 +++ linux/Documentation/abi/CREDITS Fri Mar 30 16:12:20 2001 @@ -0,0 +1,79 @@ +A (non-definitive) list of people who appear to have worked on the +emulator and, in some cases, what they appear to have done. + +This list is in no particular order. + +This list should probably be better maintained :-). + +If anyone feels that they are not properly credited here, send diffs to +this file. + + +======================================================================== + +Brandon S. Allbery or + +Graham Adams + +Tor Arntsen or + Emulator as of pl13 + +Philip Balister + Emulator as of pl13 + gdb for coff + +Alfred Longyear + COFF loader + Emulator as of pl12 + Original author of libc_s. COFF version. + +Mike Jagdis + Changes for loadable module version of the emulator. + Multi-personality detection and syscall mapping. + Error code mapping. + Wyse V/386 socket interface. + /dev/socksys socket interface. + /dev/spx to Unix domain socket for local X connections. + Named pipe to Unix domain socket open kludge. + XTI/TLI STREAMS based networking interface. + X.out loader for 386 Xenix binaries. + BSD support. + Trace dummy device. + Segment (LDT) mapping for x.out binaries. + Xenix 286 emulator overlay. + Current source maintainer and primary developer. + +Joseph L. Portman III + Major emulator developer. + libc_s + +Drew Sullivan + Past emulator source maintainer. + +Eric Youngdale (prev. & ) + First cut of the emulator. + ELF loader, plus memory manager and fs/exec.c modifications + to allow multiple binary formats to be loaded. + Keeper of the tsx-11 archive. + libc_s (elf version), plus bugfixes, reorganization, etc. + SVr4 portions of emulator. + +Karl Kiniger + Interactive 4.0 binary recognition and special support. + +Remete Gabor + Miscellaneous patches. + +Scott Michel + SCO multiscreen ioctls. + +Stephan Riess + SCO tape ioctls. + +Peter Polte + Xenix fcntl() file locking facilities. + +C.A. Lademann + +Miguel de Icaza + Sparc support. diff -uNr --exclude-from=dontdiff linux-2.4.3/Documentation/abi/ChangeLog linux/Documentation/abi/ChangeLog --- linux-2.4.3/Documentation/abi/ChangeLog Thu Jan 1 01:00:00 1970 +++ linux/Documentation/abi/ChangeLog Fri Mar 30 16:26:49 2001 @@ -0,0 +1,9 @@ +2001-03-30 Christoph Hellwig + + linux-abi 2.4.3.0 + + * fix shared library support for COFF + * x.out is now supported (again) + * redo setting of personality based on ELF headers + * get rid of CONFIG_ABI_TRACE (and a lot of nasty ifdefs) + * added documentation, mostly from iBCS diff -uNr --exclude-from=dontdiff linux-2.4.3/Documentation/abi/ChangeLog.ibcs linux/Documentation/abi/ChangeLog.ibcs --- linux-2.4.3/Documentation/abi/ChangeLog.ibcs Thu Jan 1 01:00:00 1970 +++ linux/Documentation/abi/ChangeLog.ibcs Fri Mar 30 16:12:20 2001 @@ -0,0 +1,2769 @@ +Thu Nov 5 21:45:41 GMT 1998 + + * Fixed the bug that lets reads and writes on /dev/socksys + take out the kernel. + -- Mike + + * Added a kludge around for Sybase isql which appears to + have initialised a struct sockaddr using: + sa.sa_family = htons(AF_INET); + I guess this works on SCO? + -- Mike + + +Sat Oct 31 14:15:44 GMT 1998 + + * Documentation update. + + * If we are doing a T_BIND_REQ with a null address we can + ignore the connection backlog. Listening makes no sense + but some software seems to set it 1 for the hell of it. + -- Mike + + +Tue Oct 20 20:34:20 BST 1998 + + * Changed the debug messages printed when exec tracing + sees a pointer error on an arg or env entry. It may not + be a "real" error. It could be that we just cannot get + a free page or perhaps the entry is too long for getname(). + Whatever, we do not really care at this point anyway. + -- Mike + + +Sat Oct 17 20:24:59 BST 1998 + + * Documentation update for today's release. + -- Mike + + +Thu Oct 15 21:39:16 BST 1998 + + * When checking personality only look at the base personality + and ignore the flags. There is at least one case I can + think of, PER_SHORT_INODE, where the personality should + be considered the same even when the flags are different. + -- Mike + + * Added the location of the kernel source as an option + in the CONFIG. Hopefully this will make it a little + more obvious that iBCS is *dependant* on the kernel. + -- Mike + + * Set SO_BSDCOMPAT on sockets. SYSV has BSD handling of + ICMP errors on UDP sockets rather than RFC conformance. + I think... + -- Mike + + +Wed Oct 14 22:50:48 BST 1998 + + * When using some user stack as temporary work space we + only leave 1k between the work space and the real user + stack. This is because Informix Dynamic Server uses + threads with limited stack space and the idea of dropping + 16k below what would normally be touched on a SCO system + worries me a bit. + -- Mike + + +Sun Oct 11 11:58:58 BST 1998 + + * Changed the Tools Makefile to install mkmnttab in + /usr/bin. Informix Dynamic Server _requires_ a + valid /etc/mnttab. + -- Mike + + +Sun Oct 11 11:44:58 BST 1998 + + * When doing an I_PEEK or I_NREAD STREAMS ioctl we have + to do a probe on sockets in case we need to generate + a control message (e.g. T_CONN_IND) which should then + be offered. This also allows T_CONN_IND messages to be + returned in several MORECTL divided pieces should it + ever be necessary. This is required by Informix Dynamic + Server which does a poll then I_PEEK on a listening + socket before actually picking up the connection. Dynamic + Server is system call hell :-). + -- Mike + + * When we do a timod operation via an ioctl there seems + to be no way to cope if the returned message is larger + than the original request. We can't expect the app to + come back for the extra and returning MORECTL to the + app seems to confuse things. Therefore we just discard + the excess. This case is required when an app (e.g. + Informix Dynamic Server) tries to set SO_LINGER using + an int instead of a struct linger via an ioctl. + -- Mike + + * Added some debug to the poll handler so we can see what + is being polled. + -- Mike + + * More debug message changes. + -- Mike + + * Wrap SO_LINGER handling so we can survive if an int is + passed instead of s struct linger. It seems that other + systems do not do such robust error checking as Linux. + Note that if an int is passed we probably do not do what + other systems would but at least we don't give unexpected + errors to broken applications. + -- Mike + + +Sat Oct 10 15:58:29 BST 1998 + + * Added an entry to Doc/HINTS noting the the Informix + Dynamic Server install requires an /etc/mnttab. + -- Mike + + * Wrong option length being passed through to setsockopt() + from the TLI/XTI optmgmt routine. + -- Mike + + * When stating files only map "ext2" to "HTFS" for SCO + programs - and then only if the filesystem name really + was "ext2". + -- Mike + + * SCO has a different value for the _SC_PAGESIZE argument + to sysconf() than SVR4. Informix wants it to work. + -- Mike + + * Hmmm, Informix Dynamic Server may or may not be looking + at the major number on a socket. (I _think_ it does + sometimes). It definitely checks that sockets have + S_IFCHR set in their file modes though... + -- Mike + + * Changed some debug messages to make it easier to read + logs when more than one iBCS handled process is running. + -- Mike + + * If we get a STREAMS ioctl on a file descriptor only + initialize the socksys handler on it if it is not + already a socket but does belong to the socksys device. + -- Mike + + +Thu Oct 8 21:20:43 BST 1998 + + * When punting a pseudo device transport provider to a + socket copy the device numbers between the inodes. This + is because Informix Dynamic Server stats the pseudo + device node (/dev/socksys) then stats the socket it + gets and compares the major numbers. Sheesh... + -- Mike + + * If socksys_close gets something that is not a socket + it is probably the original pseudo device which was + opened just for an ioctl or two. This is not an error. + -- Mike + + * Some programs, notably the Informix Dynamic Server + install program compare the filesystem name from a + stat or sysfs against their own hard coded list of + known "real" filesystems. Hence we call "ext2" "HTFS" + instead for SCO processes. + -- Mike + + * Informix DS also checks the release part of the utsname + data to make sure it says "3.2v5.0.0". So now the + utsname struct looks even more like SCO. + -- Mike + + * Only dump the ctl part of messages in timod if + tracing is enabled. + -- Mike + + * SCO has statvfs in the same place as SVR4 but they have + added a field slap bang in the middle of the struct to + allow some inodes to be reserved for root in much the + same way that some blocks may be reserved. + -- Mike + + +Thu Oct 8 20:48:46 BST 1998 + + * On timod bind and connect the size of the address is + allowed to be the _used_ bytes whereas the underlying + socket functions require the _total_ bytes. This is + a problem for Sybase. + -- Mike + + +Sun Aug 30 21:49:46 BST 1998 + + * Changed socksys.c to handle new file_operations struct + in kernel 2.1.119 and later. + -- Mike + + +Sat Aug 22 19:57:01 BST 1998 + + * Fixes and additions to user pointer checking in ipc.c + -- Mike + + * Changed some more KERN_ERRs to KERN_DEBUGs in the + STREAMS ioctl support. + -- Mike + + +Fri Aug 21 20:24:32 BST 1998 + + * Somehow fchdir had been missed from the main iBCS call + map even though it had been put in the BSD map. Oops. + -- Mike + + +Wed Aug 19 23:12:47 BST 1998 + + * ALPHA 2.1 release number 2... + -- Mike + + +Wed Aug 19 20:43:09 BST 1998 + + * Avoid calling rt_sigaction if the mapped signal number + is -1. It is not strictly necessary but why bother? + -- Mike + + * Added David Bruce's updated x286emul. + -- Mike + + +Mon Aug 17 21:29:53 BST 1998 + + * Avoid calling fput with a NULL file pointer. + -- Mike + + +Sun Aug 16 17:32:20 BST 1998 + + * Fix to copy_{to,from}_user return checking. In many + cases we do not care because they are behind verify_area + checks but in some we do - and copy_{to,from}_user + returns the number of bytes _uncopied_. + -- Mike + + +Sat Aug 15 23:39:42 BST 1998 + + * Change the flock handling to bounce the flock struct + through kernel space rather than using an in place + modification. The assumptions we were making about + segment registers seem to have become invalid at some + point. We could go to put_user(get_user()) but moving + the whole struct is probably more robust. Which is + faster? I dunno... + -- Mike + + +Sat Aug 15 22:30:41 BST 1998 + + * Changes to signal functions. Previous code confused old and + new sigsets and could have lead to memory corruption and + was likely the cause of signals getting blocked unexpectedly. + Now we use the rt_sig* and new sigset interface to the + kernel exclusively (in a few years the old stuff may be + removed). This does means that a non-Linux program may + now operate on signals >32 which may not have existed + (and therefore would have errored) in the native environment. + This may be considered a bug or a feature as appropriate... + -- Mike + + +Mon Jul 20 22:23:14 BST 1998 + + * ALPHA 2.1 release... + -- Mike + + +Mon Jul 20 20:55:47 BST 1998 + + * Added support for I_FDINSERT in the STREAMS/TLI message + protocol handling. This allows TLI server code to work + using a _real_ libnsl_s (tested briefly) but will break + server code using my replacement libnsl_s until I update + it. (It should probably use an I_FDINSERT simply so it + can still run under SYSV if ever necessary.) + -- Mike + + * Use TIOCINQ instead of FIONREAD in the STREAMS ioctl handler. + FIONREAD isn't actually supported on sockets. The socksys + code already had this right. + -- Mike + + * Do the MOD_INC, MOD_DEC calls for sockets in the inherit + and release handling only to reduce the opportunity for, + ah, "oversights". + -- Mike + + +Thu Jul 16 22:11:48 BST 1998 + + * Finally got round to adding a GNU CopyLeft! + -- Mike + + * Set up an XTI/TLI private state struct on all sockets at + the same time we plug our own file operations in. This + costs a small amount of extra memory per socket. However + this is strictly correct (although unlikely to be actually + _required_ by anything). It also allows us to set up TEPs + created by XTI/TLI listen/accept easily so they have a + chance of working. + -- Mike + + * XTI/TLI fixes: + Do not auto-listen in getmsg() - listen() after connect() + appears to crash some 2.1 kernels(?). + Change the probe for activity in getmsg() to use the + new poll handler directly. + Handle listening TEPs slightly better. + -- Mike + + * Changed a stray KERN_ERR to KERN_DEBUG in ioctl.c + -- Mike + + +Fri Jul 3 23:20:37 BST 1998 + + * Fixed the initial set up of the argument and environment + lists which were broken during the change to 2.1 style + user memory access. + -- Mike + + +Mon Jun 29 22:50:11 BST 1998 + + * Put kernel_version definition back in emulate.c + -- Mike + + * Change loaders to set start_text, end_text, start_data, + end_data, start_brk, brk fully. + -- Mike + + +Thu Jun 25 21:18:11 BST 1998 + + * Added support for the "fat" IPC structures which use + 32 bit uids, gids etc. + -- Mike + + +Wed Jun 24 21:30:09 BST 1998 + + * Change suser() checks to use the new capable() calls. + -- Mike + + * Changed the CONFIG default to NOT support Xenix 286. It + is an ever increasing build problem. It needs a volunteer + to rewrite it. + -- Mike + + * Add locking around system_utsname data using the uts_sem. + -- Mike + + * Changed to use dentry stuff. Use fget()/fput() to get + file pointers rather than accessing task fd tables + directly. Use poll interface for SYSV poll and timod + blocking checks. Use lock_kernel()/unlock_kernel() + around stat routines and other namei stuff. Use dput() + to release dentries obtained with namei(). Other + incidental fixes to what went before as I noticed them. + -- Mike + + +Tue Jun 9 20:02:56 BST 1998 + + * More changes for new module conventions. + -- Mike + + * Changed signal stuff to new conventions. + -- Mike + + * Changed getname() calling convention. + -- Mike + + * Changed fs type to mm_segment_t. + -- Mike + + * Changed user VM accesses to use new conventions. + -- Mike + + +Sat Jun 6 20:30:00 BST 1998 + + * Changed to new module conventions. + -- Mike + + +Thu May 28 22:30:45 BST 1998 + + * Removed VM_STACK_FLAGS tests. + -- Mike + + * Remove VM_GROWSDOWN tests. + -- Mike + + * Removed MAP_EXECUTABLE tests. + -- Mike + + * Removed MAP_DENYWRITE tests. + -- Mike + + * Removed STACK_TOP tests. + -- Mike + + * Removed FORKNOEXEC tests. + -- Mike + + * Removed INIT_MM tests. + -- Mike + + +Mon May 18 22:49:56 BST 1998 + + * Fixed xnx_rdchk() return value. + -- Mike + + * The serial number returned in the SCO utsname struct + can now be set with sco_serial="..." as a module + option. Some program apparently want to find a real, + believable serial number there. This should be documented + somewhere other than here I guess... + -- Mike + + +Mon May 18 22:03:49 BST 1998 + + * A class 't' ioctl with no arg type stuff in the top + word is either an SVR4 tape ioctl a Coherent BSD-ish + termios ioctl. + -- Mike + + +Mon Feb 2 22:57:45 GMT 1998 + + * Other relatively minor changes to allow compilation + under glibc (specifically 2.0.6 but it shouldn't + matter). + -- Mike + + * Added an explicit -I flag to search /usr/src/linux/include + since glibc doesn't necessarily require the kernel + includes to be symlinked under /usr/include. + -- Mike + + * The personality defaults in binfmt_coff should probably + select short inodes on the assumption that newer stuff + is likely to be built as ELF anyway. I hope. + -- Mike + + +Wed Nov 19 19:28:07 GMT/BST 1997 + + * Attempt to work around problems with sign extension + when programs believe that the fs magic in a sysfs() + call is short rather than long. + -- Mike + + * Added IPPROTO_IP/SOL_IP option name mapping for + {get,set}sockopt. This is correct for SCO OS5 and + hopefully for other SYSV derived Unices. Note that + SCO OS5 ping still doesn't work because it uses an + unsigned char for the IP_TTL value whereas Linux + wants an int - and it objects to getting an error + return. Apparently POSIX 1003g says IP_TTL should + be an unsigned char so OS5, or at least its ping, + is at fault. This probably isn't worth hacking + around unless someone _really_ needs it. + -- Mike + + +Wed Nov 12 22:28:19 GMT/BST 1997 + + * Added the SCO-ish syscall shortcut to the socksys + networking code. + -- Mike + + +Fri Nov 7 20:13:05 GMT/BST 1997 + + * Oops, I installed the SCO signal tables in the old + personality mapping but forgot to create a specific + SCO personality using them. + -- Mike + + +Thu Nov 6 08:04:37 GMT/BST 1997 + + * No, it really should be USR1 for URG under SCO, not + USR2. This is according to the SCO Network Programmer's + documentation. The previous problem was because + confusion between the SVR4 and SCO/SVR3 requirements + prevented a SCO program from registering a handler + for the right signal, I think. + -- Mike + + +Wed Nov 5 14:23:22 GMT/BST 1997 + + * Created a new signal mapping for SCO and mapped + Linux SIGURG to SCO SIGUSR2. Also changed the + plain ibcs mapping for SIGURG back to IBCS_SIGURG. + Previously I had SIGURG mapped to SIGUSR1 for + what my subconscious says was a good reason but + I can't figure out where I got it from. The USR2 + mapping is according to Peter Brueckner - and if + it works for him... + -- Mike + + +Wed Nov 5 09:14:27 GMT/BST 1997 + + * Repair the STREAMS based socket code. The new socket + hashing in 2.0.30 and beyond means the old code no + longer works. We now delay replacing the fd with + a socket until the first read, write or ioctl. Since + the open has completed at this stage and the fd is + fully initialized we can then use dup() to do the + fd switch, which should always work. As a side effect + this allows us to auto-connect an SPX pipe to X :0 + if the first operation is other than a single character + write - which should allow us to handle v. old SVR3 + X programs side by side with their more modern, and + common, multi-SPX pipe descendants. + This does mean that some error returns from an + open of a TLI special file might be delayed until + the first operation, however a) these are unlikely + to occur (they are things like no such protocol) + and b) most opens of such files are hidden in + functions like t_open() anyway so if there is a + problem a simple fix to libnsl to check the first + ioctl is all that is needed. + -- Mike + + * sysfs() used to enumerate available filesystems seems + to be 0 based on Linux but 1 based on SYSV. + -- Mike + + +Sun Oct 12 00:18:33 GMT/BST 1997 + * Ioctls on the NFS pseudo device need to go via the + emulation code rather than the native ioctl handler. + -- Mike + + +Sat Aug 16 14:56:24 GMT/BST 1997 + + * Changed the use of errno in a prototype in ibcs.h to + avoid possible conflict with an SMP errno definition + which could get inherited from an include file if we + aren't careful. + -- Mike + + +Sat Jul 12 01:00:00 GMT/BST 1997 + + * Added Xenix locking() modes 5, 6, 7 as per patch from + David Bruce (there were others + too). I rewrote it to be a bit cleaner but I haven't + tested it (it's late...). Some one will tell me I guess. + -- Mike + +Fri Jul 11 22:27:13 GMT/BST 1997 + + * Added more console ioctl traps to discourage programs + from trying to do funky stuff with the console without + logging unsupported ioctl messages. + -- Mike + + * sysfs() can, apparently, map an fs magic number to + an fs name. We do this outside the kernel sysfs() + because there seems no clean way to do it. We simply + have a list of known magic numbers hard coded :-(. + -- Mike + + * Implemented sysconfig(). This is appears to be the SVR4 + forerunner to the POSIX sysconf(). + -- Mike + + +Tue May 13 20:52:05 GMT/BST 1997 + + * Hand off xmknod calls via ibcs_mknod so that we can + create a directory if that is what the flags imply. + I have not tested to see if xmknod is allowed to create + directories - I just noticed it in passing. + -- Mike + + * Added SCO's F_GETHFDO (get highest fd open) fcntl. This is + used by /bin/csh on SCO OS5 to save a few syscalls. + -- Mike + + +Tue May 13 00:10:09 GMT/BST 1997 + + * More changes to handle long/short inode environments + plus more explanation in the code. Are we having fun yet? + -- Mike + + +Sat May 10 15:19:39 GMT/BST 1997 + + * Added socketpair() to the socksys emulation. This is + as implemented by SCO OpenServer 5. + -- Mike + + * Change binfmt_coff.c to recognise programs compiled for + SCO OpenServer 5, programs compiled for SCO 3.2.4 and + programs compiled under SCO OpenServer 5 but with + compatibility for ODT3.0. Why? Well, sometimes we + should be giving long inodes in returns from getdents, + sometimes short inodes. We don't just want to mask + off the high part because that can lead to some + things becoming invisible. We don't want that. + -- Mike + + +Fri May 9 23:29:37 GMT/BST 1997 + + * Added some more tape ioctls. + -- Mike + + +Wed Apr 16 23:12:37 GMT/BST 1997 + + * Fix memory leaks in poll.c and change ENOMEM return + to EAGAIN. + -- Mike + + +Tue Mar 11 21:29:15 GMT/BST 1997 + + * Add {get,set}rlimit to the SYSV personalities. + -- Mike + + +Fri Mar 7 21:04:24 GMT/BST 1997 + + * Only build x286emul if EMU_X286 is enabled in CONFIG. There + are many insallations which appear to either not have the + a.out compiler support or have it installed incorrectly. + -- Mike + + +Tue Feb 18 22:04:39 GMT/BST 1997 + + * Removed unnecessary and incorrect includes. + -- Mike + + +Wed Feb 12 22:03:13 GMT/BST 1997 + + * Documentation updates for release. + -- Mike + + +Mon Feb 10 22:36:27 GMT/BST 1997 + + * Dammit! The inode folding in stat() and getdents() was + out of step _again_ :-(. + -- Mike + + +Sun Jan 5 17:20:20 GMT/BST 1997 + + * sysconf(_SC_CLK_TCK) should return the value of HZ. + -- Mike + + * Small clarification to README concerning shared libraries. + -- Mike + + * Removed the bit about UnixWare X binaries not working from + Doc/HINTS. Now we have STREAMS/TLI emulation this is no + longer true (and hasn't been for a while). + -- Mike + + +Sat Jan 4 19:31:26 GMT/BST 1997 + + * If we open() something that is really a socket we close + it and reopen it using socket(), connect(). This allows + a Unix domain socket to look like a named pipe which + enables more SYSV X clients to connect to a local X + server using the local method (with suitable symlinks + to map the pathnames). + -- Mike + + +Fri Jan 3 22:39:15 GMT/BST 1997 + + * Added a (simplistic) implementation of the I_CANPUT SVR4 + STREAMS ioctl. + -- Mike + + * Changed CONFIG.i386 to note that a correct setting of SMP + is now necessary. + -- Mike + + +Wed Oct 2 16:28:39 GMT/BST 1996 + + * Intercept mknod() and allow it to create directories. Linux + doesn't allow this but SYSV does. (What about BSD?) + -- Mike + + +Wed Oct 2 15:56:57 GMT/BST 1996 + + * Separated out the spx connect code so we can support old, + single connection spx implementations once we know how to + recognise them. + -- Mike + +Wed Oct 2 15:54:45 GMT/BST 1996 + + * At some stage I add some binfmt_elf.c changes that were + made to the kernel ELF loader in some 2.0.x patch. I forget + which now but no one should be using the iBCS ELF loader + currently anyway. + -- Mike + + +Fri Aug 23 15:42:04 GMT/BST 1996 + + * Moved svr4sig to the right place. + -- Mike + + * Moved error message strings to a separate file so they can + be shared by emulate.c and solaris.c. + -- Mike + + * CONFIG files now define ARCH to be the CPU architecture. This + is used to ensure that architecture specific files are only + used when necessary. + -- Mike + + * Changed the getdents routine in open.c to use the same + rules for folding 32 bit inodes to 16 as stat and read. + -- Mike + + +Mon Aug 19 13:33:42 GMT/BST 1996 + + * Correct IPC problem introduced with Sparc changes. + -- Mike + + +Fri Aug 9 13:27:49 GMT/BST 1996 + + * Fix the inode swapping for /dev/spx and XTI/TLI transports. + -- Mike + + * If a COFF binary doesn't have a .comment section we have no + way to tell what personality we should be using. Switch to + SCO anyway - odds on it is. + -- Mike + + +Wed Aug 7 14:22:11 GMT/BST 1996 + + * On SCO at least lseek on a character or block device + returns 0 not -ESPIPE. + -- C.A. Lademann + + * Some problems with /dev/spx and TLI end point handling that + could leak descriptors, memory and leave the lists of file + locks in an inconsistent state. Not to mention the fact that + the socket data in an inode also contains a pointer back to + the process' file structure. I _think_ I have this sorted + out now... + -- Mike + + * Sparc changes broke select. While I was at it I changed it + to use the newselect Linux call as well. If we build without + tracing we'll save a few more bytes of code now too. + -- Mike + + +Wed Jul 31 14:16:38 GMT/BST 1996 + + * Map EAGAIN to EWOULDBLOCK for recv*() and send*() syscalls. + Linux seems to return EAGAIN. X/Open allows either EAGAIN + or EWOULDBLOCK. SVR4 and Wyse V/386 specify EWOULDBLOCK in + their man pages. SCO doesn't admit to non-blocking possibilities + in their man pages but some code seems to expect only + EWOULDBLOCK. + -- Mike + + +Mon Jul 29 16:58:11 GMT/BST 1996 + + * Added a CONFIG option for SMP. This is enabled by default. + I don't think this is a problem for non-SMP systems? + -- Mike + + * Minor change to the SCO error map. + -- Mike + + +Fri Jul 26 09:13:43 GMT/BST 1996 + + * Updated README and RELEASE + -- Mike + + * Merged Sparc patches from: + Miguel de Icaza + -- Mike + + +Thu Jul 4 12:24:06 GMT/BST 1996 + + * The default is now *not* to build a versioned module. I got + too many questions about why it wouldn't compile. + -- Mike + + * Fix to binfmt_xout.c when Xenix 286 is emulation is not + configured. + -- Mike + + +Fri Jun 14 13:36:18 GMT/BST 1996 + + * Added code to explicitly fail the SCO LD?MAP ioctls used + for channel mapping. + -- Mike + + +Thu Jun 6 17:21:00 GMT/BST 1996 + + * Cleaned up Stephans SCO tape ioctls and added the + corresponding SVR4 versions (untested). + -- Mike + + +Wed Jun 5 10:47:24 GMT/BST 1996 + + * Rewritten the Xenix locking() syscall. The previous one + was crap. + -- Mike + + * Change the read on directory emulation to fold long inodes + to shorts in the same way as stat and getdents. This may + help old programs that use stat and read to do a getcwd + rather than a stat and getdents. + -- Mike + + * Use __get_free_page instead of get_free_page in getdents + since we don't need the buffer cleared initially (I think). + -- Mike + + +Sat Jun 1 09:50:30 MET DST 1996 + * Added some tape ioctrls for SCO to iBCSemul/ioctl.c. + -- Stephan + + +Fri May 31 08:44:51 GMT/BST 1996 + + * Move bsdioctl.c to the main group of source files from + than the BSD specifics. Just about everything else has + BSD style sgtty stuff and some seemingly modern code + actually depends on it (e.g. ISC SVR4 telnet)! + -- Mike + + * Add CONFIG option to build a versioned module. + -- Mike + + * Install the modules in /lib/modules/`uname -r`/misc for + compatibility with the modules tools. + -- Mike + + * If the requested connection indications in a bind request + is greater than zero do a listen() if the bind is successful. + We still also do a listen() if the program selects() on + a bound but unconnected stream. This may help some broken + programs. It may also break some broken programs. It's + debatable whether this should now be in or out. + -- Mike + + * The bit vector mapping used for converting vectors of + signal flags had an off by one error. The signal maps + themselves were also one entry short. + -- Mike + + * At some stage I changed the I_SETOWN STREAMS ioctl but + never committed it? + -- Mike + + +Thu May 9 12:51:10 GMT/BST 1996 + + * Change to install in /lib/modules/`uname -r`/misc instead + of /usr/lib/modules for compatibility with the way the + modules tools have gone. + -- Mike + + +Thu Apr 25 12:34:06 GMT/BST 1996 + + * Use the CONIND_number in a T_BIND_REQ to decide whether + or not we should listen() on the socket. + -- Mike + + +Mon Apr 22 15:42:47 GMT/BST 1996 + + * Added a simple loader that will atte