mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-22 02:37:15 +00:00
![]() glibc-based interface. Unfortunately, the glibc maintainers, despite knowing the existence of the FreeBSD qsort_r(3) interface in 2004 and refused to add the same interface to glibc based on grounds of the lack of standardization and portability concerns, has decided it was a good idea to introduce their own qsort_r(3) interface in 2007 as a GNU extension with a slightly different and incompatible interface. With the adoption of their interface as POSIX standard, let's switch to the same prototype, there is no need to remain incompatible. C++ and C applications written for the historical FreeBSD interface get source level compatibility when building in C++ mode, or when building with a C compiler with C11 generics support, provided that the caller passes a fifth parameter of qsort_r() that exactly matches the historical FreeBSD comparator function pointer type and does not redefine the historical qsort_r(3) prototype in their source code. Symbol versioning is used to keep old binaries working. MFC: never Relnotes: yes Reviewed by: cem, imp, hps, pauamma Differential revision: https://reviews.freebsd.org/D17083 |
||
---|---|---|
.. | ||
arm | ||
arm64 | ||
x86 | ||
arc4random.c | ||
arc4random_uniform.c | ||
ashldi3.c | ||
ashrdi3.c | ||
asprintf.c | ||
bcd.c | ||
bcopy.c | ||
bsearch.c | ||
cmpdi2.c | ||
divdi3.c | ||
explicit_bzero.c | ||
ffs.c | ||
ffsl.c | ||
ffsll.c | ||
fls.c | ||
flsl.c | ||
flsll.c | ||
fnmatch.c | ||
gsb_crc32.c | ||
iconv.c | ||
iconv_converter_if.m | ||
iconv_ucs.c | ||
iconv_xlat.c | ||
iconv_xlat16.c | ||
inet_aton.c | ||
inet_ntoa.c | ||
inet_ntop.c | ||
inet_pton.c | ||
jenkins_hash.c | ||
lshrdi3.c | ||
memcchr.c | ||
memchr.c | ||
memcmp.c | ||
memmem.c | ||
memset.c | ||
moddi3.c | ||
murmur3_32.c | ||
qdivrem.c | ||
qsort.c | ||
qsort_r.c | ||
quad.h | ||
random.c | ||
scanc.c | ||
strcasecmp.c | ||
strcasestr.c | ||
strcat.c | ||
strchr.c | ||
strchrnul.c | ||
strcmp.c | ||
strcpy.c | ||
strcspn.c | ||
strdup.c | ||
strlcat.c | ||
strlcpy.c | ||
strlen.c | ||
strncat.c | ||
strncmp.c | ||
strncpy.c | ||
strndup.c | ||
strnlen.c | ||
strnstr.c | ||
strrchr.c | ||
strsep.c | ||
strspn.c | ||
strstr.c | ||
strtol.c | ||
strtoq.c | ||
strtoul.c | ||
strtouq.c | ||
strvalid.c | ||
timingsafe_bcmp.c | ||
ucmpdi2.c | ||
udivdi3.c | ||
umoddi3.c |