diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1998-02-09 21:58:22 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1998-02-09 21:58:22 +0000 |
commit | 020e22c60af19d8d3c26eb178ce4a826398a45c3 (patch) | |
tree | b5394753a8299c05de9ae27c299bc60fb4b056b2 /share/man/man8/compat_ibcs2.8 | |
parent | c5122cb55ab1877a7f47e39b658697e727eaac90 (diff) |
from netbsd
Diffstat (limited to 'share/man/man8/compat_ibcs2.8')
-rw-r--r-- | share/man/man8/compat_ibcs2.8 | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/share/man/man8/compat_ibcs2.8 b/share/man/man8/compat_ibcs2.8 new file mode 100644 index 00000000000..aeb9c4f711b --- /dev/null +++ b/share/man/man8/compat_ibcs2.8 @@ -0,0 +1,164 @@ +.\" $OpenBSD: compat_ibcs2.8,v 1.1 1998/02/09 21:58:21 deraadt Exp $ +.\" +.\" Copyright (c) 1998 Scott Bartram +.\" Copyright (c) 1995 Frank van der Linden +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed for the NetBSD Project +.\" by Scott Bartram and Frank van der Linden +.\" 4. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" Based on compat_linux.8 +.\" +.Dd February 8, 1998 +.Dt COMPAT_IBCS2 8 +.Os OpenBSD +.Sh NAME +.Nm compat_ibcs2 +.Nd setup procedure for running iBCS2 binaries +.Sh DESCRIPTION +.Nx +supports running Intel Binary Compatibilty Standard 2 (iBCS2) +binaries. This only applies to i386 systems for now. Binaries +are suported from SCO UNIX and other systems derived from UNIX +System V Release 3. iBCS2 support is only well tested using SCO +binaries. XENIX binaries are also supported although not as well +tested. SVR4 binaries are supported by the +.Dv COMPAT_SVR4 +option. +.Pp +iBCS2 supports COFF, ELF, and x.out (XENIX) binary formats. Binaries +from SCO OpenServer (version 5.x) are the only ELF binaries that have +been tested. Most programs should work, but not ones that use or +depend on: +.sp +.Bl -tag -width 123 -compact -offset indent +.It kernel internal data structures +.br +.It STREAMS drivers (other than TCP/IP sockets) +.br +.It local X displays (uses a STREAMS pipe) +.br +.It virtual 8086 mode +.El +.sp +The iBCS2 compatibility feature is active for kernels compiled with +the +.Dv COMPAT_IBCS2 +option enabled. If support for iBCS2 ELF executables is desired, +the +.Dv EXEC_ELF32 +option should be enabled in addition to +.Dv COMPAT_IBCS2 . +.Pp +Many COFF-format programs and most ELF-format programs are dynamically +linked. This means that you will also need the shared libraries that +the program depends on. Also, you will need to create a "shadow root" +directory for iBCS2 binaries on your OpenBSD system. This directory is +named /emul/ibcs2. Any file operations done by iBCS2 programs run +under OpenBSD will look in this directory first. So, if an iBCS2 +program opens, for example, /etc/passwd, OpenBSD will first try to open +/emul/ibcs2/etc/passwd, and if that does not exist open the 'real' +/etc/passwd file. It is recommended that you install iBCS2 packages +that include configuration files, etc. under /emul/ibcs2, to avoid +naming conflicts with possible OpenBSD counterparts. Shared libraries +should also be installed in the shadow tree. +.Pp +Generally, you will need to look for the shared libraries that +iBCS2 binaries depend on only the first few times that you install +an iBCS2 program on your OpenBSD system. After a while, you will +have a sufficient set of iBCS2 shared libraries on your system to +be able to run newly imported iBCS2 binaries without any extra +work. + +.Ss Setting up shared libraries +How to get to know which shared libraries iBCS2 binaries need, and +where to get them? Depending on the file type of the executable, there +are different possibilities (when following these instructions: you +will need to be root on your OpenBSD system to do the necessary +installation steps). + +.Bl -tag -width 123 -compact +.It 1. COFF binaries +You can simply copy all of the available shared libraries since they +are fairly small in size. The COFF shared libraries are typically +found in /shlib and can be obtained from the following sources: +.sp +.nf +SCO UNIX version 3.x (aka ODT) +SCO UNIX version 5.x (aka OpenServer) +SCO UnixWare +Many versions of SVR4.2/x86 +.fi +.sp +After copying the shared libraries, you should have at least the +following files on your system: +.Pp +.nf +/emul/ibcs2/shlib/libc_s +/emul/ibcs2/shlib/libnsl_s +/emul/ibcs2/shlib/protlib_s +.fi +.Pp +.It 2. ELF binaries +You can simply copy all of the available shared libraries from the +source system or distribution or use the `ldd-elf' program (in +development) to determine the libraries required by a specific binary. +.Pp +After copying the shared libraries, you should have at least the +following files on your system: +.Pp +.nf +/emul/ibcs2/usr/lib/libc.so.1 +/emul/ibcs2/usr/lib/libcrypt.so +/emul/ibcs2/usr/lib/libndbm.so +/emul/ibcs2/usr/lib/libsocket.so.1 +.fi +.Pp +.El +If you don't have access to a SCO system, you will need to get the +extra files you need from a SCO distribution. As of January 1998, SCO +sells a copy of SCO OpenServer (iBCS2) and/or SCO UnixWare (SVR4) for +personal/non-commercial use for only the cost of shipping (about +$20US). The distribution comes on an ISO9660-format CDROM which can be +mounted and used to copy the necessary files. +.Pp +Run the following script to copy the basic set of files from a SCO +distribution directory mounted somewhere locally: +.Pp +.nf +/usr/share/examples/emul/ibcs2/ibcs2-setup [directory] +.fi +.Pp +You should now be set up for SCO binaries which only need standard +shared libs. +.Sh BUGS +The information about SCO distributions may become outdated. +.Pp +Attempting to a use a nameserver on the local host does not currently +work due to an absurd shortcut taken by the iBCS2 network code +(remember that there are no kernel sockets). +.Pp +16/32/64 bit offsets may not be handled correctly in all cases. |