Fix build issue with nat/linux-namespaces.c

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.
This commit is contained in:
Gary Benson
2015-09-14 11:02:06 +01:00
parent 2928b1844d
commit a8c636cb54
2 changed files with 13 additions and 6 deletions

View 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.

View 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);
}