[petsc-users] Compilation error in petsc 3.1-p8 with ParMetis

Barry Smith bsmith at mcs.anl.gov
Tue Jul 26 22:54:00 CDT 2011


  Please do a fresh version of the --download-parmetis run and send the configure.log to petsc-maint at mcs.anl.gov This mailing list is not for large attachments or configure failures. 

  To make sure everything is clean please remove /home/mohammad/soft/petsc-3.1-p8-debug  and get a new copy of the PETSc tarball first. Note also that there is no need to attach -debug to the name of the directory since this same directory can contain two installs of PETSc by using different PETSC_ARCH names and using different ./configure options for each one.



   Barry

On Jul 26, 2011, at 10:43 PM, Mohammad Mirzadeh wrote:

> Hi all,
> 
> I am having trouble configuring PETSc 3.1-p8 with ParMetis 3.2 and below (I have tried all of their versions). What I can understand from the configure.log (attached below) is that for some reason PETSc cannot find the libs . I have tried the flag --download-parmetis=/path/to/tar.gz and also tried compiling ParMetis myself and using --with-parmetis-dir=/path/to/build_dir and none seem to work. In the latter case, ParMetis compiles just fine but it does not put the libs and header files under /build_dir/include or /buid_dir/lib. 
> 
> Does using --with-parmetis-include and --with-parmetis-lib work with multiple directory locations? I tried putting all the hear files in one directory but there are multiple header files with the same name and I do not know which one I should use. Any help is greatly appreciated.
> 
> Thanks,
> Mohammad
> 
> 
> ================================================================================
> TEST configureLibrary from PETSc.packages.ParMetis(/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py:370)
> TESTING: configureLibrary from PETSc.packages.ParMetis(config/BuildSystem/config/package.py:370)
>   Find an installation and check if it can work with PETSc
> ==================================================================================
>       Checking for a functional ParMetis
>               Found a copy of PARMETIS in ParMetis-3.2.0
>                 Pushing language C
>                 Popping language C
> Have to rebuild ParMetis, make.inc != /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/conf/ParMetis
>                   ===============================================================================
>                       Compiling & installing Parmetis; this may take several minutes
>                   ===============================================================================
>                 
> sh: cd /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0; make clean; make lib; make minstall; make clean
> Executing: cd /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0; make clean; make lib; make minstall; make clean
> sh: (cd METISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> 	rm -f ../Graphs/ptest3.2.0 
> rm -f ../Graphs/mtest3.2.0 
> rm -f ../Graphs/parmetis3.2.0 
> rm -f ../Graphs/pometis3.2.0 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> (cd METISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> 	rm -f ../Graphs/ptest3.2.0 
> rm -f ../Graphs/mtest3.2.0 
> rm -f ../Graphs/parmetis3.2.0 
> rm -f ../Graphs/pometis3.2.0 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> 
> ********Output of running make on ParMetis follows *******
> (cd METISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> 	rm -f ../Graphs/ptest3.2.0 
> rm -f ../Graphs/mtest3.2.0 
> rm -f ../Graphs/parmetis3.2.0 
> rm -f ../Graphs/pometis3.2.0 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> (cd METISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> 	rm -f ../Graphs/ptest3.2.0 
> rm -f ../Graphs/mtest3.2.0 
> rm -f ../Graphs/parmetis3.2.0 
> rm -f ../Graphs/pometis3.2.0 
> make[1]: Leaving directory `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> make: *** No rule to make target `lib'.  Stop.
> make: *** No rule to make target `minstall'.  Stop.
> ********End of Output of running make on ParMetis *******
> sh: cp -f /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/make.inc /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/conf/ParMetis
> Executing: cp -f /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/make.inc /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/conf/ParMetis
> sh: 
>       Checking for library in Download PARMETIS: ['/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib/libparmetis.a', 'libmetis.a']
> ================================================================================
> TEST check from config.libraries(/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/libraries.py:133)
> TESTING: check from config.libraries(config/BuildSystem/config/libraries.py:133)
>   Checks that the library "libName" contains "funcs", and if it does defines HAVE_LIB"libName"
>        - libDir may be a list of directories
>        - libName may be a list of library names
>           Checking for functions ['ParMETIS_V3_PartKway'] in library ['/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib/libparmetis.a', 'libmetis.a'] ['libnsl.a', 'librt.a']
>             Pushing language C
> sh: /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc -c -o conftest.o  -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.c 
> Executing: /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc -c -o conftest.o  -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.c 
> sh: 
>                     Pushing language C
>                     Popping language C
> sh: /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc  -o conftest    -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.o  -Wl,-rpath,/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -lparmetis -lmetis -lnsl -lrt -lmpichcxx -lstdc++ -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s -ldl 
> Executing: /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc  -o conftest    -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.o  -Wl,-rpath,/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -lparmetis -lmetis -lnsl -lrt -lmpichcxx -lstdc++ -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s -ldl 
> sh: 
> Possible ERROR while running linker: /usr/bin/ld: cannot find -lparmetis
> collect2: ld returned 1 exit status
>  output: ret = 256
> error message = {/usr/bin/ld: cannot find -lparmetis
> collect2: ld returned 1 exit status
> }
>                         Pushing language C
>                         Popping language C
>  in /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc  -o conftest    -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.o  -Wl,-rpath,/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -lparmetis -lmetis -lnsl -lrt -lmpichcxx -lstdc++ -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s -ldl 
> Source:
> #include "confdefs.h"
> #include "conffix.h"
> /* Override any gcc2 internal prototype to avoid an error. */
> char ParMETIS_V3_PartKway();
> 
> int main() {
> ParMETIS_V3_PartKway()
> ;
>   return 0;
> }
>             Popping language C
> *******************************************************************************
>          UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):
> -------------------------------------------------------------------------------
> Downloaded parmetis could not be used. Please check install in /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug
> *******************************************************************************
>   File "./config/configure.py", line 257, in petsc_configure
>     framework.configure(out = sys.stdout)
>   File "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/framework.py", line 944, in configure
>     child.configure()
>   File "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py", line 456, in configure
>     self.executeTest(self.configureLibrary)
>   File "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/base.py", line 97, in executeTest
>     ret = apply(test, args,kargs)
>   File "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py", line 395, in configureLibrary
>     for location, directory, lib, incl in self.generateGuesses():
>   File "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py", line 210, in generateGuesses
>     raise RuntimeError('Downloaded '+self.package+' could not be used. Please check install in '+d+'\n')



More information about the petsc-users mailing list