> I'm using essentially an identical configuration. OpenMPI uses an ambitious > set of shared libraries that defy typical PETSc snooping. > > The easy answer is to use the compiler wrappers provided with OpenMPI: > $ ./configure --with-cxx=mpicxx --with-cc=mpicc --with-f77=mpif77 > > ...and all the other options you had.
This works, thanks a lot! Now the package builds and ex2.C works. But now I have hard time with the libgmv.so library, which was added in 0.6.1? It seems libmesh is depending on it. I created preliminary libmesh Debian package here: http://debian.certik.cz/ But when building an example in the standard Debian way (but I think it's the standard linux way): $ g++ -I/usr/include/libmesh -I/usr/include/mpi -I/usr/include/petsc -c -o ex2.o ex2.C $ g++ -o ex2 ex2.o -lmesh -lpetsc -lpetscdm -lpetscksp -lpetscmat -lpetscsnes -lpetscts -lpetscvec /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmv_data' /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmvread_data' /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmvread_close' /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmvread_open_fromfileskip' collect2: ld returned 1 exit status This used to work with 0.6.0 in Debian. So I included the libgmv.so in the Debian package as well, put it to /usr/lib, but it seems it doesn't work: $ g++ -o ex2 ex2.o -lmesh -lgmv -lpetsc -lpetscdm -lpetscksp -lpetscmat -lpetscsnes -lpetscts -lpetscvec /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmv_data' /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmvread_data' /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmvread_close' /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so: undefined reference to `gmvread_open_fromfileskip' collect2: ld returned 1 exit status So I looked at what libraries you are linking in your way of building things: $ make Compiling C++ (in optimized mode) ex2.C... Linking ex2-opt... mpicxx -DNDEBUG -O2 -felide-constructors -fPIC -funroll-loops -fstrict-aliasing -Wdisabled-optimization -DPETSC_USE_DYNAMIC_LIBRARIES ex2.i686-pc-linux-gnu.opt.o -o ex2-opt /home/ondra/debian/test/libmesh-0.6.1/lib/i686-pc-linux-gnu_opt/libmesh.so /home/ondra/debian/test/libmesh-0.6.1/contrib/lib/i686-pc-linux-gnu_opt/libgmv.so -L/usr/lib/petsc/lib/linux-gnu-c-opt -lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetscsnes -lpetsc -L/usr/lib -L/usr/lib -lumfpack -L/usr/lib -L/usr/lib -lamd -L/usr/lib -L/usr/lib -lsuperlu -llapack-3 -lblas-3 -L/usr/lib/gcc/i486-linux-gnu/4.2.3 -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../.. -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77 -lgfortranbegin -lgfortran -lm -lm -lm -lm -L/usr/lib/gcc/i486-linux-gnu/4.2.3 -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../.. -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77 -lgfortranbegin -lgfortran -lm -lm -lm -lm -lX11 -L/usr/lib/gcc/i486-linux-gnu/4.2.3 -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../.. -lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -lgfortranbegin -lgfortran -lm -lgcc_s -lpthread -Wl,-rpath,/home/ondra/debian/test/libmesh-0.6.1/lib/i686-pc-linux-gnu_opt -Wl,-rpath,/home/ondra/debian/test/libmesh-0.6.1/contrib/lib/i686-pc-linux-gnu_opt -Wl,-rpath,/usr/lib/petsc/lib/linux-gnu-c-opt $ So I tried the same: $ g++ -o ex2 ex2.o /usr/lib/libmesh.so -lpetsc -lpetscdm -lpetscksp -lpetscmat -lpetscsnes -lpetscts -lpetscvec /usr/lib/libmesh.so: undefined reference to `gmv_data' /usr/lib/libmesh.so: undefined reference to `gmvread_data' /usr/lib/libmesh.so: undefined reference to `gmvread_close' /usr/lib/libmesh.so: undefined reference to `gmvread_open_fromfileskip' collect2: ld returned 1 exit status No luck - of course, the libgmv is not linked. But: $ g++ -o ex2 ex2.o /usr/lib/libmesh.so /usr/lib/libgmv.so -lpetsc -lpetscdm -lpetscksp -lpetscmat -lpetscsnes -lpetscts -lpetscvec /usr/lib/libmesh.so: undefined reference to `gmv_data' /usr/lib/libmesh.so: undefined reference to `gmvread_data' /usr/lib/libmesh.so: undefined reference to `gmvread_close' /usr/lib/libmesh.so: undefined reference to `gmvread_open_fromfileskip' collect2: ld returned 1 exit status Do you have any idea what's wrong? Ondrej ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Libmesh-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-devel
