From 658ef23dc62bc88b0e27d58227c8de4bc6de5666 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sun, 12 Aug 2018 15:39:32 +0000 Subject: [PATCH] databases/lmdb: switch to robust mutexes on FreeBSD >= 11 PR: 230564 Approved by: delphij (maintainer) --- databases/lmdb/Makefile | 1 + databases/lmdb/files/patch-mdb.c | 26 +++++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/databases/lmdb/Makefile b/databases/lmdb/Makefile index 7942ae4c8bbd..1b74c21f3bec 100644 --- a/databases/lmdb/Makefile +++ b/databases/lmdb/Makefile @@ -4,6 +4,7 @@ PORTNAME= lmdb PORTVERSION= 0.9.22 DISTVERSIONPREFIX= ${PORTNAME:tu}_ +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= databases diff --git a/databases/lmdb/files/patch-mdb.c b/databases/lmdb/files/patch-mdb.c index 5194cbbeb91a..ce1fd37481f8 100644 --- a/databases/lmdb/files/patch-mdb.c +++ b/databases/lmdb/files/patch-mdb.c @@ -1,11 +1,23 @@ ---- mdb.c.orig 2017-06-01 16:51:10 UTC -+++ mdb.c -@@ -125,6 +125,8 @@ typedef SSIZE_T ssize_t; - # define MDB_FDATASYNC fsync - #elif defined(ANDROID) +- NetBSD has fdatasync(2), see https://github.com/NetBSD/src/commit/e963c41c6fb9 +- OpenBSD has fdatasync(3), see https://github.com/openbsd/src/commit/aa96fc3dc04f +- FreeBSD 11.0 has robust mutexes (see base r300043) and 11.1+ has fdatasync(2) (see base r304977) + +--- mdb.c.orig 2018-03-22 15:23:05.000000000 +0000 ++++ mdb.c 2018-08-12 15:35:45.262225679 +0000 +@@ -124,11 +124,12 @@ typedef SSIZE_T ssize_t; + #include /* defines BYTE_ORDER on HPUX and Solaris */ + #endif + +-#if defined(__APPLE__) || defined (BSD) || defined(__FreeBSD_kernel__) +-# define MDB_USE_POSIX_SEM 1 ++#if defined(__APPLE__) || defined(ANDROID) || defined(__DragonFly__) || (defined(__FreeBSD__) && __FreeBSD__ < 11) # define MDB_FDATASYNC fsync -+#elif defined(__FreeBSD_version) && __FreeBSD_version < 1101000 -+# define MDB_FDATASYNC fsync +-#elif defined(ANDROID) +-# define MDB_FDATASYNC fsync ++#endif ++ ++#if defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) || (defined(__FreeBSD__) && __FreeBSD__ < 11) ++# define MDB_USE_POSIX_SEM 1 #endif #ifndef _WIN32