On Mon, 8 Sep 2008, John Peterson wrote:

> On Sun, Sep 7, 2008 at 7:47 PM, Derek Gaston <[EMAIL PROTECTED]> wrote:
>>
>>> If anyone following the
>>> SVN head suddenly sees PETSc-related compilation errors, let me know.
>
> That last change broke my build: apparently you can't include
> <petscversion.h> without including <petsc.h> first?

Not with 2.3.0 or 2.3.1 you can't, apparently.  I saw a nice
dependency-free petscversion.h file in 2.3.3 and just assumed it had
always been that way.

> Compiling C++ (in development mode) src/numerics/linear_solver.C...
> /usr/local/petsc/petsc-2.3.1/include/petscversion.h:4: error:
> 'PETSC_EXTERN_CXX_BEGIN' does not name a type
> /usr/local/petsc/petsc-2.3.1/include/petscmath.h:274: error:
> 'PetscErrorCode' does not name a type
>
> (and a bunch more similar errors)
>
> Do we have a chicken-and-egg problem here?  What necessitated the
> change to petsc_macro.h?

The fact that the previous version didn't correctly detect newer PETSc
versions: we can't test PETSC_VERSION_LESS_THAN if we haven't yet
included the PETSc header where PETSC_VERSION_* is defined!

I think I've got a (kludgy) fix for it: to include petscversion.h in
petsc_macro.h:

#ifndef PETSC_EXTERN_CXX_BEGIN
#  define PETSC_EXTERN_CXX_BEGIN
#  define PETSC_EXTERN_CXX_END
#  define LIBMESH_PETSC_EXTERN_C_WORKAROUND
#endif
#include <petscversion.h>
#ifdef LIBMESH_PETSC_EXTERN_C_WORKAROUND
#  undef PETSC_EXTERN_CXX_BEGIN
#  undef PETSC_EXTERN_CXX_END
#endif

Can you test that out locally before we commit it?  More importantly,
got any better ideas?
---
Roy

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to