[petsc-dev] meaning of PETSC_USE_EXTERN_CXX?
Jed Brown
jedbrown at mcs.anl.gov
Tue Mar 5 18:24:43 CST 2013
On Tue, Mar 5, 2013 at 6:02 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> We have --with-clanguage=c or c++ (this is already weird, most
> packages don't strife to be built either with C or C++)
> --with-c-support=0,1 (compile with C++ but
> with C bindings so C application can use it)
>
> User Code PETSc compiled with
> ------------------------ C C++
> C x x
> C++ x x
>
> Hope back into Satish's way back machine and ask the question
> "why do we have this c-support business"? Seems like it complicates
> life a lot?
>
I would just unconditionally use extern "C" when compiling PETSc with a C++
compiler. We don't use overloading (PetscPolymorphic* was removed last
spring) so I don't think there is any functional reason to mangle symbols.
AFAICT, the only functional reason for building PETSc with a C++ compiler
is to use C++ complex (and perhaps because the C++ compiler catches
different errors than the C compiler).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130305/4aabc4f4/attachment.html>
More information about the petsc-dev
mailing list