Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Sep 2012 00:17:10 +0000 (UTC)
From:      Xin LI <delphij@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r303681 - in head/net/openldap24-server: . files
Message-ID:  <201209050017.q850HA5M042369@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: delphij
Date: Wed Sep  5 00:17:10 2012
New Revision: 303681
URL: http://svn.freebsd.org/changeset/ports/303681

Log:
  Apply a vendor fix to mdb initialization crash.

Added:
  head/net/openldap24-server/files/patch-ITS-7363   (contents, props changed)
Modified:
  head/net/openldap24-server/Makefile

Modified: head/net/openldap24-server/Makefile
==============================================================================
--- head/net/openldap24-server/Makefile	Tue Sep  4 23:21:31 2012	(r303680)
+++ head/net/openldap24-server/Makefile	Wed Sep  5 00:17:10 2012	(r303681)
@@ -43,7 +43,7 @@ BROKEN=			incompatible OpenLDAP version:
 .endif
 
 PORTREVISION_CLIENT=	1
-PORTREVISION_SERVER=	1
+PORTREVISION_SERVER=	2
 OPENLDAP_SHLIB_MAJOR=	8
 
 OPTIONS_DEFINE=	SASL FETCH

Added: head/net/openldap24-server/files/patch-ITS-7363
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/openldap24-server/files/patch-ITS-7363	Wed Sep  5 00:17:10 2012	(r303681)
@@ -0,0 +1,118 @@
+diff --git libraries/libmdb/mdb.c libraries/libmdb/mdb.c
+index d1184d1..0e02685 100644
+--- libraries/libmdb/mdb.c
++++ libraries/libmdb/mdb.c
+@@ -61,9 +61,13 @@
+ #include <resolv.h>	/* defines BYTE_ORDER on HPUX and Solaris */
+ #endif
+ 
++#if defined(__APPLE__) || defined (BSD)
++#define USE_POSIX_SEM
++#endif
++
+ #ifndef _WIN32
+ #include <pthread.h>
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ #include <semaphore.h>
+ #endif
+ #endif
+@@ -150,7 +154,7 @@
+ #define	close(fd)	CloseHandle(fd)
+ #define	munmap(ptr,len)	UnmapViewOfFile(ptr)
+ #else
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ #define LOCK_MUTEX_R(env)	sem_wait((env)->me_rmutex)
+ #define UNLOCK_MUTEX_R(env)	sem_post((env)->me_rmutex)
+ #define LOCK_MUTEX_W(env)	sem_wait((env)->me_wmutex)
+@@ -175,7 +179,7 @@
+ 	/** Unlock the writer mutex.
+ 	 */
+ #define UNLOCK_MUTEX_W(env)	pthread_mutex_unlock(&(env)->me_txns->mti_wmutex)
+-#endif	/* __APPLE__ */
++#endif	/* USE_POSIX_SEM */
+ 
+ 	/** Get the error code for the last failed system function.
+ 	 */
+@@ -200,7 +204,7 @@
+ #define	GET_PAGESIZE(x)	((x) = sysconf(_SC_PAGE_SIZE))
+ #endif
+ 
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ #define MNAME_LEN	32
+ #else
+ #define MNAME_LEN	(sizeof(pthread_mutex_t))
+@@ -464,7 +468,7 @@ typedef struct MDB_txbody {
+ 	uint32_t	mtb_magic;
+ 		/** Version number of this lock file. Must be set to #MDB_VERSION. */
+ 	uint32_t	mtb_version;
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ 	char	mtb_rmname[MNAME_LEN];
+ #else
+ 		/** Mutex protecting access to this table.
+@@ -497,7 +501,7 @@ typedef struct MDB_txninfo {
+ 		char pad[(sizeof(MDB_txbody)+CACHELINE-1) & ~(CACHELINE-1)];
+ 	} mt1;
+ 	union {
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ 		char mt2_wmname[MNAME_LEN];
+ #define	mti_wmname	mt2.mt2_wmname
+ #else
+@@ -914,7 +918,7 @@ struct MDB_env {
+ 	HANDLE		me_rmutex;		/* Windows mutexes don't reside in shared mem */
+ 	HANDLE		me_wmutex;
+ #endif
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ 	sem_t		*me_rmutex;		/* Apple doesn't support shared mutexes */
+ 	sem_t		*me_wmutex;
+ #endif
+@@ -2644,7 +2648,7 @@ mdb_env_share_locks(MDB_env *env)
+ 	}
+ #endif
+ }
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ /*
+  * hash_64 - 64 bit Fowler/Noll/Vo-0 FNV-1a hash code
+  *
+@@ -2883,7 +2887,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ 			goto fail;
+ 		}
+ #else	/* _WIN32 */
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ 		struct stat stbuf;
+ 		struct {
+ 			dev_t dev;
+@@ -2920,7 +2924,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ 			rc = ErrCode();
+ 			goto fail;
+ 		}
+-#else	/* __APPLE__ */
++#else	/* USE_POSIX_SEM */
+ 		pthread_mutexattr_t mattr;
+ 
+ 		pthread_mutexattr_init(&mattr);
+@@ -2930,7 +2934,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ 		}
+ 		pthread_mutex_init(&env->me_txns->mti_mutex, &mattr);
+ 		pthread_mutex_init(&env->me_txns->mti_wmutex, &mattr);
+-#endif	/* __APPLE__ */
++#endif	/* USE_POSIX_SEM */
+ #endif	/* _WIN32 */
+ 		env->me_txns->mti_version = MDB_VERSION;
+ 		env->me_txns->mti_magic = MDB_MAGIC;
+@@ -2965,7 +2969,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ 			goto fail;
+ 		}
+ #endif
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ 		env->me_rmutex = sem_open(env->me_txns->mti_rmname, 0);
+ 		if (!env->me_rmutex) {
+ 			rc = ErrCode();



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209050017.q850HA5M042369>