[petsc-users] duplicated libs

Runjian Wu wurunjian at gmail.com
Tue May 14 03:30:05 CDT 2024


Yes, it is indeed cleaner. Thanks for your explanation!

Now I have a question. If I stick to the old PETSc version (v3.16.2), I can
manually remove the duplicated libraries in PETSC_LIB and keep the order of
libraries at the same time, there should be no compiling errors, correct?

# From PFLOTRAN makefile
pflotran : $(pflotran_obj)
${FLINKER} -o pflotran $(pflotran_obj) ${PETSC_LIB} ${LIBS}

PETSC_LIB = -Wl,-rpath,/home/wurunjian/petsc/arch-linux2-c-opt/lib
-L/home/wurunjian/petsc/arch-linux2-c-opt/lib
-Wl,-rpath,/home/wurunjian/petsc/arch-linux2-c-opt/lib
-L/home/wurunjian/petsc/arch-linux2-c-opt/lib
-Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/11
-L/usr/lib/gcc/x86_64-linux-gnu/11 -lpetsc -lflapack -lfblas
-lhdf5hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5 -lparmetis -lmetis -lm
-lstdc++ -ldl -lmpichfort -lmpich -lgfortran -lm -lgfortran -lm -lgcc_s
-lquadmath -lstdc++ -ldl



On Tue, May 14, 2024 at 1:23 PM Satish Balay <balay at mcs.anl.gov> wrote:

> And to have cleaner list - specify the (appropriate) compiler libraries
> via LIBS option
>
> balay at pj01:~/petsc$ mpif90 -show
> gfortran -I/software/mpich-4.1.1/include -I/software/mpich-4.1.1/include
> -L/software/mpich-4.1.1/lib -lmpifort -Wl,-rpath
> -Wl,/software/mpich-4.1.1/lib -Wl,--enable-new-dtags -lmpi
>
> balay at pj01:~/petsc$ ./configure --download-fblaslapack --download-hdf5
> --with-hdf5-fortran-bindings --download-metis --download-parmetis
> COPTFLAGS=-O3 CXXOPTFLAGS=-O3 FOPTFLAGS=-O3 --with-debugging=0
> LIBS="-lmpifort -lmpi -lgfortran -lstdc++"
>
> balay at pj01:~/petsc$ grep ^PETSC_EXTERNAL_LIB_BASIC
> arch-linux-c-opt/lib/petsc/conf/petscvariables
> PETSC_EXTERNAL_LIB_BASIC =
> -Wl,-rpath,/home/balay/petsc/arch-linux-c-opt/lib
> -L/home/balay/petsc/arch-linux-c-opt/lib -lflapack -lfblas -lparmetis
> -lmetis -lhdf5hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5 -lm -lX11
> -lquadmath -lmpifort -lmpi -lgfortran -lstdc++
>
>
> Satish
>
>
> On Tue, 14 May 2024, Satish Balay via petsc-users wrote:
>
> > You can try using latest petsc version [3.21] - the list should be a bit
> more cleaner with it.
> >
> > balay at pj01:~/petsc$ ./configure --download-mpich --download-fblaslapack
> --download-hdf5 --with-hdf5-fortran-bindings --download-metis
> --download-parmetis COPTFLAGS=-O3 CXXOPTFLAGS=-O3 FOPTFLAGS=-O3
> --with-debugging=0
> >
> > balay at pj01:~/petsc$ grep ^PETSC_EXTERNAL_LIB_BASIC
> arch-linux-c-opt/lib/petsc/conf/petscvariables
> > PETSC_EXTERNAL_LIB_BASIC =
> -Wl,-rpath,/home/balay/petsc/arch-linux-c-opt/lib
> -L/home/balay/petsc/arch-linux-c-opt/lib
> -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/13
> -L/usr/lib/gcc/x86_64-redhat-linux/13 -lflapack -lfblas -lparmetis -lmetis
> -lhdf5hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5 -lm -lX11 -lmpifort -lmpi
> -lgfortran -lm -lgfortran -lm -lgcc_s -lquadmath -lstdc++
> >
> > Satish
> >
> > On Tue, 14 May 2024, Runjian Wu wrote:
> >
> > > First clarification, NO issues happened. I am just curious about the
> > > duplicated libraries while I compile PFLOTRAN with PETSc.
> > >
> > > PETSc version: 3.16.2
> > >
> > > Configure Options: --configModules=PETSc.Configure
> > > --optionsModule=config.compilerOptions --with-make-np=4 --with-cc=mpicc
> > > --with-cxx=mpicxx --with-fc=mpif90 --download-fblaslapack=yes
> > > --download-hdf5=/home/wurunjian/petsc_pkg/hdf5-1.12.1.tar.bz2
> > > --download-hdf5-fortran-bindings=yes --download-metis=yes
> > > --download-parmetis=yes --CFLAGS=-O3 --CXXFLAGS=-O3 --FFLAGS=-O3
> > > --with-debugging=0
> > >
> > > PETSC_EXTERNAL_LIB_BASIC =
> > > -Wl,-rpath,/home/wurunjian/petsc/arch-linux2-c-opt/lib
> > > -L/home/wurunjian/petsc/arch-linux2-c-opt/lib
> > > -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/11
> > > -L/usr/lib/gcc/x86_64-linux-gnu/11 -lflapack -lfblas -lhdf5hl_fortran
> > > -lhdf5_fortran -lhdf5_hl -lhdf5 -lparmetis -lmetis -lm -lstdc++ -ldl
> > > -lmpichfort -lmpich -lgfortran -lm -lgfortran -lm -lgcc_s -lquadmath
> > > -lstdc++ -ldl
> > >
> > > On Mon, May 13, 2024 at 9:34 PM Satish Balay <balay at mcs.anl.gov>
> wrote:
> > >
> > > > what version of PETSc? What configure command? What do you have for
> > > > PETSC_EXTERNAL_LIB_BASIC?
> > > >
> > > > You can send configure.log for your build to petsc-maint
> > > >
> > > > Generally duplicates should not cause grief. [as one needs them to
> > > > overcome circular dependencies].
> > > >
> > > > What issues are you seeing? [send relevant logs]
> > > >
> > > > If the duplicates are coming form "compiler library" detection part
> of
> > > > configure - you can skip this part by listing the correct "compiler
> > > > libraries"
> > > >
> > > > for ex: with gcc/gfortran:
> > > >
> > > > LIBS="-lgfortran -lstdc++"
> > > >
> > > > However -lgfortran could be required for gcc - but a duplicate for
> > > > gfortran.
> > > >
> > > > Satish
> > > >
> > > > On Mon, 13 May 2024, Runjian Wu wrote:
> > > >
> > > > > Hi all,
> > > > >
> > > > > After I compiled PETSc, I found some duplicated libs in the
> variable
> > > > > PETSC_EXTERNAL_LIB_BASIC, e.g., -lm, -lgfortran -lstdc++.  I am
> curious
> > > > how
> > > > > it happened and how to remove the duplicates?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Runjian Wu
> > > > >
> > > >
> > > >
> > >
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240514/d282b734/attachment-0001.html>


More information about the petsc-users mailing list