[petsc-dev] petsc/master: unable to link in C++ with last night PETSC_WITH_EXTERNAL_LIB variable changes

Smith, Barry F. bsmith at mcs.anl.gov
Sat Feb 10 11:51:09 CST 2018


     Please send configure.log

> On Feb 10, 2018, at 11:44 AM, Jed Brown <jed at jedbrown.org> wrote:
> "Smith, Barry F." <bsmith at mcs.anl.gov> writes:
>>  Eric,
>>   We need the entire link line.
>>   What linker are you using C, or C++?  This is important.
>>   Do you have dependencies on MPI C++ symbols? In other words, are you using C++ MPI bindings?
>>    I cannot explain why all the libraries you listed would disappear from PETSC_WITH_EXTERNAL_LIB but we did recently make a change to manual pass under some circumstances less system (including MPI libraries) explicitly since they are already usually passed by the linker. This may be causing your difficulties.
> According to Eric's output, -lstdc++ appears twice now, -lmpi still
> appears, -ldl still appears (twice), -lm still appears (4 times),
> -lpthread still appears (twice), and -lgcc_s still appears.  So the only
> library actually eliminated is-lmpi_cxx which is provided by the mpicxx
> (despite having been removed from the standard in 2012).


       I did my best to eliminate unneeded library links, it is not trivial as you seem to believe it is to get just exactly the libraries listed that are needed. 

       I know how to get the -lmpi_cxx  listed again (I need to include a call to a MPI C++ function in the checkCXXlibraries) but this will result in a bunch more libraries being redundantly brought in.  Since Eric is the only person in the entire world who ever used the C++ bindings it would be nice if I didn't need to add the C++ function test and add additional redundant libraries you will complain about for many runs.

More information about the petsc-dev mailing list