v4l2object: Check for mmap64 before using it
authorTing-Wei Lan <lantw@src.gnome.org>
Tue, 19 Dec 2017 09:37:58 +0000 (17:37 +0800)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 22 Dec 2017 02:58:29 +0000 (21:58 -0500)
mmap64 is not available on FreeBSD.

https://bugzilla.gnome.org/show_bug.cgi?id=791779

configure.ac
meson.build
sys/v4l2/gstv4l2object.c

index 3846303..6e3e577 100644 (file)
@@ -197,6 +197,7 @@ fi
 
 dnl Check for mmap (needed by electricfence plugin)
 AC_FUNC_MMAP
+AC_CHECK_FUNCS([mmap64])
 AM_CONDITIONAL(GST_HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes")
 
 dnl Check for mmap (needed by electricfence plugin)
index 61f0077..ebae8cb 100644 (file)
@@ -105,6 +105,7 @@ check_functions = [
   ['HAVE_ISINF', 'isinf', '#include<math.h>'],
 # check token HAVE_LIBV4L2
   ['HAVE_MMAP', 'mmap', '#include<sys/mman.h>'],
+  ['HAVE_MMAP64', 'mmap64', '#include<sys/mman.h>'],
 # check token HAVE_OSX_AUDIO
 # check token HAVE_OSX_VIDEO
 # check token HAVE_RDTSC
index bf1a88c..c2400d1 100644 (file)
@@ -515,7 +515,11 @@ gst_v4l2_object_new (GstElement * element,
     v4l2object->dup = dup;
     v4l2object->ioctl = ioctl;
     v4l2object->read = read;
+#ifdef HAVE_MMAP64
     v4l2object->mmap = mmap64;
+#else
+    v4l2object->mmap = mmap;
+#endif
     v4l2object->munmap = munmap;
   }