Date: Thu, 12 Dec 2013 21:26:22 -0800 From: Peter Wemm <peter@wemm.org> To: freebsd-arch@freebsd.org Subject: Re: Removal of a pre-existing library interface Message-ID: <52AA9A7E.8030500@wemm.org> In-Reply-To: <52AA3A95.9010904@delphij.net> References: <52AA3A95.9010904@delphij.net>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On 12/12/13, 2:37 PM, Xin Li wrote: > Hi, > > Recently, OpenBSD have moved from RC4 to ChaCha20 for their > arc4random(3) family of functions and they have later removed a few > interfaces for good reasons. > > On FreeBSD, we aim to maintain ABI stability so we can not simply > remove the interface; we can not remove it from -HEAD because they are > established by previous -STABLE branches, or we would have to bump > major number of shared libraries. After thinking about some other > alternatives, I have created two dummy (well, they also log the event) > compatibility shims for these two interfaces that gets removed from > OpenBSD. > > Is this a reasonable approach of handling changes like this? If you wish to avoid a major bump and the symbols are versioned (as they are in libc), the one option is this: rename function from arcfour_foo to arcfour_foo_compat and _sym_compat(arcfour_foo, arcfour_foo_compat, FBSD_1.3); That then provides a versioned symbol to satisfy runtime dependencies but will not allow new references. We did this with the iconv stuff for early 10.x binaries that we didn't want to break but make sure there were no new unintended references. -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV UTF-8: for when a ' just won\342\200\231t do. [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (Darwin) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlKqmoIACgkQFRKuUnJ3cX/70gCgiVUvLYfJMhhn2TWY9pWIrY0d AYIAoJnzGhy1Dtj28HGhO0LZwipEi+yP =mz8X -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52AA9A7E.8030500>
