COMPAT_AOUT(8) OpenBSD System Manager's Manual COMPAT_AOUT(8)NAMEcompat_aout - setup for running a.out OpenBSD binaries on ELF systems
DESCRIPTION
OpenBSD supports running legacy a.out binaries. This only applies to
i386 systems for now. Most programs should work.
The a.out compatibility feature is active for kernels compiled with the
COMPAT_AOUT option and kern.emul.aout sysctl(8) enabled.
A lot of programs are dynamically linked. This means that the shared
libraries that the programs depend on and the runtime linker are also
needed. A "shadow root" directory for these files on the OpenBSD system
will have to be created. This directory is named /emul/a.out. Selected
file operations done by legacy a.out programs run under OpenBSD will look
in this directory first.
Setting up shared libraries
Up until OpenBSD 3.3, programs were using the a.out file format. When
migrating to a current ELF system, some old binaries may still be used.
Before installing a current system, all the necessary shared libraries in
the /usr/lib, /usr/X11R6/lib, /usr/local/lib and the a.out dynamic linker
system, namely /usr/libexec/ld.so, /usr/bin/ldd, and /sbin/ldconfig
should be copied to the corresponding location in the shadow tree.
(e.g., copy /sbin/ldconfig into /emul/a.out/sbin/ldconfig). The
directory /emul/a.out/var/run should also be created.
Before running a.out binaries, the ld.so cache must be prepared, by
running /emul/a.out/sbin/ldconfig.
Once everything is set up properly, a.out programs will look for shared
libraries under /emul/a.out and ELF programs will not see the a.out
shared libraries.
OpenBSD 4.9 May 31, 2007 OpenBSD 4.9