Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Svante Signell <svante.signell@gmail.com>
To: Tom Tromey <tom@tromey.com>
Cc: Andreas Schwab <schwab@linux-m68k.org>,
	Simon Marchi <simark@simark.ca>,
	 gdb-patches@sourceware.org
Subject: Re: [PATCH] Please define thread_info as struct thread_info (and other stuff)
Date: Mon, 17 Dec 2018 20:51:00 -0000	[thread overview]
Message-ID: <aa49192a4651ab71fc092f02af9bd4968eabfaca.camel@gmail.com> (raw)
In-Reply-To: <87d0q13w6b.fsf@tromey.com>

On Sun, 2018-12-16 at 16:10 -0700, Tom Tromey wrote:
> > > > > > "Svante" == Svante Signell <svante.signell@gmail.com> writes:
> > > Try adding a forward declaration of struct thead_info.  Note that
> > > config/i386/nm-i386gnu.h includes "regcache.h", making it unique among
> > > the nm.h files.
> 
> Svante> From what I've learned forward declarations is bad coding, an should
> be avoided
> Svante> as much as possible. Right or wrong?
> 
> Opinions vary -- I think the Google style has a rule against it? -- but
> gdb generally does not avoid it.
> 
> Svante> Furthermore, not defining thread_info as struct everywhere is in my
> opinion very
> Svante> lazy coding.
> 
> I disagree here, C++ provides the typedef, there's nothing really wrong
> with using it.

Well, the basis is C-code, where that is a requirement.

> Svante> Another issue is to compile C-code (and C++-code) in *.c files.
> Svante> Please rename these to *.cpp (and eventually the header files to
> *.hpp)! As it is now it is very confusing.
> 
> I think this was discussed When we made this switch, and the conclusion
> was that a mass rename would be worse.

Do you really need to compile all files with a C++ compiler? Pure C-code could
still be compiled with a C compiler.
 
> Svante> Finally, I've found the problem (but no workaround yet): thread_info
> is an RPC on GNU/Hurd, and including mach.h in gdb/config/i386/nm-
> i386gnu.h:#include <mach.h> further includes <mach/mach_interface.h> which has
> the conflicting name Svante> of that RPC: kern_return_t thread_info
> 
> Typical answers for this kind of thing are either to segregate the use
> of the system header somehow, or maybe namespacing or some other kind of
> renaming.  I haven't looked into the details much in this case I'm
> afraid.

As I see it you need to:

1) Apply the patches submitted earlier in this thread using struct thread_info
consistently everywhere (simplest).
2) Rename all usage of the struct thread_info to something else e.g. struct
gdb_thread_info (not future-proof though).
3) Create a gdb namespace for all your code to avoid conflicts.
4) Segregate the use of system header files as you write above. Dunno how to do
that though, but some of you should.

Thanks!


  reply	other threads:[~2018-12-17 20:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-15 19:36 Svante Signell
2018-12-15 22:48 ` Tom Tromey
2018-12-15 23:01   ` Svante Signell
2018-12-16  4:31     ` Simon Marchi
2018-12-16  5:14       ` Svante Signell
2018-12-16  6:02         ` Simon Marchi
2018-12-16 16:22         ` Tom Tromey
2018-12-16  9:20 ` Andreas Schwab
2018-12-16 19:08   ` Svante Signell
2018-12-16 23:10     ` Tom Tromey
2018-12-17 20:51       ` Svante Signell [this message]
2018-12-17 21:41         ` John Baldwin
2019-02-14 15:16           ` Thomas Schwinge
2018-12-20 13:31         ` Svante Signell
2018-12-20 22:34           ` Tom Tromey
2018-12-20 23:26             ` Simon Marchi
2018-12-24 21:51             ` Tom Tromey
2019-01-12 18:37               ` Svante Signell
2019-01-12 20:50                 ` Tom Tromey

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=aa49192a4651ab71fc092f02af9bd4968eabfaca.camel@gmail.com \
    --to=svante.signell@gmail.com \
    --cc=gdb-patches@sourceware.org \
    --cc=schwab@linux-m68k.org \
    --cc=simark@simark.ca \
    --cc=tom@tromey.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