Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parallel install error! #4352

Open
jsfeng-fudan opened this issue Jun 11, 2024 · 9 comments
Open

parallel install error! #4352

jsfeng-fudan opened this issue Jun 11, 2024 · 9 comments
Assignees
Labels

Comments

@jsfeng-fudan
Copy link

jsfeng-fudan commented Jun 11, 2024

I want to run the miniapps --- NS solver, before run the example ,I must install parallel version mfem library. Following the MPI parallel install guiding(hyper and metis are well installed) ,when in mfem4.5, I make parallel j, the following error appeared !

fem/prestriction.cpp: In member function ‘void mfem::ParNCL2FaceRestriction::ComputeScatterIndicesAndOffsets(mfem::ElementDofOrdering, mfem::FaceType)’:
fem/prestriction.cpp:931:66: error: could not convert ‘(mfem::FaceType)type’ from ‘mfem::FaceType’ to ‘bool’
                (type==FaceType::Interior? "interior" : "boundary") <<
                                                                  ^
fem/../linalg/../general/error.hpp:88:24: note: in definition of macro ‘_MFEM_MESSAGE’
       mfemMsgStream << msg << MFEM_LOCATION;                            \
                        ^
fem/prestriction.cpp:930:4: note: in expansion of macro ‘MFEM_VERIFY’
    MFEM_VERIFY(f_ind==nf, "Unexpected number of " <<
    ^
fem/prestriction.cpp: In member function ‘void mfem::ParNCL2FaceRestriction::ComputeGatherIndices(mfem::ElementDofOrdering, mfem::FaceType)’:
fem/prestriction.cpp:975:66: error: could not convert ‘(mfem::FaceType)type’ from ‘mfem::FaceType’ to ‘bool’
                (type==FaceType::Interior? "interior" : "boundary") <<
                                                                  ^
fem/../linalg/../general/error.hpp:88:24: note: in definition of macro ‘_MFEM_MESSAGE’
       mfemMsgStream << msg << MFEM_LOCATION;                            \
                        ^
fem/prestriction.cpp:974:4: note: in expansion of macro ‘MFEM_VERIFY’
    MFEM_VERIFY(f_ind==nf, "Unexpected number of " <<
    ^
make[1]: *** [makefile:454: fem/prestriction.o] Error 1
make[1]: Leaving directory '/home/ubuntu/work/FEM/para/mfem-4.5'
make: *** [makefile:496: parallel] Error 2.

What caused the above error, and how should I recompile?

@v-dobrev
Copy link
Member

This error does not make sense to me. Make sure you have not accidentally edited the source file (fem/prestriction.cpp) without noticing. If the file was not accidentally modified, what compiler are you using?

Also, you can try building the latest version, mfem v4.7, instead of mfem v4.5.

@jsfeng-fudan
Copy link
Author

jsfeng-fudan commented Jun 12, 2024

@v-dobrev Thank your response. I haven't edited the code, and my machine's default compiler is the GNU C++ compiler, gcc and g++. mpicxx is used for parallel compiling ...

@jsfeng-fudan
Copy link
Author

jsfeng-fudan commented Jun 12, 2024

even if I compile the serial version. the same error took place.! I use the GNU compiler when serial and parallel (v4.5, v4.6 and v4.7)make, How can I solve the compiling error!

@v-dobrev
Copy link
Member

v-dobrev commented Jun 12, 2024

Can you post the exact command(s) you use for building mfem? I can try to reproduce the issue and see if I can find a solution.

Also, can you post the output of g++ --version and what OS you are using?

@jsfeng-fudan
Copy link
Author

jsfeng-fudan commented Jun 12, 2024

Thank your response, following is the version of GNU complire and the used OS!
(base) root@master:/home/ubuntu/work/FEM/serial/mfem-4.5# g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For serial version, make serial -j 4

For parallel version make parallel -j 4 (preinstalling metis and hyper)

@v-dobrev
Copy link
Member

I think this is an issue with gcc 5. Please use newer gcc version, e.g. I've used v6.3.1 successfully.

@jsfeng-fudan
Copy link
Author

@v-dobrev It's ok for gcc-9. it is indeed the issue of version of compiler. Thank you very much.

@jsfeng-fudan
Copy link
Author

@v-dobrev Hi, when I compiled the parallel example, I came across some errors.
install hypre :
~> cd hypre-2.26.0/src/
~/hypre-2.26.0/src> ./configure --disable-fortran
~/hypre-2.26.0/src> make -j
~/hypre-2.26.0/src> cd ../..
~> ln -s hypre-2.26.0 hypre

install metis-5.1.0
~> cd metis-5.1.0
~/metis-5.1.0> make BUILDDIR=lib config
~/metis-5.1.0> make BUILDDIR=lib
~/metis-5.1.0> cp lib/libmetis/libmetis.a lib

install mfem-4.7
~> cd mfem-4.5
~/mfem-4.5> make parallel -j MFEM_USE_METIS_5=YES METIS_DIR=@MFEM_DIR@/../metis-5.1.0

above operation is successfully. However, when I make the parallel example,

~> make ex0p
the error appeared :
base) root@master:/home/ubuntu/work/FEM/para/mfem-4.7/examples# make ex0p
mpicxx -O3 -std=c++11 -I.. -I../../hypre/src/hypre/include -I../../metis-5.1.0/include ex0p.cpp -o ex0p -L.. -lmfem -L../../hypre/src/hypre/lib -lHYPRE -L../../metis-5.1.0/lib -lmetis -lrt
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_IJMatrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(IJMatrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(IJMatrix_parcsr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_lobpcg.o): relocation R_X86_64_32 against symbol hypre_LOBPCGPreconditioner' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(flexgmres.o): relocation R_X86_64_32S against symbol hypre_FlexGMRESModifyPCDefault' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(gmres.o): relocation R_X86_64_32S against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(lobpcg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(pcg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_Euclid.o): relocation R_X86_64_32 against symbol np_dh' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_ParaSails.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_amg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_flexgmres.o): relocation R_X86_64_32S against symbol hypre_ParKrylovIdentity' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_gmres.o): relocation R_X86_64_32S against symbol hypre_ParKrylovIdentity' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_ilu.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_int.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_pcg.o): relocation R_X86_64_32 against symbol hypre_ParKrylovCAlloc' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_amg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_amg_solve.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_amg_solveT.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_cycle.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_gauss_elim.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_ilu.o): relocation R_X86_64_32S against symbol HYPRE_ILUSetup' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_ilu_setup.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_rap.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_relax.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_relax_more.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_stats.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ads.obj): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ame.obj): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ams.obj): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_amg_setup.obj): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_ilu_solve.obj): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_matrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_vector.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(new_commpkg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_bool_matrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_communication.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_matop.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_matrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_triplemat.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_vector.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(csr_block_matrix.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_block_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_block_relax.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(csr_matop.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(csr_matrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(vector.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(vector_batched.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dense_block_matrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(error.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(fortran_matrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(int_array.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(merge_sort.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(mmio.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(mpistubs.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(printf.o): relocation R_X86_64_32 against symbol hypre_printf_buffer' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(timing.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(utilities.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(general.obj): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(memory.obj): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgemv.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(xerbla.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgetrf.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgetri.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgetrs.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dpotrf.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsygv.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dtrtri.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ilaenv.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(xerbla.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Euclid_apply.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Euclid_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ExternalRows_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Factor_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Hash_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Mat_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Mem_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Numbering_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Parser_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(SortedList_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(SubdomainGraph_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(TimeLog_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Timer_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Vec_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(getRow_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(globalObjects.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ilu_mpi_bj.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ilu_mpi_pilu.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ilu_seq.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(io_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(krylov_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(mat_dh_private.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(shellSort_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(sig_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(hypre_ParaSails.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(distributed_matrix_parcsr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_ConvertParCSRMatrixToDistributedMatrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_fsai.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_parcsr_schwarz.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(gen_redcs_mat.o): relocation R_X86_64_32 against symbol hypre_merge_lists' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_2s_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_cgc_coarsen.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_cheby.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_coarsen.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_cr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_fsai.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_fsai_setup.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_fsai_solve.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_gsmg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_lr_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_lr_restr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_mod_lr_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_mod_multi_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_multi_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_nodal_systems.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_nongalerkin.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_restr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_strength.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_sv_interp.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_sv_interp_ln.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(partial.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(schwarz.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(gen_fffc.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(par_csr_matop_marked.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(csr_block_matvec.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(amg_linklist.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ddot.o): relocation R_X86_64_32S against .rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgemm.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsyrk.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dtrmm.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dtrsm.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgels.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgeqrf.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgetf2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlamch.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlange.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlarfb.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlarft.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlascl.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlaset.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dormlq.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dormqr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dpotf2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dpotrs.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsyev.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsygst.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsytrd.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dtrti2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Hash_i_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(SortedSet_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(blas_dh.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Matrix.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Mem.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ParaSails.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(HYPRE_DistributedMatrixPilutSolver.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(ilut.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(parilut.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(parutil.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(serilut.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(trifactor.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(util.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dger.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsymm.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsyr2k.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dtrmv.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgelqf.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgeqr2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlansy.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlarf.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlarfg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlatrd.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dorgtr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dorm2r.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dorml2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsteqr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsterf.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsygs2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsytd2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(Hash.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(debug.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsymv.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dsyr2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dtrsv.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dgelq2.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlanst.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlartg.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlasr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dlasrt.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dorgql.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dorgqr.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dorg2l.o): relocation R_X86_64_32 against .rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ../../hypre/src/hypre/lib/libHYPRE.a(dorg2r.o): relocation R_X86_64_32 against `.rodata.str1.4' can not be used when making a PIE object; recompile with -fPIE
collect2: error: ld returned 1 exit status
make: *** [makefile:87: ex0p] Error 1

@tzanio tzanio self-assigned this Jun 13, 2024
@v-dobrev
Copy link
Member

One thing is to make sure all packages are built with the same compiler and that mpicc and mpicxx use the correct compiler, e.g. by running mpicc --version -- this should show the real compiler used by the MPI C wrapper, mpicc.

Once you make sure the above is true (and it was not true originally) try rebuilding the packages from scratch. If that does not help, you can try rebuilding hypre while adding the following options to the hypre ./configure command: CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants