Open LadaF opened 6 months ago
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib/hpc/gnu7/mpi/openmpi/2.1.6/lib64/[libmpi.so](http://libmpi.so/): undefined reference to `mca_common_sm_module_attach'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib/hpc/gnu7/mpi/openmpi/2.1.6/lib64/[libmpi.so](http://libmpi.so/): undefined reference to `mca_common_sm_module_create_and_attach'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib/hpc/gnu7/mpi/openmpi/2.1.6/lib64/[libmpi.so](http://libmpi.so/): undefined reference to `mca_common_sm_fini'
Are you sure your OpenMPI installation is working properly? Also, you may want to update it, this version is about 6-year old.
Yes, I am. I have multiple versions of OpenMPI in different modules, but I have various libraries compiled for OpenMPI 2 and I would have to recompile everything when switching to a different version.
I also have different versions of GCC (7,8,9,10,11,12,13), but I didn't succeed in persuading the FreeFEM's configure to actually use them. The MPI modules are, however, compiled for GCC 7 only.
Well, it may be working for you, but it looks like ParMmg can't use it. You may want to remove --download-parmmg
in 3rdparty/ff-petsc/Makefile
, but I'm guessing you will face similar failures down the road.
OK, there were some issues with OpenMPI 2 and I actually realized my own software was actually compiled with OpenMPI 3, but after switching the modules the results are virtually the same. But the biggest issue here is with MUMPS, not with PARMMG. Or do I interpret the last output incorrectly? Here it is update, but it stayed the same, really:
gcc -O -I. -g -DNDEBUG -O3 -mmmx -mavx -msse4.2 -msse2 -msse -fPIC -I/usr/lib/hpc/gnu7/mpi/openmpi/3.1.6/include -DAdd_ -I. -c mpic.c -o mpic.o
mpic.c:16:1: error: unknown type name ‘LIBSEQ_INT’
LIBSEQ_INT MPI_Init(LIBSEQ_INT *pargc, char ***pargv)
^~~~~~~~~~
mpic.c:16:21: error: unknown type name ‘LIBSEQ_INT’
LIBSEQ_INT MPI_Init(LIBSEQ_INT *pargc, char ***pargv)
^~~~~~~~~~
mpic.c:21:1: error: unknown type name ‘LIBSEQ_INT’
LIBSEQ_INT MPI_Comm_rank( MPI_Comm comm, LIBSEQ_INT *rank)
^~~~~~~~~~
mpic.c:21:42: error: unknown type name ‘LIBSEQ_INT’
LIBSEQ_INT MPI_Comm_rank( MPI_Comm comm, LIBSEQ_INT *rank)
^~~~~~~~~~
mpic.c:26:1: error: unknown type name ‘LIBSEQ_INT’
LIBSEQ_INT MPI_Finalize(void)
^~~~~~~~~~
If you got PETSc to compile and install fine, I would just re-configure with the flag --disable-mumps_seq
.
Not sure if I got PETSc to compile. It is quite unfortunate I have to do it in the first place as Linux distributions do have PETSc and MUMPS available as pre-compiled packages including the -devel with development header files.
You can feed your own PETSc with --with-petsc
and --with-petsc_complex
, but the likelihood that it's missing one of the many packages FreeFEM (optionally) uses is high. Thus, you will end up having FreeFEM trying to compile the missing packages, and then you may run into errors as you are seeing with MUMPS_seq
.
Alternatively, you can just use FreeFEM with no external packages, and then you won't have errors.
I cannot compile FreeFEM on OpenSUSE 15.4.
In configure.log we have
I also tried without PETSC, the same, but new, git clone, autoreconf, configure and 3rdparty/getall -a and then directly