- Compatibility with other NetBSD ports
- Compatibility with ULTRIX
- Compatibility with Linux MIPS ports
This page contains information about NetBSD/hpcmips binary compatibility. At the package level, NetBSD/pmax, NetBSD/hpcmips, NetBSD/cobalt, NetBSD/playstation2, and NetBSD/arc are all compatible. NetBSD/hpcmips userland binaries are compiled with "-mhard-float" flag.
NetBSD/cobalt is almost compatible with arc and pmax and hpcmips and playstation2.
is almost compatible with arc and pmax and hpcmips.
NetBSD/arc is almost compatible with pmax and hpcmips; the only exception is disklabel (MAXPARTITIONS==16). NetBSD/hpcmips's disklabel command is also incompatible with pmax, because it handles fdisk (MBR) partition table.
NetBSD/pmax userland binaries and packages are also little endian, but use hardware floating point (which can be emulated) and incompatible function call rules (which prevents pmax and hpcmips binaries from using the same shared libraries).
Hardfloat 'mipsel' userland: : Allows sharing of userland and packages with NetBSD/pmax. This saves maintenance and distribution space, but at the cost of slower floating point performance.
Softfloat 'mipselsf' userland and packages: : This gives the best performance, but cannot run dynamic NetBSD/pmax binaries.
Softfloat 'mipselsf' userland, extra 'mipsel' libraries: : Two copies of each shared library are produced, one softfloat, one hardfloat, and ld.so modified to use correct type. This would allow both types of binaries to run, but would be a maintenance nightmare.
NetBSD/hpcmips can exec ULTRIX static-linked binary image. To do so, follow these steps:
- Add kernel configuration option and reconfig your kernel.
options COMPAT_ULTRIX options EXEC_ECOFF
Add hostname to
NetBSD/hpcmips can execute ULTRIX static-linked binary, such as distributed.net clients.
NetBSD/hpcmips has a "COMPAT_LINUX" kernel option, but it is not tested at all. Any more testers and developers in this are would be welcome.