COMPAT_AOUT(8) OpenBSD System Manager's Manual COMPAT_AOUT(8)
compat_aout - setup for running a.out OpenBSD binaries on ELF systems
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 li-
braries that the programs depend on and the runtime linker are also need-
ed. 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 directo-
ry /emul/a.out/var/run should also be created.
Before running a.out binaries, the ld.so cache must be prepared, by run-
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
OpenBSD 3.6 June 25, 2003 1