Subject: Re: 32 bit & 64 bit libraries.
To: matthew green <mrg@eterna.com.au>
From: Frank van der Linden <fvdl@wasabisystems.com>
List: tech-toolchain
Date: 08/13/2001 11:50:29
I also don't like /usr/lib64 and /usr/lib32. Since most newer ELF specs
talk about /usr/lib/<arch>, I'd propose:

	* For NetBSD binaries, if the loader is "/usr/libexec/ld.elf_so",
	  have the kernel look at <loader>-<arch> first, and if this
	  doesn't exist it uses <loader>. I.e. in the standard case it
	  tries /usr/libexec/ld.elf_so-sparcv9 first for a 64 bit binary,
	  if this doesn't exist it uses /usr/libexec/ld.elf_so. <arch>
	  here is the architecture that
	  matches the type in the ELF header (i.e. sparc or sparcv9 or
	  ia64 or i386 etc)
	* ld.elf_so looks in /usr/lib/<arch> before /usr/lib (where <arch>
	  is the type of binaries it's supposed to handle, not the
	  system that it runs on).

This way the default libraries would still be in /usr/lib, and multiple
sub-arches can coexist on one system. The only downpoint is that there
may be a mismatch between the loader stored in the ELF header and the
one actually run, if the kernel picks the -<arch> one for a native binary.
This behaviour is already present to some extent in the /emul shadow tree
stuff, though.

- Frank

-- 
Frank van der Linden                           fvdl@wasabisystems.com
======================================================================
Quality NetBSD CDs, Support & Service.   http://www.wasabisystems.com/