25 lines
1.2 KiB
C
25 lines
1.2 KiB
C
--- lib/sort_r/sort_r.h.orig 2022-09-12 07:14:10 UTC
|
|
+++ lib/sort_r/sort_r.h
|
|
@@ -27,10 +27,10 @@ void sort_r(void *base, size_t nel, size_t width,
|
|
#define _SORT_R_INLINE inline
|
|
|
|
#if (defined __APPLE__ || defined __MACH__ || defined __DARWIN__ || \
|
|
- defined __FreeBSD__ || defined __DragonFly__)
|
|
+ (defined __FreeBSD__ && !defined(qsort_r)) || defined __DragonFly__)
|
|
# define _SORT_R_BSD
|
|
#elif (defined _GNU_SOURCE || defined __gnu_hurd__ || defined __GNU__ || \
|
|
- defined __linux__ || (defined __MINGW32__ && !defined __MINGW64_VERSION_MAJOR) || defined __GLIBC__)
|
|
+ defined __linux__ || (defined __MINGW32__ && !defined __MINGW64_VERSION_MAJOR) || defined __GLIBC__ || (defined (__FreeBSD__) && defined(qsort_r)))
|
|
# define _SORT_R_LINUX
|
|
#elif (defined _WIN32 || defined _WIN64 || defined __WINDOWS__)
|
|
# define _SORT_R_WINDOWS
|
|
@@ -170,7 +170,7 @@ static _SORT_R_INLINE void sort_r_simple(void *base, s
|
|
#if defined _SORT_R_LINUX
|
|
|
|
typedef int(* __compar_d_fn_t)(const void *, const void *, void *);
|
|
- extern void qsort_r(void *base, size_t nel, size_t width,
|
|
+ extern void (qsort_r)(void *base, size_t nel, size_t width,
|
|
__compar_d_fn_t __compar, void *arg)
|
|
__attribute__((nonnull (1, 4)));
|
|
|