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 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 [Toc] [Back]
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 3.6 June 25, 2003
[ Back ] |