Skip site navigation (1)Skip section navigation (2)
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>