Subject: Re: MACHINE_ARCH vs. OBJ_ARCH
To: None <Havard.Eidnes@runit.sintef.no>
From: Todd Vierling <tv@pobox.com>
List: tech-toolchain
Date: 07/26/1998 13:55:02
On Sun, 26 Jul 1998 Havard.Eidnes@runit.sintef.no wrote:
: o What does a user have to do to determine what OBJ_ARCHs his
: combination of OS and hardware can run? In particular, is
: there some command which can be run to find this information,
: short of actually trying to run the binaries?
OBJ_ARCH will be available through "sysctl -n hw.obj_arch" very similarly to
"sysctl -n hw.machine_arch". It would probably be useful to make a uname
option for it as well, i.e. "uname -o", just for user simplicity.
OBJ_ARCH is the definitive answer. Whatever your system's OBJ_ARCH value is
determines what binaries you can run natively (without supplying the foreign
libc, ld.so, and so forth as for COMPAT_FREEBSD or COMPAT_SUNOS).
Any other NetBSD binaries that you can run that are from a different
OBJ_ARCH would be treated like any other COMPAT_ emulation. You'd need the
foreign NetBSD OBJ_ARCH's ld.so, libc, and so on.
: o I assume the output of "uname -m" on NetBSD will be "mips" for
: all machines with a MIPS processor, irrespective of its
: endianness or wheter it's a MIPS1 or MIPS3?
Correct.
: o Are there any plans to have the ability to run both 64-bit and
: 32-bit binaries on the MIPS port? Do the shared libraries
: have to exist in both 32-bit and 64-bit variants? If yes,
: where should each of them be stored?
You would keep the native (64 bit) libraries in /usr/lib and put the 32 bit
ones somewhere in /emul just like any other COMPAT_ emulation. I'd imagine
that a COMPAT_MIPS32 sort of module would be created for the task of running
32 bit binaries on a 64 bit system, and it would use something like
/emul/mips32. (Just my suggestion on the `mips32' name.)
--
-- Todd Vierling (Personal tv@pobox.com; Bus. todd_vierling@xn.xerox.com)