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.

    Eagerly awaiting your reply.

     Barry


> On Feb 10, 2018, at 11:29 AM, Éric Chamberland 
> <eric.chamberl...@giref.ulaval.ca> wrote:
> 
> 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.chamberl...@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/~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.log
>> http://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/
> 

Reply via email to