COMPAT_30(8)            NetBSD System Manager's Manual            COMPAT_30(8)

NAME
     compat_30 -- setup procedure for backward compatibility on post-3.0
     release

SYNOPSIS
     options COMPAT_30

DESCRIPTION
     The compat_30 module allows NetBSD to run NetBSD 3.0 executables.

     The support is present if the kernel was built with option COMPAT_30.  It
     is not available as a loadable module.

     Static executables typically need no additional setup.  Dynamic binaries
     may require shared libraries whose major version number changed since
     NetBSD 3.0, which are listed below.  A shadow directory under /emul is
     not used; the libraries can be obtained from a NetBSD 3.0 distribution
     and installed in the original directories shown, as the major version
     number in the file name will prevent conflicts.  If an upgrade installa-
     tion from NetBSD 3.0 has been done and these libraries are still present,
     nothing more need be done.

   Libraries needed from 3.0
     /lib/libcrypto.so.2.1 /lib/libcrypto.so.2

     /usr/lib/libcrypto.so.2.1 /usr/lib/libcrypto.so.2

     /lib/libevent.so.0.2 /lib/libevent.so.0

     /usr/lib/libevent.so.0.2 /usr/lib/libevent.so.0

     /usr/lib/libg2c.so.2.0 /usr/lib/libg2c.so.2

     /usr/lib/libkadm.so.5.0 /usr/lib/libkadm.so.5

     /usr/lib/libkafs.so.6.0 /usr/lib/libkafs.so.6

     /usr/lib/libkdb.so.5.0 /usr/lib/libkdb.so.5

     /usr/lib/libkrb5.so.19.1 /usr/lib/libkrb5.so.19

     /usr/lib/libkrb.so.6.0 /usr/lib/libkrb.so.6

     /usr/lib/libkstream.so.2.0 /usr/lib/libkstream.so.2

     /usr/lib/libmagic.so.0.1 /usr/lib/libmagic.so.0

     /usr/lib/libpcap.so.1.4 /usr/lib/libpcap.so.1

     /lib/libradius.so.0.0 /lib/libradius.so.0

     /usr/lib/libradius.so.0.0 /usr/lib/libradius.so.0

     /usr/lib/libssh.so.1.0 /usr/lib/libssh.so.1

     /usr/lib/libssl.so.3.0 /usr/lib/libssl.so.3

     /usr/lib/libstdc++.so.5.0 /usr/lib/libstdc++.so.5

     /lib/libz.so.0.4 /lib/libz.so.0

     /usr/lib/libz.so.0.4 /usr/lib/libz.so.0

     /usr/lib/libamu.so.2.1 /usr/lib/libamu.so.2

IMPLEMENTATION NOTES
     COMPAT_30 enables the NetBSD 3.0 versions of the following system calls,
     whose syscall numbers and argument structures were changed after the 3.0
     release to accommodate 64-bit filesystems: fhstat(2), fstat(2),
     getdents(2), lstat(2), stat(2).

     The filehandle structure (formerly fhandle_t) was made opaque to userland
     and variable-sized.  A fh_size argument was added to related syscalls:
     fhstat(2), fhstatvfs(2), fhstatvfs1(2), fhopen(2), getfh(2).  This
     changes the API and ABI of those syscalls, COMPAT_30 enables binary com-
     patibility with the old ABI.  Source compatibility is not provided, as
     use of those syscalls is supposed to be rare.

     The error code from the socket(2) syscall changed from EPROTONOSUPPORT to
     EAFNOSUPPORT in the case of an unsupported address family.  COMPAT_30
     enables binary compatibility with the old ABI.  Source compatiblility is
     not provided.

     The struct ntptimeval used by ntp_gettime(2) changed with the implementa-
     tion of timecounters.

SEE ALSO
     config(1), fhstat(2), fstat(2), getdents(2), lstat(2), stat(2),
     options(4)

HISTORY
     NetBSD offers back-compatibility options back to NetBSD 0.9, but the
     first to be documented with a manual page is compat_30.

BUGS
     The compatible getdents(2) is unable to see directory entries beneath the
     top layer of a union, even though the real 3.0 getdents() did not have
     that problem.

SECURITY CONSIDERATIONS
     Programs with security impact that receive incorrect directory contents
     from getdents() may behave improperly, as when they are unable to find,
     or find the wrong versions of, important files.

NetBSD 5.0_STABLE              December 15, 2007             NetBSD 5.0_STABLE
