This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix build issue due to Introduce nat/linux-namespaces.[ch] patch
- From: Gary Benson <gbenson at redhat dot com>
- To: Peter Bergner <bergner at vnet dot ibm dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Tue, 14 Jul 2015 15:46:41 +0100
- Subject: Re: [PATCH] Fix build issue due to Introduce nat/linux-namespaces.[ch] patch
- Authentication-results: sourceware.org; auth=none
- References: <1436474110 dot 5367 dot 27 dot camel at otta>
Hi Peter,
Peter Bergner wrote:
> I have a toolchain that dies building gdb with the following error:
>
> /home/bergner/binutils/binutils-gdb/gdb/nat/linux-namespaces.c:39:1: error: static declaration of âsetnsâ follows non-static declaration
> setns (int fd, int nstype)
> ^
> In file included from /opt/at7.0/include/sched.h:41:0,
> from /home/bergner/binutils/binutils-gdb/gdb/nat/linux-namespaces.c:30:
> /opt/at7.0/include/bits/sched.h:91:12: note: previous declaration of âsetnsâ was here
> extern int setns (int __fd, int __nstype) __THROW;
> ^
> make[2]: *** [linux-namespaces.o] Error 1
>
> My configure doesn't define HAVE_SETNS because my glibc defines
> __stub_setns, so nat/linux-namespaces.c defines its own setns
> routine. However, my glibc also has its sched.h with a extern
> prototype for setns, which conflicts with this static version
> linux-namespaces.c is creating, so we get the error above. How
> about the following patch to work around the error? I can confirm
> that it fixes the problem on my multiple systems that do and do not
> have setns.
>
> Ok for trunk?
I'd prefer it without the nested conditionals:
#ifdef HAVE_SETNS
return setns (fd, nstype);
#elif defined __NR_setns
return syscall (__NR_setns, fd, nstype);
#else
errno = ENOSYS;
return -1;
#endif
Otherwise ok. Thanks for doing this work!
Cheers,
Gary
--
http://gbenson.net/