On Aug 3, 2014, at 9:39 AM, Pedro Giffuni <p...@freebsd.org> wrote: > > Il giorno 03/ago/2014, alle ore 09:27, Warner Losh <i...@bsdimp.com> ha > scritto: > >> >> On Jul 21, 2014, at 12:51 PM, Pedro Giffuni <p...@freebsd.org> wrote: >> >>> >>> Il giorno 21/lug/2014, alle ore 11:42, Bruce Simpson <b...@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
signature.asc
Description: Message signed with OpenPGP using GPGMail