[petsc-dev] petsc/master: unable to link in C++ with last night PETSC_WITH_EXTERNAL_LIB variable changes
Éric Chamberland
Eric.Chamberland at giref.ulaval.ca
Sat Feb 10 11:29:27 CST 2018
Hi Matthew,
Yes, I heard that the MPI C++ API has been deprecated.
Yes, the mpi_cxx is now missing. Our link line is formed mainly with
PETSC_WITH_EXTERNAL_LIB variable that is now:
PETSC_WITH_EXTERNAL_LIB = -L/opt/petsc-master_debug/lib
-Wl,-rpath,/opt/petsc-master_debug/lib -L/opt/petsc-master_debug/lib
-L/opt/intel/composer_xe_2015.2.164/mkl/lib/intel64
-Wl,-rpath,/opt/intel/composer_xe_2015.2.164/mkl/lib/intel64
-Wl,-rpath,/opt/openmpi-1.10.2/lib -L/opt/openmpi-1.10.2/lib
-Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.8.5
-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5
-Wl,-rpath,/opt/intel/composer_xe_2015.2.164/compiler/lib/intel64
-L/opt/intel/composer_xe_2015.2.164/compiler/lib/intel64
-Wl,-rpath,/opt/intel/composer_xe_2015.2.164/ipp/lib/intel64
-L/opt/intel/composer_xe_2015.2.164/ipp/lib/intel64
-Wl,-rpath,/opt/intel/composer_xe_2015.2.164/tbb/lib/intel64/gcc4.4
-L/opt/intel/composer_xe_2015.2.164/tbb/lib/intel64/gcc4.4 -lpetsc
-lsuperlu -lsuperlu_dist -lHYPRE -lcmumps -ldmumps -lsmumps -lzmumps
-lmumps_common -lpord -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lml
-lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd
-lsuitesparseconfig -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread
-lmkl_blacs_intelmpi_lp64 -liomp5 -ldl -lpthread -lparmetis -lmetis
-lptesmumps -lptscotch -lptscotcherr -lesmumps -lscotch -lscotcherr -lm
-lX11 -lstdc++ -ldl -lmpi_usempi -lmpi_mpifh -lmpi -lgfortran -lm
-lgfortran -lm -lgcc_s -lquadmath -lpthread -lrt -lm -lpthread -lz
-lstdc++ -ldl
We add some stuff to this (our own compiled libs), but nothing related
to MPI or PETSc since we used to rely on PETSC_WITH_EXTERNAL_LIB for all
our diffrement environments (think about different petsc version, MPI
libs and compilers: clang, icc, g++) and it used to work until yesterday
changes...
As you can see in the diff, this "block" of libraries have been removed
from PETSC_WITH_EXTERNAL_LIB: (the -- is part of the diff output):
--ldl
--lmpi_cxx
--lmpi
--lstdc++
--lm
--lgcc_s
--lpthread
and into this block there was the "-lmpi_cxx" that we need...
I could send you our whole line of link, but the error is into this
small change introduced yesterday into master...
Thanks a lot!
Eric
Le 18-02-10 à 10:34, Matthew Knepley a écrit :
> On Sat, Feb 10, 2018 at 9:42 AM, Éric Chamberland
> <Eric.Chamberland at giref.ulaval.ca
> <mailto: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.log
> <http://www.giref.ulaval.ca/%7Ecmpgiref/petsc-master-debug/2018.02.10.02h00m01s_configure.log>
> http://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.10.02h00m01s_make.log
> <http://www.giref.ulaval.ca/%7Ecmpgiref/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.log
> <http://www.giref.ulaval.ca/%7Ecmpgiref/petsc-master-debug/2018.02.09.02h00m02s_configure.log>
> http://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.09.02h00m02s_make.log
> <http://www.giref.ulaval.ca/%7Ecmpgiref/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/%7Emk51/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20180210/153dbc7e/attachment-0001.html>
More information about the petsc-dev
mailing list