Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Doug Evans <xdje42@gmail.com>
To: Tom Tromey <tromey@redhat.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
	binutils@sourceware.org
Subject: Re: [PATCH] include/gdb/section-scripts.h: New file.
Date: Sat, 07 Dec 2013 20:56:00 -0000	[thread overview]
Message-ID: <CAP9bCMQ5m4tntsGoSj+zGWpWZgSzSEdjNZ7M_sjDGPUjda8wPg@mail.gmail.com> (raw)
In-Reply-To: <87bo0vnm6x.fsf@fleche.redhat.com>

On Thu, Dec 5, 2013 at 11:15 AM, Tom Tromey <tromey@redhat.com> wrote:
> Tom> I don't see why this needs to go in include.
>
> Doug> So you would have code that puts contents in this section using
> Doug> magic numbers?  Eh? This doesn't make any sense.
>
> I didn't say that.

Then you're ok with having a header that defines these magic numbers?

> Doug> Why does dwarf2.def exist (for example) ?
>
> Because it has multiple in-tree users that ought to be kept in sync,
> including some in gcc.

The point is it's s.o.p. to put a table of magic numbers in a header.

Heck, we even put #define's in headers that are used just for
documentation purposes (at least they're not used by any code, and
it's unlikely at least some of what I've found was ever intended to be
used with code, per se, they'rethere "just in case" and for doc
purposes AFAICT).
binutils-gdb has plenty of them.

Plus it's not just in tree users.
Another thing I'd *like* to do is install this header with "make install".

> Doug> [The dwarf format is far more complicated, obvously.  But I didn't
> Doug> know there was
> Doug> a threshold of magic numbers was required before a header was allowed.]
>
> I don't think there is, and I didn't say that either.
>
> Doug> +/* Native GDB scripts are not currently supported in
> Doug> .debug_gdb_scripts,
> Doug> +   but we reserve a value for it.  */
> Doug> +/*#define SECTION_SCRIPT_ID_GDB_FILE 2*/
>
> Tom> There's no need either to reserve a value or to add commented out code.
>
> Doug> I'm curious how I would apply this rule in general.
>
> 1. Don't check in commented-out code.

If this were code that would be one thing,
but this is an entry in a table of magic numbers.
It's not uncommon to reserve a value.

If the gnu tools now have a rule that this is now prohibited, we'd
better write it down.
It's hard to imagine someone not wanting to reserve a value in another
context in the future, and I think it'll simplify the subsequent
discussion if one can just refer to a community approved rule.

> 2. If a format is versioned or otherwise extensible, there is never a
>    need to reserve space for a future change.  Instead just use the
>    versioning or extension mechanism when the relevant change is made.
>    In this case the appropriate time would be when actually changing gdb
>    to read gdb scripts from the section.

I think you meant to qualify "never".
dwarf is extensible.

For example, one may want to ensure ahead of time that when the time
comes one doesn't have to extend the format for the value in question.
One may also wish to reserve values so that when the time comes to
needing to extend the format, how that extension will work has already
been thought out.

I looked in the dwarf2 spec (I realize we're now at v4).  It reserved
two DW_LANG values for cobol.  Heh.

7.12 Source Languages
The encodings for source languages are given in Figure 28. Names
marked with † and their
associated values are reserved, but the languages they represent are
not supported in DWARF
Version 2.

DW_LANG_Cobol74† 0x0005
DW_LANG_Cobol85† 0x0006


      reply	other threads:[~2013-12-07 20:56 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-29 19:59 Doug Evans
2013-12-02 15:19 ` Tom Tromey
2013-12-02 17:01   ` Doug Evans
2013-12-03 16:17     ` Doug Evans
2013-12-05 21:07     ` Tom Tromey
2013-12-07 20:56       ` Doug Evans [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAP9bCMQ5m4tntsGoSj+zGWpWZgSzSEdjNZ7M_sjDGPUjda8wPg@mail.gmail.com \
    --to=xdje42@gmail.com \
    --cc=binutils@sourceware.org \
    --cc=gdb-patches@sourceware.org \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox