mirror of
https://git.freebsd.org/ports.git
synced 2025-06-04 12:26:27 -04:00
PR: ports/266227, ports/266574 Reported by: antoine (via exp-run) Approved by: maintainer (acm@)
75 lines
2.3 KiB
C
75 lines
2.3 KiB
C
--- stellarsolver/astrometry/util/os-features-test.c.orig 2022-07-29 16:11:55 UTC
|
|
+++ stellarsolver/astrometry/util/os-features-test.c
|
|
@@ -14,7 +14,11 @@ int main() {
|
|
}
|
|
#endif
|
|
|
|
-#ifdef TEST_QSORT_R
|
|
+#ifdef TEST_BSD_QSORT_R
|
|
+void (qsort_r)(void *base, size_t nmemb, size_t sz,
|
|
+ void *userdata,
|
|
+ int (*compar)(void *, const void *, const void *));
|
|
+
|
|
static int cmp(void* u, const void* a, const void* b) {
|
|
return 0;
|
|
}
|
|
@@ -22,51 +26,22 @@ int main() {
|
|
int array;
|
|
int baton;
|
|
qsort_r(&array, 1, sizeof(int), &baton, cmp);
|
|
- //printf("#define NEED_QSORT_R 0\n");
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
-#ifdef TEST_DECLARE_QSORT_R
|
|
-// Test whether just declaring qsort_r as we do causes a compile failure.
|
|
+#ifdef TEST_GNU_QSORT_R
|
|
+void (qsort_r)(void *base, size_t nmemb, size_t sz,
|
|
+ int (*compar)(const void *, const void *, void *),
|
|
+ void *userdata);
|
|
|
|
-void qsort_r(void *base, size_t nmemb, size_t sz,
|
|
- void *userdata,
|
|
- int (*compar)(void *, const void *, const void *));
|
|
-
|
|
-int main() {
|
|
- //printf("#define NEED_DECLARE_QSORT_R 1\n");
|
|
+static int cmp(const void* a, const void* b, void* u) {
|
|
return 0;
|
|
}
|
|
-#endif
|
|
-
|
|
-#ifdef TEST_SWAP_QSORT_R
|
|
-// Use the result of TEST_DECLARE_QSORT_R and TEST_NEED_QSORT_R, or else
|
|
-// this test will fail with a warning about undefined qsort_r
|
|
-// Include .c rather than .h because we test with:
|
|
-// gcc -o (exec) os-features-test.c
|
|
-// and if NEED_QSORT_R, os-features.c includes qsort_reentrant.c
|
|
-#include "os-features-config.h.tmp"
|
|
-#define DONT_INCLUDE_OS_FEATURES_CONFIG_H 1
|
|
-#include "os-features.c"
|
|
-#undef DONT_INCLUDE_OS_FEATURES_CONFIG_H
|
|
-// Test whether qsort_r works unswapped. (ie, qsort_r matches the definition of
|
|
-// QSORT_R defined in the os-features.h documentation.)
|
|
-static int sortfunc(void* thunk, const void* v1, const void* v2) {
|
|
- const int* i1 = v1;
|
|
- const int* i2 = v2;
|
|
- if (*i1 < *i2)
|
|
- return -1;
|
|
- if (*i1 > *i2)
|
|
- return 1;
|
|
- return 0;
|
|
-}
|
|
int main() {
|
|
- int array[] = { 4, 17, 88, 34, 12, 12, 17 };
|
|
- int N = sizeof(array)/sizeof(int);
|
|
- int mythunk = 42;
|
|
- qsort_r(array, N, sizeof(int), &mythunk, sortfunc);
|
|
- //printf("#define NEED_SWAP_QSORT_R 0\n");
|
|
+ int array;
|
|
+ int baton;
|
|
+ qsort_r(&array, 1, sizeof(int), cmp, &baton);
|
|
return 0;
|
|
}
|
|
#endif
|