1*c7e46fd2Swiz.\" $NetBSD: compat_30.8,v 1.9 2011/09/13 09:16:00 wiz Exp $ 2a24d299bSchap.\" 3a24d299bSchap.\" Copyright (c) 2006 The NetBSD Foundation, Inc. 4a24d299bSchap.\" All rights reserved. 5a24d299bSchap.\" 6a24d299bSchap.\" This code is derived from a document contributed to The NetBSD Foundation 7a24d299bSchap.\" by Chapman Flack. 8a24d299bSchap.\" 9a24d299bSchap.\" Redistribution and use in source and binary forms, with or without 10a24d299bSchap.\" modification, are permitted provided that the following conditions 11a24d299bSchap.\" are met: 12a24d299bSchap.\" 1. Redistributions of source code must retain the above copyright 13a24d299bSchap.\" notice, this list of conditions and the following disclaimer. 14a24d299bSchap.\" 2. Redistributions in binary form must reproduce the above copyright 15a24d299bSchap.\" notice, this list of conditions and the following disclaimer in the 16a24d299bSchap.\" documentation and/or other materials provided with the distribution. 17a24d299bSchap.\" 18a24d299bSchap.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19a24d299bSchap.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20a24d299bSchap.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21a24d299bSchap.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22a24d299bSchap.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23a24d299bSchap.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24a24d299bSchap.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25a24d299bSchap.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26a24d299bSchap.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27a24d299bSchap.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28a24d299bSchap.\" POSSIBILITY OF SUCH DAMAGE. 29a24d299bSchap.\" 302c8b453fSpavel.Dd December 15, 2007 31a24d299bSchap.Dt COMPAT_30 8 32a24d299bSchap.Os 33a24d299bSchap.Sh NAME 34a24d299bSchap.Nm compat_30 35*c7e46fd2Swiz.Nd setup procedure for backward compatibility on post-3.0 releases 36a24d299bSchap.Sh SYNOPSIS 37a24d299bSchap.Cd "options COMPAT_30" 38a24d299bSchap.Sh DESCRIPTION 39a24d299bSchapThe 40a24d299bSchap.Nm 41a24d299bSchapmodule allows 42a24d299bSchap.Nx 43a24d299bSchapto run 44a24d299bSchap.Nx 3.0 45a24d299bSchapexecutables. 46a24d299bSchap.Pp 47a24d299bSchapThe support is present if the kernel was built with option 48a24d299bSchap.Dv COMPAT_30 . 49a24d299bSchapIt is not available as a loadable module. 50a24d299bSchap.Pp 51a24d299bSchapStatic executables typically need no additional setup. 52a24d299bSchapDynamic binaries may require shared libraries whose major version 53a24d299bSchapnumber changed since 54a24d299bSchap.Nx 3.0 , 55a24d299bSchapwhich are listed below. 56a24d299bSchapA shadow directory under 57a24d299bSchap.Pa /emul 58a24d299bSchapis not used; the libraries can be obtained from a 59a24d299bSchap.Nx 3.0 60f3ef5715Schapdistribution and installed in the original directories shown, 61a24d299bSchapas the major version number in the file name will prevent conflicts. 62a24d299bSchapIf an upgrade installation from 63a24d299bSchap.Nx 3.0 64a24d299bSchaphas been done and these libraries are still present, nothing more need 65a24d299bSchapbe done. 66a24d299bSchap.Ss Libraries needed from 3.0 67a24d299bSchap.Bl -item 68a24d299bSchap.It 69a24d299bSchap.Pa /lib/libcrypto.so.2.1 70a24d299bSchap.Pa /lib/libcrypto.so.2 71a24d299bSchap.It 722c8b453fSpavel.Pa /usr/lib/libcrypto.so.2.1 732c8b453fSpavel.Pa /usr/lib/libcrypto.so.2 742c8b453fSpavel.It 75a24d299bSchap.Pa /lib/libevent.so.0.2 76a24d299bSchap.Pa /lib/libevent.so.0 77a24d299bSchap.It 782c8b453fSpavel.Pa /usr/lib/libevent.so.0.2 792c8b453fSpavel.Pa /usr/lib/libevent.so.0 802c8b453fSpavel.It 812c8b453fSpavel.Pa /usr/lib/libg2c.so.2.0 822c8b453fSpavel.Pa /usr/lib/libg2c.so.2 832c8b453fSpavel.It 842c8b453fSpavel.Pa /usr/lib/libkadm.so.5.0 852c8b453fSpavel.Pa /usr/lib/libkadm.so.5 862c8b453fSpavel.It 87a24d299bSchap.Pa /usr/lib/libkafs.so.6.0 88a24d299bSchap.Pa /usr/lib/libkafs.so.6 89a24d299bSchap.It 902c8b453fSpavel.Pa /usr/lib/libkdb.so.5.0 912c8b453fSpavel.Pa /usr/lib/libkdb.so.5 922c8b453fSpavel.It 93a24d299bSchap.Pa /usr/lib/libkrb5.so.19.1 94a24d299bSchap.Pa /usr/lib/libkrb5.so.19 95a24d299bSchap.It 962c8b453fSpavel.Pa /usr/lib/libkrb.so.6.0 972c8b453fSpavel.Pa /usr/lib/libkrb.so.6 982c8b453fSpavel.It 992c8b453fSpavel.Pa /usr/lib/libkstream.so.2.0 1002c8b453fSpavel.Pa /usr/lib/libkstream.so.2 1012c8b453fSpavel.It 1022c8b453fSpavel.Pa /usr/lib/libmagic.so.0.1 1032c8b453fSpavel.Pa /usr/lib/libmagic.so.0 1042c8b453fSpavel.It 1052c8b453fSpavel.Pa /usr/lib/libpcap.so.1.4 1062c8b453fSpavel.Pa /usr/lib/libpcap.so.1 1072c8b453fSpavel.It 108a24d299bSchap.Pa /lib/libradius.so.0.0 109a24d299bSchap.Pa /lib/libradius.so.0 110a24d299bSchap.It 1112c8b453fSpavel.Pa /usr/lib/libradius.so.0.0 1122c8b453fSpavel.Pa /usr/lib/libradius.so.0 1132c8b453fSpavel.It 114a24d299bSchap.Pa /usr/lib/libssh.so.1.0 115a24d299bSchap.Pa /usr/lib/libssh.so.1 116a24d299bSchap.It 117a24d299bSchap.Pa /usr/lib/libssl.so.3.0 118a24d299bSchap.Pa /usr/lib/libssl.so.3 1192c8b453fSpavel.It 1202c8b453fSpavel.Pa /usr/lib/libstdc++.so.5.0 1212c8b453fSpavel.Pa /usr/lib/libstdc++.so.5 122a24d299bSchap.\" .It 123a24d299bSchap.\" .Pa libtelnet lives where? 124a24d299bSchap.It 125a24d299bSchap.Pa /lib/libz.so.0.4 126a24d299bSchap.Pa /lib/libz.so.0 127a24d299bSchap.It 1282c8b453fSpavel.Pa /usr/lib/libz.so.0.4 1292c8b453fSpavel.Pa /usr/lib/libz.so.0 1302c8b453fSpavel.It 131a24d299bSchap.Pa /usr/lib/libamu.so.2.1 132a24d299bSchap.Pa /usr/lib/libamu.so.2 133a24d299bSchap.El 134a24d299bSchap.Sh IMPLEMENTATION NOTES 135a24d299bSchap.Dv COMPAT_30 136a24d299bSchapenables the 137a24d299bSchap.Nx 3.0 138a24d299bSchapversions of the following system calls, whose syscall numbers and 139a24d299bSchapargument structures were changed after the 3.0 release to accommodate 140a24d299bSchap64-bit filesystems: 141a24d299bSchap.Xr fhstat 2 , 142a24d299bSchap.Xr fstat 2 , 143a24d299bSchap.Xr getdents 2 , 144a24d299bSchap.Xr lstat 2 , 145a24d299bSchap.Xr stat 2 . 1464eb1701bSpavel.Pp 1474eb1701bSpavelThe filehandle structure (formerly 1484eb1701bSpavel.Vt fhandle_t ) 1494eb1701bSpavelwas made opaque to userland and variable-sized. 1504eb1701bSpavelA 1514eb1701bSpavel.Fa fh_size 1524eb1701bSpavelargument was added to related syscalls: 1534eb1701bSpavel.Xr fhstat 2 , 1544eb1701bSpavel.Xr fhstatvfs 2 , 1554eb1701bSpavel.Xr fhstatvfs1 2 , 1564eb1701bSpavel.Xr fhopen 2 , 1574eb1701bSpavel.Xr getfh 2 . 1584eb1701bSpavelThis changes the API and ABI of those syscalls, 1594eb1701bSpavel.Dv COMPAT_30 1604eb1701bSpavelenables binary compatibility with the old ABI. 1614eb1701bSpavelSource compatibility is not provided, as use of those syscalls is 1624eb1701bSpavelsupposed to be rare. 1634eb1701bSpavel.Pp 16483ae3a00SpavelThe error code from the 16583ae3a00Spavel.Xr socket 2 16683ae3a00Spavelsyscall changed from 16783ae3a00Spavel.Er EPROTONOSUPPORT 16883ae3a00Spavelto 16983ae3a00Spavel.Er EAFNOSUPPORT 17083ae3a00Spavelin the case of an unsupported address family. 17183ae3a00Spavel.Dv COMPAT_30 17283ae3a00Spavelenables binary compatibility with the old ABI. 17383ae3a00SpavelSource compatiblility is not provided. 17483ae3a00Spavel.Pp 175f3ef5715SchapThe 176f3ef5715Schap.Vt struct ntptimeval 177f3ef5715Schapused by 178f3ef5715Schap.Xr ntp_gettime 2 179f3ef5715Schapchanged with the implementation of timecounters. 180a24d299bSchap.Sh SEE ALSO 181a24d299bSchap.Xr config 1 , 182a24d299bSchap.Xr fhstat 2 , 183a24d299bSchap.Xr fstat 2 , 184a24d299bSchap.Xr getdents 2 , 185a24d299bSchap.Xr lstat 2 , 186a24d299bSchap.Xr stat 2 , 187a24d299bSchap.Xr options 4 188a24d299bSchap.Sh HISTORY 189a24d299bSchap.Nx 190a24d299bSchapoffers back-compatibility options back to 191a24d299bSchap.Nx 0.9 , 192a24d299bSchapbut the first to be documented with a manual page is 193a24d299bSchap.Nm . 194a24d299bSchap.Sh BUGS 195a24d299bSchapThe compatible 196a24d299bSchap.Xr getdents 2 197a24d299bSchapis unable to see directory entries beneath the top layer of a union, 198a24d299bSchapeven though the real 3.0 199a24d299bSchap.Fn getdents 200a24d299bSchapdid not have that problem. 201a24d299bSchap.Sh SECURITY CONSIDERATIONS 202a24d299bSchapPrograms with security impact that receive incorrect directory contents 203a24d299bSchapfrom 204a24d299bSchap.Fn getdents 205a24d299bSchapmay behave improperly, as when they are unable to find, or find the wrong 206a24d299bSchapversions of, important files. 207