[Crash-utility] Extensions in C++

Ratnam Tatavarty rtatavarty at gmail.com
Mon Jun 28 20:12:13 UTC 2010


Hi Alex,
Thanks for the clarification. Sticking to plain C looks like a good option
for
maintainable code in this case. But any future plans to refactor code to
make
Crash compatible with CPP would be very helpful - as
polymorphism/overloading
can be used to work with kernel structures and accessing their members.

Thanks and Regards,
Ratnam

On Mon, Jun 28, 2010 at 12:44 PM, Alex Sidorenko <asid at hp.com> wrote:

> On June 28, 2010 03:16:32 pm Ratnam Tatavarty wrote:
> > Hi,
> > I am looking for a way to code/compile my Crash tool extension .so in
> CPP.
> > During compile step, I hit a name collision with "namespace" keyword upon
> > including defs.h. Does anyone try any CPP extensions before and if yes
> are
> > there any guidelines/suggestions about the required changes, compile
> > options? Any insights about Crash compatibility with CPP are greatly
> > appreciated.
> >
> > Build errors:
> >
> > defs.h:1917: error: expected identifier before ‘namespace’
> > defs.h:1917: error: expected unqualified-id before ‘namespace’
> > defs.h:1956: error: expected identifier before ‘namespace’
> > ...
> > defs.h:2967: error: expected unqualified-id before ‘typename’
> > defs.h:2967: error: abstract declarator ‘char*’ used as declaration
> > defs.h:2967: error: expected ‘;’ before ‘typename’
>
> Hi Ratnam,
>
> I think that building extensions in C++ for crash should just follow the
> standard guidelines for linking C/C++ code together. This is relatively
> easy
> when main program is implemented in C++ - just put the needed headers in
> your
> C++ programs in
>
> extern "C" {
> ...
> }
>
> sections. But in our case it is different - the main program (crash) is
> implemented in C. To make C++ work properly, you need to call special
> initialization subroutines explicitly (e.g. those for ctors and dtors).
> This
> is very compiler and library dependent. I remember doing such things on
> HPUX
> with aCC. I think the same can be done on Linux with GCC/G++ but it will
> depend on compiler version.
>
> Regards,
> Alex
>
>
> --
> ------------------------------------------------------------------
> Alexandre Sidorenko             email: asid at hp.com
> WTEC Linux                      Hewlett-Packard (Canada)
> ------------------------------------------------------------------
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20100628/ff3222bd/attachment.htm>


More information about the Crash-utility mailing list