[petsc-dev] problem in PETSc.pc file

Jed Brown jed at jedbrown.org
Sat Aug 26 09:30:04 CDT 2017


Stefano, can you send configure.log?  This is the relevant code for
defining PETSC_EXTERNAL_LIB_BASIC.

    self.packagelibs = libs
    self.PETSC_EXTERNAL_LIB_BASIC = self.libraries.toStringNoDupes(libs+self.libraries.math+self.compilers.flibs+self.compilers.cxxlibs+self.compilers.LIBS.split())
    if self.framework.argDB['prefix'] and self.setCompilers.CSharedLinkerFlag not in ['-L']:
      lib_basic = self.PETSC_EXTERNAL_LIB_BASIC.replace(self.setCompilers.CSharedLinkerFlag+os.path.join(self.petscdir.dir,self.arch.arch,'lib'),self.setCompilers.CSharedLinkerFlag+os.path.join(self.installdir.dir,'lib'))
    else:
      lib_basic = self.PETSC_EXTERNAL_LIB_BASIC
    self.addMakeMacro('PETSC_EXTERNAL_LIB_BASIC',lib_basic)

This is run subsequently to write PETSc.pc Libs.private:

    lflags = self.packagelibs+self.libraries.math+self.compilers.flibs+self.compilers.cxxlibs+self.compilers.LIBS.split()
    fd.write('Libs.private: '+self.libraries.toStringNoDupes([f for f in lflags if not f.startswith(self.setCompilers.CSharedLinkerFlag)], with_rpath=False)+'\n')

So the difference is that the latter removes rpath-related flags, but
there shouldn't be other differences.

Stefano Zampini <stefano.zampini at gmail.com> writes:

> I have recently noticed a regression with using Libs.private of PETSc.pc
> (used by MFEM configure). For some reason, the mumps and mkl linking lines
> are scrambled up. At the bottom of the message you can see the undefined
> references I'm getting, coming from having libdmumps before libscalapack,
> and libmkl_intel_lp64 before libdmumps and libcholmod. This configuration
> (static build with gnu compilers and MKL on a Cray XC40.... yes, I know,
> life could be easier....) was working before, but I cannot say when got
> broken.
>
> This is the line in PETSc.pc that corresponds to Libs.private and that
> makes the executable linking to fail.
>
> -L/home/zampins/src/petsc/haswell_debug_gnu_mkl/lib  -lcmumps  -lscalapack
> -lumfpack  -lHYPRE -L/opt/intel/composer_xe_2015.1.133/mkl/lib/intel64
> -lmkl_intel_lp64  -lmkl_core  -lmkl_sequential  -lparmetis  -lmetis
> -lptesmumps
> -L/opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/
> -L/opt/intel/composer_xe_2015.1.133/compiler/lib/intel64/ -ldmumps -lsmumps
> -lzmumps -lmumps_common -lpord -lklu -lcholmod -lbtf -lccolamd -lcolamd
> -lcamd -lamd -lsuitesparseconfig -lptscotch -lptscotcherr -lscotch
> -lscotcherr -lrt -lm -lpthread -lz -ldl -lmkl_core -lmkl_sequential
> -lmkl_core -lmkl_sequential -lmkl_core -lirc -liomp5 -lsvml -limf -lifcore
> -lirng -lifport -lirc -ldl
>
> Instead, this is PETSC_EXTERNAL_LIB_BASIC from petscvariables, that leads
> (with the current master) to a successful linking
>
> -Wl,-rpath,/home/zampins/src/petsc/haswell_debug_gnu_mkl/lib
> -L/home/zampins/src/petsc/haswell_debug_gnu_mkl/lib
> -Wl,-rpath,/opt/intel/composer_xe_2015.1.133/mkl/lib/intel64
> -L/opt/intel/composer_xe_2015.1.133/mkl/lib/intel64
> -L/opt/intel/composer_xe_2015.1.133/mkl/lib/intel64/
> -L/opt/intel/composer_xe_2015.1.133/compiler/lib/intel64/ -lcmumps -ldmumps
> -lsmumps -lzmumps -lmumps_common -lpord -lscalapack -lumfpack -lklu
> -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig -lHYPRE
> -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lmkl_core -lmkl_sequential
> -lmkl_core -lparmetis -lmetis -lptesmumps -lptscotch -lptscotcherr -lscotch
> -lscotcherr -lrt -lm -lpthread -lz -ldl -lmkl_core -lmkl_sequential
> -lmkl_core -lmkl_sequential -lmkl_core -lirc -liomp5 -lsvml -limf -lifcore
> -lirng -lifport -lirc -ldl
>
>
> ---------------------------------------------------------------------------------------------------
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dana_driver.o):
> In function `dmumps_ana_driver_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dana_driver.F:1944:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dana_driver.F:1948:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dfac_driver.o):
> In function `dmumps_fac_driver_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_driver.F:1605:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_driver.F:1609:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dend_driver.o):
> In function `dmumps_end_driver_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dend_driver.F:44:
> undefined reference to `blacs_gridexit_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dana_aux_ELT.o):
> In function `dmumps_ana_f_elt_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dana_aux_ELT.F:257:
> undefined reference to `metis_setdefaultoptions_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dana_aux.o):
> In function `dmumps_ana_f_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dana_aux.F:564:
> undefined reference to `metis_setdefaultoptions_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(darrowheads.o):
> In function `dmumps_facto_send_arrowheads_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/darrowheads.F:254:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/darrowheads.F:257:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(darrowheads.o):
> In function `dmumps_facto_recv_arrowhd2_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/darrowheads.F:688:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/darrowheads.F:691:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dfac_distrib_distentry.o):
> In function `dmumps_redistribution_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_distrib_distentry.F:264:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dfac_distrib_distentry.o):/home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_distrib_distentry.F:267:
> more undefined references to `numroc_' follow
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dsol_root_parallel.o):
> In function `dmumps_solve_2d_bcyclic_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dsol_root_parallel.F:76:
> undefined reference to `descinit_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dsol_root_parallel.F:84:
> undefined reference to `pdgetrs_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dsol_root_parallel.F:87:
> undefined reference to `pdgetrs_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dsol_root_parallel.F:91:
> undefined reference to `pdpotrs_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dsol_root_parallel.o):
> In function `dmumps_root_solve_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dsol_root_parallel.F:33:
> undefined reference to `blacs_gridinfo_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dsol_root_parallel.F:34:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dtype3_root.o):
> In function `dmumps_root_alloc_static_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dtype3_root.F:1085:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dtype3_root.F:1088:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dtype3_root.F:1091:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dtype3_root.o):
> In function `dmumps_init_root_ana_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dtype3_root.F:783:
> undefined reference to `blacs_gridexit_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dtype3_root.F:788:
> undefined reference to `blacs_gridinit_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dtype3_root.F:792:
> undefined reference to `blacs_gridinfo_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dfac_par_m.o):
> In function `__dmumps_fac_par_m_MOD_dmumps_fac_par':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_par_m.F:744:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dfac_root_parallel.o):
> In function `dmumps_facto_root_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_root_parallel.F:77:
> undefined reference to `descinit_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_root_parallel.F:100:
> undefined reference to `pdgetrf_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_root_parallel.F:107:
> undefined reference to `pdpotrf_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_root_parallel.F:155:
> undefined reference to `numroc_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dmumps_iXamax.o):
> In function `dmumps_ixamax_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dmumps_iXamax.F:17:
> undefined reference to `idamax_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dfac_lr.o):
> In function `__dmumps_fac_lr_MOD_dmumps_compress_panel':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dfac_lr.F:873:
> undefined reference to `dormqr_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libdmumps.a(dlr_core_subroutine.o):
> In function `dmumps_truncated_rrqr_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dlr_core_subroutine.F:69:
> undefined reference to `ilaenv_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dlr_core_subroutine.F:78:
> undefined reference to `dnrm2_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dlr_core_subroutine.F:83:
> undefined reference to `dlamch_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dlr_core_subroutine.F:92:
> undefined reference to `idamax_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dlr_core_subroutine.F:121:
> undefined reference to `dlarfg_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dlr_core_subroutine.F:123:
> undefined reference to `dlarfg_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/dlr_core_subroutine.F:189:
> undefined reference to `dnrm2_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libmumps_common.a(ana_orderings_wrappers_m.o):
> In function `__mumps_ana_ord_wrappers_MOD_mumps_metis_nodend_mixedto64':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/ana_orderings_wrappers_m.F:225:
> undefined reference to `metis_nodend_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/ana_orderings_wrappers_m.F:246:
> undefined reference to `metis_nodend_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libmumps_common.a(ana_orderings_wrappers_m.o):
> In function `__mumps_ana_ord_wrappers_MOD_mumps_metis_nodend_mixedto32':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/ana_orderings_wrappers_m.F:115:
> undefined reference to `metis_nodend_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libmumps_common.a(mumps_metis.o):
> In function `mumps_parmetis_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/mumps_metis.c:43:
> undefined reference to `ParMETIS_V3_NodeND'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libmumps_common.a(mumps_scotch.o):
> In function `mumps_scotch_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/mumps_scotch.c:31:
> undefined reference to `esmumps'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libmumps_common.a(mumps_scotch64.o):
> In function `mumps_scotch_64_':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/git.mumps/src/mumps_scotch64.c:30:
> undefined reference to `esmumps'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libcholmod.a(cholmod_super_numeric.o):
> In function `c_cholmod_super_numeric':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:692:
> undefined reference to `zherk_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:722:
> undefined reference to `zgemm_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:872:
> undefined reference to `zpotrf_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:1007:
> undefined reference to `ztrsm_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libcholmod.a(cholmod_super_numeric.o):
> In function `z_cholmod_super_numeric':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:692:
> undefined reference to `zherk_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:722:
> undefined reference to `zgemm_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:872:
> undefined reference to `zpotrf_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_numeric.c:1007:
> undefined reference to `ztrsm_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libcholmod.a(cholmod_super_solve.o):
> In function `c_cholmod_super_lsolve':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:110:
> undefined reference to `ztrsv_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:116:
> undefined reference to `zgemv_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:189:
> undefined reference to `ztrsm_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:198:
> undefined reference to `zgemm_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/lib/libcholmod.a(cholmod_super_solve.o):
> In function `c_cholmod_super_ltsolve':
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:318:
> undefined reference to `zgemv_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:328:
> undefined reference to `ztrsv_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:393:
> undefined reference to `zgemm_'
>
> /home/zampins/src/petsc/haswell_debug_gnu_mkl/externalpackages/SuiteSparse/CHOLMOD/Lib/../Supernodal/t_cholmod_super_solve.c:404:
> undefined reference to `ztrsm_'
>
> -- 
> Stefano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20170826/259408c6/attachment.sig>


More information about the petsc-dev mailing list