Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Dec 2013 21:32:37 -0800
From:      Xin Li <delphij@delphij.net>
To:        Peter Wemm <peter@wemm.org>, freebsd-arch@freebsd.org
Subject:   Re: Removal of a pre-existing library interface
Message-ID:  <52AA9BF5.2080406@delphij.net>
In-Reply-To: <52AA9A7E.8030500@wemm.org>
References:  <52AA3A95.9010904@delphij.net> <52AA9A7E.8030500@wemm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 12/12/13, 9:26 PM, Peter Wemm wrote:
> 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.

Yes I know this.  Forgot to add the link in previous email.

https://github.com/delphij/freebsd/blob/featurefork/chacha20/lib/libc/gen/arc4random-compat.c

What I'm not clear is whether it's Okay to call syslog() in the context.

Cheers,

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJSqpv1AAoJEJW2GBstM+nslRgP+gMfXWVCKM1o+RxWNxcVVNOi
NWiYcXiFuIwpY0fmtlmoEClG7Re1ZyPPkXQIec5pKMZHrl+KFnqLRdcrxOrgIMa6
1M2YtDRGno+NhkoOvD3ZhqhI1UEL5olpnpqq36Zcc+oe8Vk3H2hk8WNFbhuLpMef
5uidrCG7tGY6w7U2fBHNK0Fl0+GaTpRMB4AvJ+MzqIj65doY0rWbtBjAybWcdid/
kOQN7XTlueNnu54IMeeA0a8kO7oZq2YLeL9/gdocOYbRACnyoLBcoc2R18A+ldNU
CKsKS7BioXlpUG3K3UDCg6qSqmIm4RkSX5RlFfTLPJy7s7O4w8ppgL4L56BqbJAw
y8IbjQXqZhUH7kqCcWBwGXYyoK1+93SeoPuq3MAmzLhmIGnbTrUuuC/vZCQJXv0c
L0UEkZ5X5yXZqW3D5BOBru1Frp1nBXn7m02Cwl5T1BI5G+kcHonlxu3g0Vmj1CHB
paE2gBbXr8S0mmOBviT9Jx61Ph1tXmV9yysxqrCqMJDq1E1BFyNX+9W7sDZi43H7
6NmS17g+MfGbneyGhdRzxcaqgK+qQpa1EpTVQik+pSWnvckm1vwcOs/t6TRWOMaO
o/CLfO1plyJ8gggqO0kbfzVpTNEYC5QiHG0VtO5GIay2vgMT7ZYVUfnSLo0ZMklj
AFUqOvnhixhmTUXEXSFQ
=9nu1
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52AA9BF5.2080406>