[[!meta title="NetBSD/hpcmips Binary Compatibility"]] [[!toc startlevel=1 levels=2]] * * * * * ## About this page 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. * * * * * # Compatibility with other NetBSD ports ## NetBSD/cobalt binary compatibility [[NetBSD/cobalt|cobalt]] is almost compatible with arc and pmax and hpcmips and playstation2. ## NetBSD/playstation2 binary compatibility [[NetBSD/playstation2|playstation2]] is almost compatible with arc and pmax and hpcmips. ## NetBSD/arc binary compatibility [[NetBSD/arc|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 binary compatibility [[NetBSD/pmax|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. * * * * * # Compatibility with ULTRIX ## ULTRIX binary compatibility NetBSD/hpcmips can exec ULTRIX static-linked binary image. To do so, follow these steps: 1. Add kernel configuration option and reconfig your kernel. [[!template id=programlisting text=""" options COMPAT_ULTRIX options EXEC_ECOFF """]] 2. Copy `/usr/share/examples/emul/ultrix/etc/svc.conf` to `/etc/svc.conf` or `/emul/ultrix/etc/svc.conf`. 3. Add hostname to `/etc/hosts`. NetBSD/hpcmips can execute ULTRIX static-linked binary, such as [distributed.net clients](http://distributed.net/download/clients.html). * * * * * # Compatibility with Linux MIPS ports ## Compatibility with Linux 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.