----- Original Message -----
Dne Čt 26. července 2012 14:02:56 Adrien Kunysz napsal(a):
> On Thu, Jul 26, 2012 at 10:57 AM, Petr Tesarik <ptesarik(a)suse.cz>
> wrote:
> > Hi all,
> >
> > as part of SUSE HackWeek8, David started work on a GUI extension using
> > Qt4, which is a C++ project. One of the early annoyances is that an
> > extension module must include the declarations from defs.h, and we
> > currently use some C identifiers which happen to be keywords in C++,
> > namely:
> >
> > - struct namespace
> > - struct namespace namespace (in struct symbol_table_data)
> > - char *typename (in struct gnu_request)
And it seems that "namespace" is used for other purposes in files
like ppc.c and ppc64.c...
The "typename" is changeable, in fact I don't think it's really used
except for debugging purposes, although it would break the capability
of using other (earlier) versions of gdb. I would say that most people
use the most recent gdb version, but it always seems that there's somebody
still doing things differently. But that could be dealt with by #ifdef'ing
the structure member declaration in defs.h based upon the relevant GDB_X_X
setting, because gdb/symtab.c wouldn't see it. Kind of ugly, though...
> >
> > Can I rename them? But you said earlier that the existing API must never
> > change... Any other suggestions to make this include file parseable by a
> > C++ compiler?
>
> One hack you could consider would be to do something like this:
>
> extern "C" {
> #define namespace ns
> #include "defs.h"
> #undef namespace
> }
Yes! That works, although I'm not entirely sure it can't do any harm.
After all, it's what you called it - a hack. ;-)
But it can't harm the crash utility, right? ;-)
I wonder whether Dave (Anderson) can suggest a cleaner solution (or
make an
official statement that he doesn't care about C++ compatibility).
Petr Tesarik
SUSE Linux
To be honest, I really don't care about C++ compatibility -- with the realization
that I'm already offending somebody. If Adrien's suggestion works, I suppose
I'd
prefer to keep things as they are. But if you really want to submit a patch,
I'll entertain it as always...
Dave