[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