On Jan 30, 2008, at 5:35 PM, Adam C Powell IV wrote:
With no reply in a couple of weeks, I'm wondering if my previous
message
got dropped. (Then again, my previous message was a couple of weeks
late in replying to its predecessor...)
No, it didn't get dropped -- it was exactly your admission of low
priority that had me put this issue as low priority as well. :-)
I'm recommending a change to mpi.h which would let C headers
included by
C++ programs do:
#define OMPI_SKIP_MPICXX
#include <mpi.h>
#undef OMPI_SKIP_MPICXX
without preventing the C++ headers from being included at another
time.
See below for the recommended change.
I really don't think that's a good solution. The real problem is that
some of Salome's header files are doing things that they should not be
doing (including a C++-safe header file inside extern "C" {}).
IMHO, the real fix should be to fix the code that is doing the Wrong
Thing. I'm reluctant to provide a subtle workaround in our software
that enables a Wrong Thing -- know what I mean?
FWIW, I just downloaded HDF5 1.6.6 and I took a [quick] look: it does
indeed look like HDF5's header files are C++-safe. Specifically: they
do not include <mpi.h> in an extern "C" block, and all of their
declarations are within extern "C" blocks. Hence, Salome should not
be including <hdf5.h> inside of an extern "C" block because <hdf5.h>
is already C++-safe.
This should fix your problem, right?
--
Jeff Squyres
Cisco Systems