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)
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.
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!