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

Matthew Knepley knepley at gmail.com
Sat Feb 10 09:34:10 CST 2018


On Sat, Feb 10, 2018 at 9:42 AM, Éric Chamberland <
Eric.Chamberland at giref.ulaval.ca> wrote:

> Hi,
>
> we used to link our c++ code with PETSc using PETSC_WITH_EXTERNAL_LIB
> variable defined in $PETSC_DIR/lib/petsc/conf/petscvariables and
> everything was fine until this night.
>
> It seems some libs have vanished from this variable, see the diff here:
>
>  -lptscotcherr
>  -lesmumps
>  -lscotch
>  -lscotcherr
>  -lm
>  -lX11
> +-lstdc++
>  -ldl
>  -lmpi_usempi
>  -lmpi_mpifh
>  -lmpi
>  -lgfortran
>  -lm
>  -lgfortran
>  -lm
>  -lgcc_s
>  -lquadmath
>  -lpthread
> --ldl
> --lmpi_cxx
> --lmpi
> --lstdc++
> --lm
> --lgcc_s
> --lpthread
>  -lrt
>  -lm
>  -lpthread
>  -lz
> +-lstdc++
>  -ldl
>
>
> causing these errors at link phase for us:
>  /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: In function `MPI::Op::Init(void (*)(void const*, void*, int, MPI::Datatype const&), bool)':
> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/op_inln.h:122: undefined reference to `ompi_mpi_cxx_op_intercept' /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: In function `MPI::Intracomm::Create_graph(int, int const*, int const*, bool) const':
> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm.h:25: undefined reference to `MPI::Comm::Comm()' /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: In function `MPI::Intercomm::Merge(bool) const':
> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm_inln.h:23: undefined reference to `MPI::Comm::Comm()' /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: In function `MPI::Intracomm::Split(int, int) const':
> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm_inln.h:23: undefined reference to `MPI::Comm::Comm()' /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: In function `MPI::Intracomm::Create(MPI::Group const&) const':
> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm_inln.h:23: undefined reference to `MPI::Comm::Comm()' /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: In function `MPI::Intracomm::Clone() const':
>
> Hi Eric,

These symbols are all coming from -lmpi_cxx. I would note that I believe
the MPI Forum has deprecated the C++ interface, so it will
eventually go away. However, lets fix this. In the configure log, I see
that mpicxx -show has that library in it, so it seems that the link
is not being done with the C++ compiler. Can you send the whole link line?

  Thanks,

     Matt


> Is this a normal and definitive change or an unwanted/unobserved bug?
>
> Thanks,
>
> Eric
>
> ps: here are the logs:
>
> this night:
>
> ---------
>
> http://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.10.02h00m01s_configure.loghttp://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.10.02h00m01s_make.log
>
>
> a day before:
> ------------
> http://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.09.02h00m02s_configure.loghttp://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.09.02h00m02s_make.log
>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20180210/26423c6b/attachment.html>


More information about the petsc-dev mailing list