Index: contrib/sendmail/include/sm/os/sm_os_freebsd.h
===================================================================
--- contrib/sendmail/include/sm/os/sm_os_freebsd.h
+++ contrib/sendmail/include/sm/os/sm_os_freebsd.h
@@ -34,7 +34,7 @@
 # define SM_CONF_SHM	1
 #endif /* SM_CONF_SHM */
 #ifndef SM_CONF_SEM
-# define SM_CONF_SEM	1
+# define SM_CONF_SEM	2
 #endif /* SM_CONF_SEM */
 #ifndef SM_CONF_MSG
 # define SM_CONF_MSG	1
Index: lib/libc/gen/semctl.c
===================================================================
--- lib/libc/gen/semctl.c
+++ lib/libc/gen/semctl.c
@@ -34,6 +34,7 @@
 #ifndef NO_COMPAT7
 #define _WANT_SEMUN_OLD
 #endif
+#define _WANT_SEMUN
 
 #include <sys/types.h>
 #include <sys/ipc.h>
Index: lib/libc/sys/semctl.2
===================================================================
--- lib/libc/sys/semctl.2
+++ lib/libc/sys/semctl.2
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 12, 1995
+.Dd February 23, 2018
 .Dt SEMCTL 2
 .Os
 .Sh NAME
@@ -55,10 +55,7 @@
 .Fa arg
 argument,
 .Fa "union semun"
-is defined as follows:
-.\"
-.\" From <sys/sem.h>:
-.\"
+must be defined as follows:
 .Bd -literal
 union semun {
         int     val;            /* value for SETVAL */
@@ -66,6 +63,12 @@
         u_short *array;         /* array for GETALL & SETALL */
 };
 .Ed
+Non-portable software may define
+.Dv _WANT_SEMUN
+before including
+.Pa sys/sem.h
+to use the system definition of
+.Fa "union semun" .
 .Pp
 Commands are performed as follows:
 .\"
Index: sys/sys/param.h
===================================================================
--- sys/sys/param.h
+++ sys/sys/param.h
@@ -60,7 +60,7 @@
  *		in the range 5 to 9.
  */
 #undef __FreeBSD_version
-#define __FreeBSD_version 1200058	/* Master, propagated to newvers */
+#define __FreeBSD_version 1200059	/* Master, propagated to newvers */
 
 /*
  * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
Index: sys/sys/sem.h
===================================================================
--- sys/sys/sem.h
+++ sys/sys/sem.h
@@ -76,6 +76,7 @@
 };
 #endif
 
+#if defined(_KERNEL) || defined(_WANT_SEMUN)
 /*
  * semctl's arg parameter structure
  */
@@ -84,6 +85,7 @@
 	struct		semid_ds *buf;	/* buffer for IPC_STAT & IPC_SET */
 	unsigned short	*array;		/* array for GETALL & SETALL */
 };
+#endif
 
 /*
  * commands for semctl
Index: usr.bin/svn/lib/libapr/apr.h
===================================================================
--- usr.bin/svn/lib/libapr/apr.h
+++ usr.bin/svn/lib/libapr/apr.h
@@ -261,7 +261,7 @@
 #define APR_HAVE_STRSTR         1
 #define APR_HAVE_MEMCHR         1
 #define APR_HAVE_STRUCT_RLIMIT  1
-#define APR_HAVE_UNION_SEMUN    1
+#define APR_HAVE_UNION_SEMUN    0
 #define APR_HAVE_SCTP           1
 #define APR_HAVE_IOVEC          1