Maybe try building a shared version of MPI using flag "--disable-static --enable-shared". If there the *.so files are already there (since openmpi by default builds shared too,I think), fix MPI_C_LIBRARIES, MPI_CXX_LIBRARIES and MPI_Fortran_LIBRARIES cmake variables to point to the *.so variants on the MPI libraries instead of the *.a versions.
On Wed, Jun 18, 2014 at 12:47 AM, Victor <[email protected]> wrote: > I still cannot compile Paraview. I attempted to recompile openmpi-1.8.1 with > fPIC but something is causing either the fPIC to be set incorrectly or I am > doing something wrong. In any case I am completely stuck so I would really > appreciate some help in traversing this error: > > Linking CXX shared library ../../../lib/libvtkParallelMPI-pv4.1.so > /usr/bin/ld: /opt/openmpi-1.8.1/lib/libmpi.a(comm_init.o): relocation > R_X86_64_32 against `ompi_comm_f_to_c_table' can not be used when making a > shared object; recompile with -fPIC > /opt/openmpi-1.8.1/lib/libmpi.a: could not read symbols: Bad value > collect2: ld returned 1 exit status > make[2]: *** [lib/libvtkParallelMPI-pv4.1.so.1] Error 1 > make[1]: *** [VTK/Parallel/MPI/CMakeFiles/vtkParallelMPI.dir/all] Error 2 > make: *** [all] Error 2 > > > The latest openmpi configure command was: ./configure --with-sge > --with-mx=/opt/open-mx --with-pic --with-mx-libdir=/opt/open-mx/lib > --prefix=/opt/openmpi-1.8.1 > > I also attempted to manually set -fPIC flag by editing the Makefile and by > setting a global CCFLAG. Nothing worked. > > > > On 31 May 2014 07:35, Victor <[email protected]> wrote: >> >> Here it is, I hope. I never attempted to attach anything to a mailing list >> post so I apologize if it doesn't actually attach. >> >> >> On 30 May 2014 20:07, Utkarsh Ayachit <[email protected]> wrote: >>> >>> Can you post your CMakeCache.txt file? >>> >>> On Fri, May 30, 2014 at 2:40 AM, Victor <[email protected]> wrote: >>> > Thank you for the fast reply! >>> > >>> > I compiled an alternative openmpi-1.8.1 with -fPIC flag (I verified >>> > that it >>> > was placed into the Makefile), removed the original Paraview build >>> > directory, modified the Paraview build configuration by rerunning >>> > ccmake to >>> > point to the alternative openmpi path, but the error remained. >>> > >>> > During Paraview compilation the alternative path for openmpi-1.8.1 is >>> > used >>> > until it comes to the linking step where it attempts to link to the >>> > system >>> > wide openmpi-1.8.1 location and of course fails. >>> > >>> > Linking CXX shared library ../../../lib/libvtkParallelMPI-pv4.1.so >>> > /usr/bin/ld: /opt/openmpi-1.8.1/lib/libmpi_cxx.a(intercepts.o): >>> > relocation >>> > R_X86_64_32S against `ompi_mpi_cxx_comm_throw_excptn_fctn' can not be >>> > used >>> > when making a shared object; recompile with -fPIC >>> > /opt/openmpi-1.8.1/lib/libmpi_cxx.a: could not read symbols: Bad value >>> > collect2: ld returned 1 exit status >>> > make[2]: *** [lib/libvtkParallelMPI-pv4.1.so.1] Error 1 >>> > make[1]: *** [VTK/Parallel/MPI/CMakeFiles/vtkParallelMPI.dir/all] Error >>> > 2 >>> > make: *** [all] Error 2 >>> > >>> > >>> > I cannot (will not) overwrite the system wide openmpi as I have a >>> > parallel >>> > job running at the moment (CFD simulation) and this node is acting as a >>> > head >>> > node serving openmpi from an NFS shared directory. I am confident that >>> > the >>> > application will not need to call on openmpi now that it is already >>> > running, >>> > but I'd rather not find out that I am wrong. >>> > >>> > Thus is there a way to force the Paraview installer to link against an >>> > alternative build that was compiled with -fPIC? >>> > >>> > Thanks, >>> > >>> > Victor >>> > >>> > >>> > On 29 May 2014 18:37, Utkarsh Ayachit <[email protected]> >>> > wrote: >>> >> >>> >> You'll have to recompile openmpi with -fPIC or link against a shared >>> >> build of the same. >>> >> >>> >> On Thu, May 29, 2014 at 5:06 AM, Victor <[email protected]> >>> >> wrote: >>> >> > I am trying to compile Paraview 4.1 with MPI support but make exits >>> >> > at >>> >> > this >>> >> > point: >>> >> > >>> >> > /usr/bin/ld: /opt/openmpi-1.8.1/lib/libmpi.a(comm_init.o): >>> >> > relocation >>> >> > R_X86_64_32 against `ompi_comm_f_to_c_table' can not be used when >>> >> > making >>> >> > a >>> >> > shared object; recompile with -fPIC >>> >> > /opt/openmpi-1.8.1/lib/libmpi.a: could not read symbols: Bad value >>> >> > collect2: ld returned 1 exit status >>> >> > make[2]: *** [lib/libvtkParallelMPI-pv4.1.so.1] Error 1 >>> >> > make[1]: *** [VTK/Parallel/MPI/CMakeFiles/vtkParallelMPI.dir/all] >>> >> > Error >>> >> > 2 >>> >> > make: *** [all] Error 2 >>> >> > >>> >> > How can I fix this error? >>> >> > >>> >> > Thanks, >>> >> > >>> >> > Victor >>> >> > >>> >> > _______________________________________________ >>> >> > Powered by www.kitware.com >>> >> > >>> >> > Visit other Kitware open-source projects at >>> >> > http://www.kitware.com/opensource/opensource.html >>> >> > >>> >> > Please keep messages on-topic and check the ParaView Wiki at: >>> >> > http://paraview.org/Wiki/ParaView >>> >> > >>> >> > Follow this link to subscribe/unsubscribe: >>> >> > http://www.paraview.org/mailman/listinfo/paraview >>> >> > >>> > >>> > >> >> > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview
