databases/lmdb: back out r478269 due to cyrus-imapd30 instability

Robust mutexes were already enabled but r478269 disabled POSIX
semaphores. It appears both are only mutually exclusive on Android and
old GNU libc.

PR:		230564
Reported by:	Volodymyr Kostyrko
Pointy hat to:	jbeich
This commit is contained in:
Jan Beich 2018-09-03 12:08:40 +00:00
parent 5d3104b27a
commit f9e1b3e8eb
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=478856
2 changed files with 7 additions and 19 deletions

View File

@ -4,7 +4,7 @@
PORTNAME= lmdb
PORTVERSION= 0.9.22
DISTVERSIONPREFIX= ${PORTNAME:tu}_
PORTREVISION= 1
PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= databases

View File

@ -1,23 +1,11 @@
- 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 UTC
--- mdb.c.orig 2017-06-01 16:51:10 UTC
+++ mdb.c
@@ -124,11 +124,12 @@ typedef SSIZE_T ssize_t;
#include <resolv.h> /* 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)
@@ -125,6 +125,8 @@ typedef SSIZE_T ssize_t;
# 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
#elif defined(ANDROID)
# define MDB_FDATASYNC fsync
+#elif defined(__FreeBSD_version) && __FreeBSD_version < 1101000
+# define MDB_FDATASYNC fsync
#endif
#ifndef _WIN32