1 .\" $NetBSD: compat_ibcs2.8,v 1.4 2000/06/24 01:12:14 jlam Exp $
3 .\" Copyright (c) 1998 Scott Bartram
4 .\" Copyright (c) 1995 Frank van der Linden
5 .\" All rights reserved.
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\" notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\" notice, this list of conditions and the following disclaimer in the
14 .\" documentation and/or other materials provided with the distribution.
15 .\" 3. All advertising materials mentioning features or use of this software
16 .\" must display the following acknowledgement:
17 .\" This product includes software developed for the NetBSD Project
18 .\" by Scott Bartram and Frank van der Linden
19 .\" 4. The name of the author may not be used to endorse or promote products
20 .\" derived from this software without specific prior written permission
22 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 .\" Based on compat_linux.8
40 .Nd setup procedure for running iBCS2 binaries
43 supports running Intel Binary Compatibility Standard 2 (iBCS2) binaries.
44 This only applies to i386 systems for now.
45 Binaries are supported from SCO
47 and other systems derived from
49 iBCS2 support is only well tested using SCO binaries.
50 XENIX binaries are also supported although not as well tested.
51 SVR4 binaries are supported by the
55 iBCS2 supports COFF, ELF, and x.out (XENIX) binary formats.
56 Binaries from SCO OpenServer (version 5.x) are the only ELF binaries
57 that have been tested.
58 Most programs should work, but not ones that use or depend on:
60 .Bl -item -compact -offset indent
62 kernel internal data structures
64 STREAMS drivers (other than TCP/IP sockets)
66 local X displays (uses a STREAMS pipe)
71 The iBCS2 compatibility feature is active for kernels compiled with
74 option enabled. If support for iBCS2 ELF executables is desired,
77 option should be enabled in addition to
80 Many COFF-format programs and most ELF-format programs are dynamically
81 linked. This means that you will also need the shared libraries that
82 the program depends on. Also, you will need to create a
84 directory for iBCS2 binaries on your
87 This directory is named
89 Any file operations done by iBCS2 programs run under
91 will look in this directory first.
93 program opens, for example,
96 will first try to open
97 .Pa /emul/ibcs2/etc/passwd ,
98 and if that does not exist open the
101 file. It is recommended that you install iBCS2 packages
102 that include configuration files, etc. under
104 to avoid naming conflicts with possible
107 Shared libraries should also be installed in the shadow tree.
109 Generally, you will need to look for the shared libraries that
110 iBCS2 binaries depend on only the first few times that you install
111 an iBCS2 program on your
114 After a while, you will have a sufficient set of iBCS2 shared
115 libraries on your system to be able to run newly imported iBCS2
116 binaries without any extra work.
117 .Ss Setting up shared libraries
118 How to get to know which shared libraries iBCS2 binaries need, and
119 where to get them? Depending on the file type of the executable, there
120 are different possibilities (when following these instructions: you
121 will need to be root on your
123 system to do the necessary
126 .Bl -tag -width "COFF binaries"
128 You can simply copy all of the available shared libraries since they
129 are fairly small in size. The COFF shared libraries are typically
130 found in /shlib and can be obtained from the following sources:
133 SCO UNIX version 3.x (aka ODT)
134 SCO UNIX version 5.x (aka OpenServer)
136 Many versions of SVR4.2/x86
139 After copying the shared libraries, you should have at least the
140 following files on your system:
143 .Pa /emul/ibcs2/shlib/libc_s
144 .Pa /emul/ibcs2/shlib/libnsl_s
145 .Pa /emul/ibcs2/shlib/protlib_s
148 You can simply copy all of the available shared libraries from the
149 source system or distribution or use
151 to determine the libraries required by a specific binary.
153 After copying the shared libraries, you should have at least the
154 following files on your system:
157 .Pa /emul/ibcs2/usr/lib/libc.so.1
158 .Pa /emul/ibcs2/usr/lib/libcrypt.so
159 .Pa /emul/ibcs2/usr/lib/libndbm.so
160 .Pa /emul/ibcs2/usr/lib/libsocket.so.1
164 If you don't have access to a SCO system, you will need to get the
165 extra files you need from a SCO distribution. As of January 1998, SCO
166 sells a copy of SCO OpenServer (iBCS2) and/or SCO UnixWare (SVR4) for
167 personal/non-commercial use for only the cost of shipping (about $20US).
168 The distribution comes on an ISO9660-format CDROM which can be
169 mounted and used to copy the necessary files.
171 Run the following script to copy the basic set of files from a SCO
172 distribution directory mounted somewhere locally:
175 /usr/share/examples/emul/ibcs2/ibcs2-setup [directory]
178 You should now be set up for SCO binaries which only need standard
181 The information about SCO distributions may become outdated.
183 Attempting to a use a nameserver on the local host does not currently
184 work due to an absurd shortcut taken by the iBCS2 network code
185 (remember that there are no kernel sockets).
187 16/32/64 bit offsets may not be handled correctly in all cases.