https://bugs.openldap.org/show_bug.cgi?id=10419

          Issue ID: 10419
           Summary: NetBSD does not define union semun nor set
                    _SEM_SEMUN_UNDEFINED
           Product: LMDB
           Version: unspecified
          Hardware: All
                OS: Other
            Status: UNCONFIRMED
          Keywords: needs_review
          Severity: normal
          Priority: ---
         Component: liblmdb
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

NetBSD does not define union semun nor set _SEM_SEMUN_UNDEFINED. This means
that the union defined when _SEM_SEMUN_UNDEFINED is set is skipped leading to a
compilation error.

Adding this to `mdb.c` will fix this issue by setting this variable in NetBSD
when it is undefined (and it usually is, I can't speak for the future).

```
diff --git a/mdb.c b/mdb.c
index 3e3f529b98..64e5ffd254 100644
--- a/vendor/ocaml-lmdb/mdb.c
+++ b/vendor/ocaml-lmdb/mdb.c
@@ -176,6 +176,11 @@
 # define MDB_FDATASYNC         fsync
 #endif

+/* NetBSD does not define union semun in sys/sem.h */
+#if defined(__NetBSD__) && !defined(_SEM_SEMUN_UNDEFINED)
+# define _SEM_SEMUN_UNDEFINED  1
+#endif
+
 #ifndef _WIN32
 #include <pthread.h>
 #include <signal.h>

```

FreeBSD and OpenBSD don't suffer from this issue as they both correctly set
that variable.

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to