Can I use both ELF and a.out libraries/binaries in my system?

(written by Frank Neumann and Jesper Skov)

No problem. If you moved to ELF according to Andreas Schwab's hints (ftp://tsx-11.mit.edu/pub/linux/680x0/ELF/README), you already have a mixed system. All old a.out shared libraries, stubs, static libraries and simple object files (*.so, *.sa, *.o, *.a) are now in /usr/m68k-linuxaout/lib, except for libc and libm which remain in /lib. The ELF shared libraries are in the usual places (/lib, /usr/lib and maybe /usr/X11R6/lib and /usr/local/lib) and don't interfere with the a.out libraries.

When starting a program that is either a.out or ELF, the corresponding link loader (ld.so and ld-linux.so respectively) will determine what shared libraries are required and load them on the fly. This of course works for both a.out and ELF binaries. You only have to keep in mind that with a mixed system (using some binaries that require ELF libraries along with others that require a.out libraries) both ELF and a.out libraries have to be kept in memory (in particular, but not limited to, libc and libm). This certainly costs valuable memory. So, the long-term solution will be a pure ELF installation (libraries and binaries).

You can download the ELF versions of the programs via FTP, download sources and recompile, or "Debianize" your system (I really don't recommend the latter unless you really know what you are doing).

If you install any recent distribution, you will have the a.out compatibility libraries but (hopefully) no a.out binaries.

Note: Concerning a.out libraries, a couple of people had problems with the last libc that was created (4.7.2). So we recommend staying with 4.6.27 which most people were using.

Note: a.out is effectively dead on Linux/m68k. You can probably live without a.out support (you might want it available as a module, however).