svn commit: r268943 - in head: include lib/libc/stdlib

Warner Losh imp at bsdimp.com
Mon Aug 4 03:47:15 UTC 2014


On Aug 3, 2014, at 9:39 AM, Pedro Giffuni <pfg at freebsd.org> wrote:

> 
> Il giorno 03/ago/2014, alle ore 09:27, Warner Losh <imp at bsdimp.com> ha scritto:
> 
>> 
>> On Jul 21, 2014, at 12:51 PM, Pedro Giffuni <pfg at freebsd.org> wrote:
>> 
>>> 
>>> Il giorno 21/lug/2014, alle ore 11:42, Bruce Simpson <bms at fastmail.net> ha scritto:
>>> 
>>>> On 21/07/2014 16:22, Pedro F. Giffuni wrote:
>>>>> ]
>>>>> Log:
>>>>>  Add re-entrant versions of the hash functions based on the GNU api.
>>>>> 
>>>> What, if anything, can be done about qsort_r() API incompatibility?
>>> 
>>> qsort_r is non-standard and we did it first, plus we will want to stay compatible with Apple :).
>>> 
>>> I guess we could do some ugly parameter swapping in the case where _GNU_SOURCE
>>> is defined, but I won’t volunteer to do that.
>> 
>> Are there any ABI considerations for the change?
>> 
> 
> I would keep the qsort_r() ABI unchanged and add a GNU-compatible version that is used only when _GNU_SOURCE (but not _BSD_SOURCE) is defined.
> 
> This would already be pretty messy by itself because some portable code may define _GNU_SOURCE but still may try to use the Apple/BSD interface under another #ifdef. Perhaps it’s just better to leave our headers alone and let the end-users do the wrapping.

If there’s no ABI change, then I don’t care what we do about a non-standard API. However, once we’ve made an API public, standard or do, we have to support that ABI essentially forever when libc is involved.

Warner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20140803/f6431529/attachment.sig>


More information about the svn-src-head mailing list