[petsc-dev] need c++ expert help

Jed Brown jed at jedbrown.org
Sun Dec 31 14:14:11 CST 2017


Matthew Knepley <knepley at gmail.com> writes:

> On Sun, Dec 31, 2017 at 2:35 PM, Jed Brown <jed at jedbrown.org> wrote:
>
>> Matthew Knepley <knepley at gmail.com> writes:
>>
>> > On Sun, Dec 31, 2017 at 1:55 PM, Jed Brown <jed at jedbrown.org> wrote:
>> >
>> >> These look like linker errors and that build uses
>> >> --with-cxxlib-autodetect=0.  We either need a rule to *link* C++ using
>> >> CXX (i.e., mpicxx) or add LIBS=-lstdc++.
>> >>
>> >
>> > I thought we were doing this (linking C++ mains with CXX).
>>
>> After compiling to the object file (ex3.o) we don't know what language
>> main was written in, and this doesn't solve the actual problem that C++
>> linking is required if any object (not just main) depends on C++.
>>
>
> My thinking here was the following:
>
>   1) No C++ is allowed in PETSc, unless --with-clanguage=cxx, in which case
> the linker is C++
>   2) If C++ is in an external library, then that configure requires the C++
> library
>   3) The executable itself could be C++, in which case I proposed using the
> C++ linker explicitly
>
> About not knowing which objects come with C++ main: I thought we did. Don't
> they go into a separate set?

Right, we do have that information for tests.  Note that a single test
executable can depend on multiple source files, and the one containing
main might not be C++ while another is.  I don't know if there are any
such instances in PETSc.

I can change the build rules for tests with C++ sources later today.


More information about the petsc-dev mailing list