aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Schouten <ed@FreeBSD.org>2022-09-30 16:59:40 +0000
committerXin LI <delphij@FreeBSD.org>2022-09-30 22:28:02 +0000
commitcd28784c67bfe64bd95afc8136732dba6750bf27 (patch)
tree6ff46c4c111005a40c5d07ee75eea144d880376f
parent877bb77cdaa2ac086e570e60d7f22fe51fbb81ae (diff)
downloadports-cd28784c67bfe64bd95afc8136732dba6750bf27.tar.gz
ports-cd28784c67bfe64bd95afc8136732dba6750bf27.zip
textproc/raptor2: Improve sort_r(3) API detection.
In a future version of FreeBSD, we would adopt POSIX qsort_r(3) API which is different from traditional FreeBSD qsort_r(3). PR: ports/231256 Exp-run by: antoine Approved by: portmgr
-rw-r--r--textproc/raptor2/Makefile2
-rw-r--r--textproc/raptor2/files/patch-src_sort__r.h34
2 files changed, 35 insertions, 1 deletions
diff --git a/textproc/raptor2/Makefile b/textproc/raptor2/Makefile
index 8f5297f37eb0..5b39c66d0c21 100644
--- a/textproc/raptor2/Makefile
+++ b/textproc/raptor2/Makefile
@@ -1,6 +1,6 @@
PORTNAME= raptor2
PORTVERSION= 2.0.15
-PORTREVISION= 22
+PORTREVISION= 23
CATEGORIES= textproc
MASTER_SITES= http://download.librdf.org/source/ \
SF/librdf/${PORTNAME}/${PORTVERSION}
diff --git a/textproc/raptor2/files/patch-src_sort__r.h b/textproc/raptor2/files/patch-src_sort__r.h
new file mode 100644
index 000000000000..70878740f4a6
--- /dev/null
+++ b/textproc/raptor2/files/patch-src_sort__r.h
@@ -0,0 +1,34 @@
+--- src/sort_r.h.orig 2014-10-09 23:00:44 UTC
++++ src/sort_r.h
+@@ -24,10 +24,11 @@ void sort_r(void *base, size_t nel, size_t width,
+ defined OpenBSD3_1 || defined OpenBSD3_9 || defined __OpenBSD__ || \
+ defined __NetBSD__ || \
+ defined __DragonFly__ || \
+- defined AMIGA)
++ defined AMIGA) && !defined(qsort_r)
+ # define _SORT_R_BSD
+ #elif (defined _GNU_SOURCE || defined __gnu_hurd__ || defined __GNU__ || \
+- defined __linux__ || defined __MINGW32__ || defined __GLIBC__)
++ defined __linux__ || defined __MINGW32__ || defined __GLIBC__) || \
++ defined(qsort_r)
+ # define _SORT_R_LINUX
+ #elif (defined _WIN32 || defined _WIN64 || defined __WINDOWS__)
+ # define _SORT_R_WINDOWS
+@@ -64,7 +65,7 @@ void sort_r(void *base, size_t nel, size_t width,
+ #if defined _SORT_R_BSD
+
+ /* BSD requires argument swap */
+- extern void qsort_r(void *base, size_t nel, size_t width, void *thunk,
++ extern void (qsort_r)(void *base, size_t nel, size_t width, void *thunk,
+ int (*compar)(void *_thunk, const void *_a, const void *_b));
+
+ struct sort_r_data
+@@ -82,7 +83,7 @@ void sort_r(void *base, size_t nel, size_t width,
+ #elif 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)));
+