Fix build issue with nat/linux-namespaces.c
authorGary Benson <gbenson@redhat.com>
Mon, 14 Sep 2015 10:02:06 +0000 (11:02 +0100)
committerGary Benson <gbenson@redhat.com>
Mon, 14 Sep 2015 10:02:06 +0000 (11:02 +0100)
This commit fixes a build issue on systems with a prototype for setns
in their header files but no working setns is detected by configure.

gdb/ChangeLog:

PR gdb/18957
* nat/linux-namespaces.c (setns): Rename from this ...
(do_setns): ... to this.  Support calling setns if it exists.
(mnsh_handle_setns): Call do_setns.

gdb/ChangeLog
gdb/nat/linux-namespaces.c

index a2629f1..94bcf9f 100644 (file)
@@ -1,3 +1,10 @@
+2015-09-14  Peter Bergner  <bergner@vnet.ibm.com>
+
+       PR gdb/18957
+       * nat/linux-namespaces.c (setns): Rename from this ...
+       (do_setns): ... to this.  Support calling setns if it exists.
+       (mnsh_handle_setns): Call do_setns.
+
 2015-08-28  Joel Brobecker  <brobecker@adacore.com>
 
        * version.in: Set GDB version number to 7.10.0.DATE-cvs.
index 6fb0a2b..4341429 100644 (file)
@@ -34,18 +34,18 @@ int debug_linux_namespaces;
 
 /* Handle systems without setns.  */
 
-#ifndef HAVE_SETNS
-static int
-setns (int fd, int nstype)
+static inline int
+do_setns (int fd, int nstype)
 {
-#ifdef __NR_setns
+#ifdef HAVE_SETNS
+  return setns (fd, nstype);
+#elif defined __NR_setns
   return syscall (__NR_setns, fd, nstype);
 #else
   errno = ENOSYS;
   return -1;
 #endif
 }
-#endif
 
 /* Handle systems without MSG_CMSG_CLOEXEC.  */
 
@@ -495,7 +495,7 @@ mnsh_recv_message (int sock, enum mnsh_msg_type *type,
 static ssize_t
 mnsh_handle_setns (int sock, int fd, int nstype)
 {
-  int result = setns (fd, nstype);
+  int result = do_setns (fd, nstype);
 
   return mnsh_return_int (sock, result, errno);
 }