PETSc/MUMPS Compilation fail on arch-linux

Dear All,

I am struggling to compile FreeFem on arch-linux. I have compiled FreeFem on ubuntu 18 multiple times following this tutorial; however, it does not seems to work on arch-linux. Any kind of help is appreciated!
configure.log (3.0 MB)

In configure.log, you can see:

[...]
internal compiler error: Segmentation fault
0xd5b74e internal_error(char const*, ...)
	???:0
0x11eee95 ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*))
	???:0
0x11eea29 ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*))
	???:0
0x11eea29 ira_traverse_loop_tree(bool, ira_loop_tree_node*, void (*)(ira_loop_tree_node*), void (*)(ira_loop_tree_node*))
	???:0
0x121a405 ira_create_allocno_live_ranges()
	???:0
0x11e8f50 ira_build()
	???:0
Please submit a full bug report,
[...]

So there is a bug in your compiler. Any chance you could try another one?

Also, you could use --disable-fortran when configuring FreeFEM, then PETSc will use SuperLU_DIST as an alternative to MUMPS for parallel direct solver.

Thanks for the quick reply and the tips.

It turned out that this behavior could be resolved by upgrading/updating gcc and gcc-fortran with pacman. Now I managed to compile PETSc successfully.

However, during the FreeFem compilation, I get the following error:

g++ -DHAVE_CONFIG_H -I. -I…/… -I./…/lglib -I./…/bamglib -I./…/Graphics -I./…/femlib -I/home/aszabo/iff/petsc/arch-FreeFem/include -I./…/Eigen -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -MT …/femlib/BamgFreeFem.o -MD -MP -MF $depbase.Tpo -c -o …/femlib/BamgFreeFem.o …/femlib/BamgFreeFem.cpp &&
mv -f $depbase.Tpo $depbase.Po
during GIMPLE pass: ccp
lgmesh3.cpp: In member function ‘Fem2D::DataFENodeDF Fem2D::GenericMesh<T, B, V>::BuildDFNumbering(int*, int, int*) const [with T = Fem2D::TriangleS; B = Fem2D::BoundaryEdgeS; V = Fem2D::GenericVertexFem2D::R3]’:
lgmesh3.cpp:3274:82: internal compiler error: Segmentation fault
3274 | template E_set_fev3<Complex,v_fesL>::E_set_fev3(const E_Array * a,Expression pp) ;
| ^
0xe4c988 internal_error(char const*, …)
???:0
0x101e641 gsi_remove(gimple_stmt_iterator*, bool)
???:0
0x1106f34 substitute_and_fold_engine::substitute_and_fold(basic_block_def*)
???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See https://bugs.archlinux.org/ for instructions.
make[4]: *** [Makefile:918: lgmesh3.o] Error 1
make[4]: *** Waiting for unfinished jobs…
make[4]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/src/fflib’
make[3]: *** [Makefile:657: all] Error 2
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/src/fflib’
make[2]: *** [Makefile:548: all-recursive] Error 1
make[2]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/src’
make[1]: *** [Makefile:800: all-recursive] Error 1
make[1]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources’
make: *** [Makefile:750: all] Error 2

This seems to be a similar type of error; however, now all the compilers are installed with gcc version 11.2.0. Do you have any suggestion how this error could be resolved?

Edit: this try was with running make -j8. Trying once again with make clean + make -j4 I am getting a similar error but elsewhere:

g++ -DHAVE_CONFIG_H -I. -I…/… -I./…/lglib -I./…/bamglib -I./…/Graphics -I./…/femlib -I/home/aszabo/iff/petsc/arch-FreeFem/include -I./…/Eigen -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -MT lgfem.o -MD -MP -MF $depbase.Tpo -c -o lgfem.o lgfem.cpp &&
mv -f $depbase.Tpo $depbase.Po
lgmat.cpp: In member function ‘AnyType removeDOF_Op::operator()(Stack) const [with T = std::complex]’:
lgmat.cpp:3370:9: internal compiler error: Segmentation fault
3370 | AnyType removeDOF_Op::operator()(Stack stack) const {
| ^~~~~~~~~~~~~~~
0xe4c988 internal_error(char const*, …)
???:0
0x143c84f ggc_set_mark(void const*)
???:0
0xa4e1fa gt_ggc_mx_addr_table_entry(void*)
???:0
0x1440a39 gt_ggc_mx_vec_dw_attr_node_va_gc_(void*)
???:0
0x1440974 gt_ggc_mx_die_struct(void*)
???:0
0x14409b2 gt_ggc_mx_die_struct(void*)
???:0
0x14409b2 gt_ggc_mx_die_struct(void*)
???:0
0x1440a2a gt_ggc_mx_vec_dw_attr_node_va_gc_(void*)
???:0
0x1440974 gt_ggc_mx_die_struct(void*)
???:0
0x1440a1b gt_ggc_mx_vec_dw_attr_node_va_gc_(void*)
???:0
0x1440974 gt_ggc_mx_die_struct(void*)
???:0
0x90bc7c gt_ggc_mx_hash_table_decl_die_hasher_(void*)
???:0
0x15e4a3c ggc_mark_roots()
???:0
0xf9042c ggc_collect()
???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See https://bugs.archlinux.org/ for instructions.
make[4]: *** [Makefile:918: lgmat.o] Error 1
make[4]: *** Waiting for unfinished jobs…
make[4]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/src/fflib’
make[3]: *** [Makefile:657: all] Error 2
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/src/fflib’
make[2]: *** [Makefile:548: all-recursive] Error 1
make[2]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/src’
make[1]: *** [Makefile:800: all-recursive] Error 1
make[1]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources’
make: *** [Makefile:750: all] Error 2

config.log (127.3 KB)

That’s weird, I’m using those compilers on both Windows and Linux (Debian) with no error. Could you please simply try with make -j1 and copy/paste the first error you get?

Thanks for the tip. Compiling with -j1 gives the following error :

…/seq/ff-c++ -auto -mpi parmmg.cpp
eval …/seq/ff-c++ ‘-mpi’ parmmg.cpp -L/home/aszabo/iff/FreeFem-sources/3rdparty/lib -lparm mg -I/home/aszabo/iff/FreeFem-sources/3rdparty/include/ -L/home/aszabo/iff/FreeFem-sources/ 3rdparty/lib -lmmg -I/home/aszabo/iff/FreeFem-sources/3rdparty/include/ -pthread -L/usr/lib /openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi -Wl,-rpath, /home/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -lmetis - I/home/aszabo/iff/petsc/arch-FreeFem/include -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem /lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -lesmumps -lscotch -lscotcherr -I/home/aszab o/iff/petsc/arch-FreeFem/include
mpicxx -c -fPIC ‘-I…/seq/include’ ‘-I/home/aszabo/iff/FreeFem-sources/3rdparty/include/’ ’ -I/home/aszabo/iff/FreeFem-sources/3rdparty/include/’ ‘-I/home/aszabo/iff/petsc/arch-FreeFe m/include’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ -g -DNDEBUG -O3 -mmmx -mavx -std =c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘pa rmmg.cpp’

mpicxx -shared -fPIC -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -f PIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘parmmg.o’ -o parmmg.so ‘-L/home/aszabo/i ff/FreeFem-sources/3rdparty/lib’ ‘-lparmmg’ ‘-L/home/aszabo/iff/FreeFem-sources/3rdparty/li b’ ‘-lmmg’ ‘-L/usr/lib/openmpi’ -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags ‘-lm pi_cxx’ ‘-lmpi’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/pets c/arch-FreeFem/lib’ ‘-lmetis’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/a szabo/iff/petsc/arch-FreeFem/lib’ ‘-lesmumps’ ‘-lscotch’ ‘-lscotcherr’ -pthread -pthread -L /usr/lib/openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi

…/seq/ff-c++ -auto -mpi hpddm.cpp
eval …/seq/ff-c++ ‘-mpi’ hpddm.cpp -std=c++14 -std=c++14 -I/home/aszabo/iff/petsc/arch-Fre eFem/include -DWITH_mumps -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo /iff/petsc/arch-FreeFem/lib -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -I/ho me/aszabo/iff/petsc/arch-FreeFem/include -DWITH_parmetis -Wl,-rpath,/home/aszabo/iff/petsc/ arch-FreeFem/lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -lparmetis -I/home/aszabo/iff/pe tsc/arch-FreeFem/include -DWITH_metis -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib -L /home/aszabo/iff/petsc/arch-FreeFem/lib -lmetis -I/home/aszabo/iff/petsc/arch-FreeFem/inclu de -DWITH_ptscotch -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo/iff/pe tsc/arch-FreeFem/lib -lptesmumps -lptscotchparmetis -lptscotch -lptscotcherr -lesmumps -lsc otch -lscotcherr -I/home/aszabo/iff/petsc/arch-FreeFem/include -DWITH_scotch -Wl,-rpath,/ho me/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -lesmumps -l scotch -lscotcherr -I/home/aszabo/iff/petsc/arch-FreeFem/include -DWITH_scalapack -Wl,-rpat h,/home/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -lscala pack -DWITH_mpifc -pthread -L/usr/lib/openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable- new-dtags -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -DWITH_fc -L/usr/lib/gc c/x86_64-pc-linux-gnu/11.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/…/…/…/…/lib -L/l ib/…/lib -L/usr/lib/…/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/…/…/… -lgfortran - lm -lquadmath -DAdd_ -DWITH_blas -llapack -lblas -pthread -L/usr/lib/openmpi -Wl,-rpath -Wl ,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi
mpicxx -c -fPIC -std=c++14 -std=c++14 ‘-I…/seq/include’ ‘-I/home/aszabo/iff/petsc/arch-Fre eFem/include’ ‘-DWITH_mumps’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ ‘-DWITH_parmet is’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ ‘-DWITH_metis’ ‘-I/home/aszabo/iff/pets c/arch-FreeFem/include’ ‘-DWITH_ptscotch’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ ’ -DWITH_scotch’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ ‘-DWITH_scalapack’ ‘-DWITH_m pifc’ ‘-DWITH_fc’ ‘-DAdd_’ ‘-DWITH_blas’ -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG _LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘hpddm.cpp’
In file included from /home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM_preconditioner.hpp: 48,
from /home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM_schwarz.hpp:51,
from /home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM.hpp:356,
from common_hpddm.hpp:55,
from hpddm.cpp:15:
/home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM_coarse_operator_impl.hpp: In instantiatio n of ‘std::pair<ompi_request_t*, const K*>* HPDDM::CoarseOperator<Solver, S, K>::constructi onMatrix(typename std::enable_if<(Operator::_pattern != ‘u’), Operator>::type&) [with char T = ‘\000’; short unsigned int U = 2; short unsigned int excluded = 1; Operator = HPDDM::Ma trixMultiplication<HPDDM::Schwarz<HPDDM::MumpsSub, HPDDM::Mumps, ‘G’, std::complex >, std::complex >; Solver = HPDDM::Mumps; char S = ‘G’; K = std::complex; H PDDM::CoarseOperator<Solver, S, K>::return_type = std::pair<ompi_request_t*, const std::com plex>; typename std::enable_if<(Operator::_pattern != ‘u’), Operator>::type = HPD DM::MatrixMultiplication<HPDDM::Schwarz<HPDDM::MumpsSub, HPDDM::Mumps, ‘G’, std::complex >, std::complex >]’:
/home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM_coarse_operator_impl.hpp:278:69: requir ed from ‘std::pair<ompi_request_t*, const K*>* HPDDM::CoarseOperator<Solver, S, K>::constru ction(Operator&&, ompi_communicator_t* const&) [with short unsigned int = 2; sh ort unsigned int = 1; Operator = HPDDM::MatrixMultiplication<HPDDM::Schwarz<HPD DM::MumpsSub, HPDDM::Mumps, ‘G’, std::complex >, std::complex >; Solver = H PDDM::Mumps; char S = ‘G’; K = std::complex; HPDDM::CoarseOperator<Solver, S, K>::r eturn_type = std::pair<ompi_request_t*, const std::complex>; MPI_Comm = ompi_comm unicator_t*]’
/home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM_preconditioner.hpp:226:65: required fro m ‘typename CoarseOperator::return_type HPDDM::Preconditioner<Solver, CoarseOperator, K>::b uildTwo(Prcndtnr*, ompi_communicator_t* const&, Types& …) [with short unsigned int exclud ed = 1; Operator = HPDDM::MatrixMultiplication<HPDDM::Schwarz<HPDDM::MumpsSub, HPDDM::Mumps , ‘G’, std::complex >, std::complex >; Prcndtnr = HPDDM::Schwarz<HPDDM::Mum psSub, HPDDM::Mumps, ‘G’, std::complex >; Types = {}; Solver = HPDDM::MumpsSub; Coa rseOperator = HPDDM::CoarseOperator<HPDDM::Mumps, ‘G’, std::complex >; K = std::com plex; typename CoarseOperator::return_type = std::pair<ompi_request_t*, const std:: complex>; MPI_Comm = ompi_communicator_t*]’
/home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM_schwarz.hpp:412:120: required from ‘typ ename HPDDM::Schwarz<Solver, CoarseSolver, S, K>::super::co_type::return_type HPDDM::Schwar z<Solver, CoarseSolver, S, K>::buildTwo(ompi_communicator_t* const&, HPDDM::MatrixCSR* c onst&) [with short unsigned int excluded = 1; Solver = HPDDM::MumpsSub; CoarseSolver = HPDD M::Mumps; char S = ‘G’; K = std::complex; typename HPDDM::Schwarz<Solver, CoarseSol ver, S, K>::super::co_type::return_type = std::pair<ompi_request_t*, const std::complex>; typename HPDDM::Schwarz<Solver, CoarseSolver, S, K>::super::co_type = HPDDM::Coars eOperator<HPDDM::Mumps, ‘G’, std::complex >; HPDDM::Schwarz<Solver, CoarseSolver, S , K>::super = HPDDM::Preconditioner<HPDDM::MumpsSub, HPDDM::CoarseOperator<HPDDM::Mumps, 'G ', std::complex >, std::complex >; MPI_Comm = ompi_communicator_t*]’
hpddm.cpp:308:56: required from ‘AnyType Schwarz::attachCoarseOperator<Type, K>::E_attach CoarseOperator::operator()(Stack) const [with Type = HPDDM::Schwarz<HPDDM::MumpsSub, HPDDM: :Mumps, ‘G’, std::complex >; K = std::complex; AnyType = AnyTypeWithOutChec k; Stack = void*]’
hpddm.cpp:251:9: required from here
/home/aszabo/iff/petsc/arch-FreeFem/include/HPDDM_coarse_operator_impl.hpp:1376:1: internal compiler error: Segmentation fault
1376 | }
| ^
0xe4c988 internal_error(char const*, …)
???:0
0x1067961 cp_fold_maybe_rvalue(tree_node*, bool)
???:0
0x1067961 cp_fold_maybe_rvalue(tree_node*, bool)
???:0
0x1067961 cp_fold_maybe_rvalue(tree_node*, bool)
???:0
0xf683cb walk_tree_1(tree_node**, tree_node* ()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf68475 walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf6892e walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf684f4 walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf6892e walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf6892e walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf684a1 walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf6892e walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf684a1 walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf6892e walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf684a1 walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0xf6892e walk_tree_1(tree_node**, tree_node
()(tree_node**, int, void*), void*, hash_set <tree_node*, false, default_hash_traits<tree_node*> >, tree_node ()(tree_node**, int, t ree_node* ()(tree_node**, int, void*), void*, hash_set<tree_node*, false, default_hash_tr aits<tree_node*> >))
???:0
0x1078beb finish_function(bool)
???:0
0x1294a36 instantiate_decl(tree_node
, bool, bool)
???:0
0xfe2243 instantiate_pending_templates(int)
???:0
0xfddab7 c_parse_final_cleanups()
???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See https://bugs.archlinux.org/ for instructions.
make[3]: *** [Makefile:660: hpddm.so] Error 1
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/plugin/mpi’
make[2]: *** [Makefile:663: all-recursive] Error 1
make[2]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/plugin’
make[1]: *** [Makefile:800: all-recursive] Error 1
make[1]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources’
make: *** [Makefile:750: all] Error 2

I checked and mpicxx also seems to be up-to-date.

Well… maybe it’s up to date, but it’s bugged. Does plugin/mpi/PETSc.cpp compile?

Yes, I suppose it does:

mpicxx -shared -fPIC -std=c++14 -std=c++14 -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘hpddm_substructuring.o’ -o hpddm_substructuring.so -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lcmumps’ ‘-ldmumps’ ‘-lsmumps’ ‘-lzmumps’ ‘-lmumps_common’ ‘-lpord’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lparmetis’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lmetis’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lptesmumps’ ‘-lptscotchparmetis’ ‘-lptscotch’ ‘-lptscotcherr’ ‘-lesmumps’ ‘-lscotch’ ‘-lscotcherr’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lesmumps’ ‘-lscotch’ ‘-lscotcherr’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lscalapack’ ‘-L/usr/lib/openmpi’ -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags ‘-lmpi_usempif08’ ‘-lmpi_usempi_ignore_tkr’ ‘-lmpi_mpifh’ ‘-lmpi’ ‘-L/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0’ ‘-L/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/…/…/…/…/lib’ ‘-L/lib/…/lib’ ‘-L/usr/lib/…/lib’ ‘-L/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/…/…/…’ ‘-lgfortran’ ‘-lm’ ‘-lquadmath’ ‘-llapack’ ‘-lblas’ ‘-L/usr/lib/openmpi’ -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags ‘-lmpi_cxx’ ‘-lmpi’ -pthread -pthread -pthread -L/usr/lib/openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi
…/seq/ff-c++ -auto -mpi PETSc.cpp
eval …/seq/ff-c++ ‘-mpi’ PETSc.cpp -std=c++14 -std=c++14 -DWITH_slepc -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -lslepc -I/home/aszabo/iff/petsc/include -I/home/aszabo/iff/petsc/arch-FreeFem/include -DWITH_petsc -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -lpetsc -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib -L/home/aszabo/iff/petsc/arch-FreeFem/lib -Wl,-rpath,/usr/lib/openmpi -L/usr/lib/openmpi -Wl,-rpath,/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0 -lHYPRE -lspqr -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd -lsuitesparseconfig -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lscalapack -lsuperlu -llapack -lblas -lptesmumps -lptscotchparmetis -lptscotch -lptscotcherr -lesmumps -lscotch -lscotcherr -lparmetis -lmetis -ltet -lm -lX11 -lstdc++ -ldl -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lm -lgfortran -lm -lgcc_s -lquadmath -lpthread -lrt -lquadmath -lstdc++ -ldl -I/home/aszabo/iff/petsc/include -I/home/aszabo/iff/petsc/arch-FreeFem/include -DWITH_blas -llapack -lblas -I/home/aszabo/iff/petsc/arch-FreeFem/include -pthread -L/usr/lib/openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi
mpicxx -c -fPIC -std=c++14 -std=c++14 ‘-I…/seq/include’ ‘-DWITH_slepc’ ‘-I/home/aszabo/iff/petsc/include’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ ‘-DWITH_petsc’ ‘-I/home/aszabo/iff/petsc/include’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ ‘-DWITH_blas’ ‘-I/home/aszabo/iff/petsc/arch-FreeFem/include’ -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘PETSc.cpp’
mpicxx -shared -fPIC -std=c++14 -std=c++14 -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘PETSc.o’ -o PETSc.so -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lslepc’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ ‘-lpetsc’ -Wl,-rpath,/home/aszabo/iff/petsc/arch-FreeFem/lib ‘-L/home/aszabo/iff/petsc/arch-FreeFem/lib’ -Wl,-rpath,/usr/lib/openmpi ‘-L/usr/lib/openmpi’ -Wl,-rpath,/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0 ‘-L/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0’ ‘-lHYPRE’ ‘-lspqr’ ‘-lumfpack’ ‘-lklu’ ‘-lcholmod’ ‘-lbtf’ ‘-lccolamd’ ‘-lcolamd’ ‘-lcamd’ ‘-lamd’ ‘-lsuitesparseconfig’ ‘-lcmumps’ ‘-ldmumps’ ‘-lsmumps’ ‘-lzmumps’ ‘-lmumps_common’ ‘-lpord’ ‘-lscalapack’ ‘-lsuperlu’ ‘-llapack’ ‘-lblas’ ‘-lptesmumps’ ‘-lptscotchparmetis’ ‘-lptscotch’ ‘-lptscotcherr’ ‘-lesmumps’ ‘-lscotch’ ‘-lscotcherr’ ‘-lparmetis’ ‘-lmetis’ ‘-ltet’ ‘-lm’ ‘-lX11’ ‘-lstdc++’ ‘-ldl’ ‘-lmpi_usempif08’ ‘-lmpi_usempi_ignore_tkr’ ‘-lmpi_mpifh’ ‘-lmpi’ ‘-lgfortran’ ‘-lm’ ‘-lgfortran’ ‘-lm’ ‘-lgcc_s’ ‘-lquadmath’ ‘-lpthread’ ‘-lrt’ ‘-lquadmath’ ‘-lstdc++’ ‘-ldl’ ‘-llapack’ ‘-lblas’ ‘-L/usr/lib/openmpi’ -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags ‘-lmpi_cxx’ ‘-lmpi’ -pthread -pthread -L/usr/lib/openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi

I completely erased and downloaded FreeFem from github. The compilation (with -j1 now finishes with the following:

…/seq/ff-c++ -auto -mpi SLEPc-complex.cpp
eval …/seq/ff-c++ ‘-mpi’ SLEPc-complex.cpp -std=c++14 -std=c++14
mpicxx -c -fPIC -std=c++14 -std=c++14 ‘-I…/seq/include’ -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘SLEPc-complex.cpp’
mpicxx -shared -fPIC -std=c++14 -std=c++14 -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘SLEPc-complex.o’ -o SLEPc-complex.so -pthread -L/usr/lib/openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi
…/seq/ff-c++ -auto -mpi SLEPc.cpp
eval …/seq/ff-c++ ‘-mpi’ SLEPc.cpp -std=c++14 -std=c++14
mpicxx -c -fPIC -std=c++14 -std=c++14 ‘-I…/seq/include’ -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘SLEPc.cpp’
mpicxx -shared -fPIC -std=c++14 -std=c++14 -g -DNDEBUG -O3 -mmmx -mavx -std=c++14 -DBAMG_LONG_LONG -DNCHECKPTR -fPIC -I/home/aszabo/iff/petsc/arch-FreeFem/include ‘SLEPc.o’ -o SLEPc.so -pthread -L/usr/lib/openmpi -Wl,-rpath -Wl,/usr/lib/openmpi -Wl,–enable-new-dtags -lmpi_cxx -lmpi
Warning missing mpi plugin:
finish compile load mpi solver !
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/plugin/mpi’
make[3]: Entering directory ‘/home/aszabo/iff/FreeFem-sources/plugin’
make[3]: Nothing to be done for ‘all-am’.
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/plugin’
make[2]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/plugin’
Making all in examples
make[2]: Entering directory ‘/home/aszabo/iff/FreeFem-sources/examples’
Making all in 3d
make[3]: Entering directory ‘/home/aszabo/iff/FreeFem-sources/examples/3d’
(echo “NoGraphicWindow=true;NoUseOfWait=true;int verbosityy=verbosity;int MEM1234=storageused();”;
for i in *ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp$' ; do
echo ’ cout << “--------- file : ‘$i’ --------------------------------------------------------” << endl;’ ;
echo “verbosity=verbosityy;searchMethod=0;” ;
echo { include "i\"\;\}\; ;\ echo ' cout << " mem leak = " <<storageused() - MEM1234 << endl << "------------------------------------------------------------------------------ " << endl;' ;\ done) > all.edp echo includepath = \"../../idp/\" > freefem++.pref echo loadpath = \"../../plugin/seq/\" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/3d' Making all in 3dSurf make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/3dSurf' (echo "NoGraphicWindow=true;NoUseOfWait=true;int verbosityy=verbosity;int MEM1234=storageused();"; \ for i in *`ls *.edp|grep -v -E '^(all|regtests|makeref|ref)\.edp’ ; do \ echo ' cout << "--------- file : '$i' --------------------------------------------------------" << endl;' ;\ echo "verbosity=verbosityy;searchMethod=0;" ; \ echo \{ include \" $i\" \;\}\; ;\ echo ' cout << " mem leak = " <<storageused() - MEM1234 << endl << "------------------------------------------------------------------------------ " << endl;' ;\ done) > all.edp echo includepath = \"../../idp/\" > freefem++.pref echo loadpath = \"../../plugin/seq/\" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/3dSurf' Making all in 3dCurve make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/3dCurve' (echo "NoGraphicWindow=true;NoUseOfWait=true;int verbosityy=verbosity;int MEM1234=storageused();"; \ for i in *ls *.edp|grep -v -E ‘^(all|regtests|makeref|ref).edp$’ ; do \ echo ' cout << "--------- file : '$i' --------------------------------------------------------" << endl;' ;\ echo "verbosity=verbosityy;searchMethod=0;" ; \ echo \{ include \"$i\"\;\}\; ;\ echo ' cout << " mem leak = " <<storageused() - MEM1234 << endl << "------------------------------------------------------------------------------ " << endl;' ;\ done) > all.edp echo includepath = \"../../idp/\" > freefem++.pref echo loadpath = \"../../plugin/seq/\" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/3dCurve' Making all in examples make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/examples' (echo "NoUseOfWait=true;int verbosityy=verbosity;"; \ for i in *ls *.edp|grep -v -E ‘^(all|regtests|makeref|ref).edp$’ ; do \ echo ' cout << "--------- file : '$i' --------------------------------------------------------" << endl;' ;\ echo "verbosity=verbosityy;" ; \ echo \{ include \"$i\"\;\}\; ;\ echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\ done) > all.edp echo includepath = \"../../idp/\" > freefem++.pref echo loadpath = \"../../plugin/seq/\" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/examples' Making all in misc make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/misc' (echo "NoUseOfWait=true;int verbosityy=verbosity;"; \ for i in *ls *.edp|grep -v -E ‘^(all|regtests|makeref|ref).edp$’ ; do \ echo ' cout << "--------- file : '$i' --------------------------------------------------------" << endl;' ;\ echo "verbosity=verbosityy;" ; \ echo \{ include \"$i\"\;\}\; ;\ echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\ done) > all.edp echo includepath = \"../../idp/\" > freefem++.pref echo loadpath = \"../../plugin/seq/\" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/misc' Making all in plugin make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/plugin' echo loadpath = "../../plugin/seq/" > freefem++.pref echo includepath = "../../idp/" >> freefem++.pref mkdir o Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file Error freefem++ file ,file make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/plugin' Making all in bug make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/bug' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/bug' Making all in ffddm make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/ffddm' echo loadpath = \"../../plugin/mpi/\" > freefem++.pref echo loadpath += \"../../plugin/seq/\" >> freefem++.pref echo includepath = \"../../idp/\" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/ffddm' Making all in mpi make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/mpi' echo "loadpath = ../../plugin/mpi/" > freefem++.pref echo "loadpath += ../../plugin/seq/" >>freefem++.pref echo "includepath = ../../idp/" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/mpi' Making all in tutorial make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/tutorial' (echo "NoUseOfWait=true;int verbosityy=verbosity;"; \ for i in *ls *.edp|grep -v -E ‘^(all|regtests|makeref|ref).edp$’ ; do \ echo ' cout << "--------- file : '$i' --------------------------------------------------------" << endl;' ;\ echo "verbosity=verbosityy;" ; \ echo \{ include \"$i\"\;\}\; ;\ echo ' cout << "------------------------------------------------------------------------------ " << endl;' ;\ done) > all.edp echo includepath = \"../../idp/\" > freefem++.pref echo loadpath = \"../../plugin/seq/\" >> freefem++.pref make[3]: Leaving directory '/home/aszabo/iff/FreeFem-sources/examples/tutorial' Making all in eigen make[3]: Entering directory '/home/aszabo/iff/FreeFem-sources/examples/eigen' (echo "NoUseOfWait=true;int verbosityy=verbosity;"; \ for i in *ls *.edp|grep -v -E ‘^(all|regtests|makeref|ref).edp$’` ; do
echo ’ cout << “--------- file : ‘$i’ --------------------------------------------------------” << endl;’ ;
echo “verbosity=verbosityy;” ;
echo { include "$i";}; ;
echo ’ cout << "------------------------------------------------------------------------------ " << endl;’ ;
done) > all.edp
echo includepath = "…/…/idp/" > freefem++.pref
echo loadpath = "…/…/plugin/seq/" >> freefem++.pref
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/examples/eigen’
Making all in hpddm
make[3]: Entering directory ‘/home/aszabo/iff/FreeFem-sources/examples/hpddm’
echo loadpath = "…/…/plugin/mpi/" > freefem++.pref
echo loadpath += "…/…/plugin/seq/" >> freefem++.pref
echo includepath = "…/…/idp/" >> freefem++.pref
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/examples/hpddm’
make[3]: Entering directory ‘/home/aszabo/iff/FreeFem-sources/examples’
make[3]: Nothing to be done for ‘all-am’.
make[3]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/examples’
make[2]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources/examples’
make[2]: Entering directory ‘/home/aszabo/iff/FreeFem-sources’
make[2]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources’
make[1]: Leaving directory ‘/home/aszabo/iff/FreeFem-sources’

Does this contain anything meaningful? The undefined control sequence is echo \{ include \"$i\"\;\}\; ;\

Ah, OK! Then everything is alright. Everything after finish compile load mpi solver! is just gibberish.

1 Like

Wow, I have received to many errors in the past few days, I did not realized that the compilation was successful. I guess the conclusion is that changing version for only one compiler is dangerous, and everything needs to be clean (there were also other issues, e.g., not properly uninstalled automake, etc.). I will stick to compilation with make -j1 on this machine.

Thank you really much for the help!