AT&T
System V.3 UNIX
.
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
COMPAT_SVR4
option.
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:
COMPAT_IBCS2
option enabled. If support for iBCS2 ELF executables is desired,
the
EXEC_ELF32
option should be enabled in addition to
COMPAT_IBCS2
.
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
NetBSD
system.
This directory is named
/emul/ibcs2
.
Any file operations done by iBCS2 programs run under
NetBSD
will look in this directory first.
So, if an iBCS2
program opens, for example,
/etc/passwd
,
NetBSD
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
NetBSD
counterparts.
Shared libraries should also be installed in the shadow tree.
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 NetBSD 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.
SCO UNIX version 3.x (aka ODT) SCO UNIX version 5.x (aka OpenServer) SCO UnixWare Many versions of SVR4.2/x86
/emul/ibcs2/shlib/libc_s
/emul/ibcs2/shlib/libnsl_s
/emul/ibcs2/shlib/protlib_s
After copying the shared libraries, you should have at least the following files on your system:
/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
Run the following script to copy the basic set of files from a SCO distribution directory mounted somewhere locally:
/usr/share/examples/emul/ibcs2/ibcs2-setup [directory]
You should now be set up for SCO binaries which only need standard shared libs.
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).
16/32/64 bit offsets may not be handled correctly in all cases.