This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [linux] Always ignore restart/cancellation signals


> Date: Thu, 8 Dec 2005 15:43:01 -0500
> From: Daniel Jacobowitz <drow@false.org>
> Cc: gdb-patches@sources.redhat.com
> 
> On Thu, Dec 08, 2005 at 01:38:24PM -0700, Kevin Buettner wrote:
> > > Hmm, I thought symbols starting with __ were "reserved by the
> > > implemntation" and should not be used by user space programs.
> 
> We're a program tightly tied to the implementation, and they're symbols
> provided by the implementation.  gdbserver already uses them; rda was
> recently changed to use them; gdb/signals/signals.c already uses them.
> > 
> > For the symbols in question, the header file, <bits/signum.h>, says:
> > 
> >     /* These are the hard limits of the kernel.  These values should not be
> >        used directly at user level.  */
> >     #define __SIGRTMIN	32
> >     #define __SIGRTMAX	(_NSIG - 1)
> > 
> > So the comment supports your claim.
> > 
> > The only alternative that I can think of is to hardcode the constant
> > (32, in this case) into the GDB sources.  Of these two approaches, I'd
> > prefer to use __ symbol from the system headers.  I do think that we
> > ought to check for its existence first though.
> 
> I'll do it if you like.

There's no need to, IMHO.  I think Jim was wrong: symbols starting
with __ are indeed reserved for the implementation, but the meaning of
that reservation is that user code should not _define_ such symbols,
not that it must not use them.  In effect, this rule sets up a
namespace that the library implementation can use without risking that
it steps on the feet of user code.  But if we don't define any symbols
that begin with __, we are safe accessing them, I think.

I have no idea why the above comment from bits/signum.h was written.
I think it is wrong and the glibc maintainers should be asked to
either remove it or explain why they think these symbols should not be
used at user level.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]