diff mbox series

[3/9] Checking mlockall symbol presence

Message ID CA+XhMqxOuWKDangdOwhe3PbKa=411_BRC7WS6dvfJ+HMPw7j0w@mail.gmail.com
State New
Headers show
Series [1/9] Enabling BSD symbols | expand

Commit Message

David CARLIER June 29, 2020, 9:48 p.m. UTC
From ac450c4abe03e0e461fede18727500e616d9f7e2 Mon Sep 17 00:00:00 2001
From: David Carlier <devnexen@gmail.com>
Date: Mon, 29 Jun 2020 22:15:21 +0000
Subject: [PATCH 3/9] Checking mlockall symbol presence.

Signed-off-by: David Carlier <devnexen@gmail.com>
---
 configure  | 15 +++++++++++++++
 os-posix.c |  4 ++++
 2 files changed, 19 insertions(+)

--
2.26.0

Comments

Peter Maydell July 3, 2020, 1:49 p.m. UTC | #1
On Tue, 30 Jun 2020 at 01:44, David CARLIER <devnexen@gmail.com> wrote:
>
> From ac450c4abe03e0e461fede18727500e616d9f7e2 Mon Sep 17 00:00:00 2001
> From: David Carlier <devnexen@gmail.com>
> Date: Mon, 29 Jun 2020 22:15:21 +0000
> Subject: [PATCH 3/9] Checking mlockall symbol presence.
>
> Signed-off-by: David Carlier <devnexen@gmail.com>

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM
diff mbox series

Patch

diff --git a/configure b/configure
index 50b559238f..0b278f1646 100755
--- a/configure
+++ b/configure
@@ -2392,6 +2392,18 @@  else
   pty_h=no
 fi

+cat > $TMPC <<EOF
+#include <sys/mman.h>
+int main(int argc, char *argv[]) {
+    return mlockall(MCL_FUTURE);
+}
+EOF
+if compile_prog "" "" ; then
+  have_mlockall=yes
+else
+  have_mlockall=no
+fi
+
 #########################################
 # vhost interdependencies and host support

@@ -7865,6 +7877,9 @@  fi
 if test "$pty_h" = "yes" ; then
   echo "CONFIG_PTY=y" >> $config_host_mak
 fi
+if test "$have_mlockall" = "yes" ; then
+  echo "CONFIG_MLOCKALL=y" >> $config_host_mak
+fi
 if test "$fuzzing" = "yes" ; then
   if test "$have_fuzzer" = "yes"; then
     FUZZ_LDFLAGS=" -fsanitize=address,fuzzer"
diff --git a/os-posix.c b/os-posix.c
index 3cd52e1e70..e02b566940 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -337,6 +337,7 @@  bool is_daemonized(void)

 int os_mlock(void)
 {
+#if defined CONFIG_MLOCKALL
     int ret = 0;

     ret = mlockall(MCL_CURRENT | MCL_FUTURE);
@@ -345,4 +346,7 @@  int os_mlock(void)
     }

     return ret;
+#else
+    return -ENOSYS;
+#endif
 }