diff --git a/compat/qsort_r.c b/compat/qsort_r.c deleted file mode 100644 index 1f68b68ba0..0000000000 --- a/compat/qsort_r.c +++ /dev/null @@ -1,56 +0,0 @@ -/***************************************************************************** - * qsort_r.c: future POSIX qsort_r() replacement - ***************************************************************************** - * Copyright © 2018 Rémi Denis-Courmont - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. - *****************************************************************************/ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -static _Thread_local struct -{ - int (*compar)(const void *, const void *, void *); - void *arg; -} state; - -static int compar_wrapper(const void *a, const void *b) -{ - return state.compar(a, b, state.arg); -} - -/* Follow the upcoming POSIX prototype, coming from GNU/libc. - * Note that this differs from the BSD prototype. */ - -void qsort_r(void *base, size_t nmemb, size_t size, - int (*compar)(const void *, const void *, void *), - void *arg) -{ - int (*saved_compar)(const void *, const void *, void *) = state.compar; - void *saved_arg = state.arg; - - state.compar = compar; - state.arg = arg; - - qsort(base, nmemb, size, compar_wrapper); - - /* Restore state for nested reentrant calls */ - state.compar = saved_compar; - state.arg = saved_arg; -} diff --git a/configure.ac b/configure.ac index 96e0862ffb..a2b8ade789 100644 --- a/configure.ac +++ b/configure.ac @@ -586,7 +586,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 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([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([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 0263286efc..2164f690b1 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -224,11 +224,6 @@ 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 **);