Subject: Re: elf->a.out (was Re: How good is FreeBSD emulation?)
To: Todd Vierling <tv@wasabisystems.com>
From: Frederick Bruckman <fb@enteract.com>
List: port-i386
Date: 09/22/2000 14:06:02
On Fri, 22 Sep 2000, Todd Vierling wrote:

> On Fri, 22 Sep 2000, Frederick Bruckman wrote:
> 
> : Move the a.out shared libraries in /usr/lib to /emul/aout/usr/lib,
> : /usr/pkg/lib to /emul/aout/usr/pkg/lib, etc. You should also get
> : ldconfig from an a.out machine, and arrange to run it once on boot-up.
> 
> This doesn't help his situation.  What he's trying to do is the very purpose
> of that infamous option I keep trying to explain... COMPAT_AOUT.  I'll take
> the plunge and explain this process in detail here.

I was running both a.out and ELF lib for a while, just as described
(with 1.5-aout ld.so, plus saved ldconfig and ldd-aout in /usr/local.)

You do not _need_ COMPAT_AOUT path munging...

> 1.5 will be shipping with a replacement /usr/libexec/ld.so that will search
> /emul/aout automatically for a.out binaries (obsoleting one purpose of the
> COMPAT_AOUT option).  However, it doesn't help any software that needs to
> reference /usr/pkg/etc, /usr/pkg/libexec, or other binaries in /usr/pkg/bin,
> since those directories need to be "out of the way" as you do the piecemeal
> upgrade.

Actually it does reference /usr/pkg/{etc,libexec} as well as ever, as
long as you _don't_ _move_ anything. In fact, you don't really need to
move the shared libraries in /usr/pkg/lib -- I take that back... ;-)

All you have to move to under /emul/aout are the shared libraries in
/usr/lib, and the xsets libraries (not pkg) in /usr/X11R6/lib. When
you finally go to update X and packages to ELF, our present package
system will force you to delete, and either rebuild or reinstall, all
the packages which depend on every package that contains libraries.
Moreover, an a.out package won't satisfy the dependency for an ELF
package (if you were to try to update the application package before
the library package), so you really can't go wrong.