NetBSD/hpcmips Binary Compatibility

Compatibility with other NetBSD ports

Compatibility with ULTRIX

Compatibility with Linux MIPS ports


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 is almost compatible with arc and pmax and hpcmips and playstation2.

NetBSD/playstation2 binary compatibility

NetBSD/playstation2 is almost compatible with arc and pmax and hpcmips.

NetBSD/arc binary compatibility

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 binary compatibility

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.


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.

    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.


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.


Back to  NetBSD/hpcmips Port Page