openbsd-ports/audio/vorbis-tools/patches/patch-acinclude_m4
2001-03-17 17:07:10 +00:00

70 lines
1.6 KiB
Plaintext

$OpenBSD: patch-acinclude_m4,v 1.1 2001/03/17 17:07:10 naddy Exp $
--- acinclude.m4.orig Sat Mar 17 16:28:41 2001
+++ acinclude.m4 Sat Mar 17 16:36:54 2001
@@ -280,3 +280,65 @@ int main ()
AC_SUBST(AO_LIBS)
rm -f conf.aotest
])
+
+dnl Shamelessly stolen from Joerg Schilling's star.
+dnl Copyright 1998 J. Schilling
+
+dnl Checks if mmap() works to get shared memory
+dnl Defines HAVE_SMMAP on success.
+AC_DEFUN(AC_FUNC_SMMAP,
+[AC_CACHE_CHECK([if mmap works to get shared memory], ac_cv_func_smmap,
+ [AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/mman.h>
+
+char *
+mkshare()
+{
+ int size = 8192;
+ int f;
+ char *addr;
+
+ if ((f = open("/dev/zero", 2)) < 0)
+ exit(1);
+ addr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, f, 0);
+ if (addr == (char *)-1)
+ exit(1);
+ close(f);
+
+ return (addr);
+}
+
+main()
+{
+ char *addr;
+
+ addr = mkshare(8192);
+ *addr = 'I';
+
+ switch (fork()) {
+
+ case -1:
+ printf("help\n"); exit(1);
+
+ case 0: /* child */
+ *addr = 'N';
+ _exit(0);
+ break;
+ default: /* parent */
+ wait(0);
+ sleep(1);
+ break;
+ }
+
+ if (*addr != 'N')
+ exit(1);
+ exit(0);
+}
+],
+ [ac_cv_func_smmap=yes],
+ [ac_cv_func_smmap=no],
+ [ac_cv_func_smmap=no])])
+if test $ac_cv_func_smmap = yes; then
+ AC_DEFINE(HAVE_SMMAP)
+fi])