[vlc-commits] compat: replace qsort_r() where missing

Rémi Denis-Courmont git at videolan.org
Tue Nov 20 16:58:55 CET 2018


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Nov 20 17:56:05 2018 +0200| [f3d7305b62dcf6137baeff68de424327d632a85b] | committer: Rémi Denis-Courmont

compat: replace qsort_r() where missing

This should sort properly on Windows and any other platform without
qsort_r(). It does _not_ fix any potential issues on any platforms with
an incompatible qsort_r() prototype (such as FreeBSD < 13).

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f3d7305b62dcf6137baeff68de424327d632a85b
---

 configure.ac         | 2 +-
 include/vlc_fixups.h | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 8cf88a4ec6..1f33f5dc88 100644
--- a/configure.ac
+++ b/configure.ac
@@ -581,7 +581,7 @@ need_libc=false
 
 dnl Check for usual libc functions
 AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale])
-AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
+AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll qsort_r recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
 AC_REPLACE_FUNCS([gettimeofday])
 AC_CHECK_FUNC(fdatasync,,
   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h
index a68dc1e820..0263286efc 100644
--- a/include/vlc_fixups.h
+++ b/include/vlc_fixups.h
@@ -90,6 +90,7 @@ typedef struct
 
 #if !defined (HAVE_ALIGNED_ALLOC) || \
     !defined (HAVE_MEMRCHR) || \
+    !defined (HAVE_QSORT_R) || \
     !defined (HAVE_STRLCPY) || \
     !defined (HAVE_STRNDUP) || \
     !defined (HAVE_STRNLEN) || \
@@ -223,6 +224,11 @@ long long atoll (const char *);
 lldiv_t lldiv (long long, long long);
 #endif
 
+#ifndef HAVE_QSORT_R
+void (qsort_r)(void *, size_t, size_t,
+               int (*)(const void *, const void *, void *), void *);
+#endif
+
 #ifndef HAVE_STRTOF
 #ifndef __ANDROID__
 float strtof (const char *, char **);



More information about the vlc-commits mailing list