[Paraview] Compilation error under Linux with MPI and Python

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Mon Feb 10 09:54:44 EST 2014


Does the attached patch address the problem?  We may need to duplicate
the code for each of the modules.

On Thu, Feb 6, 2014 at 5:11 AM, Armin Wehrfritz <dkxls23 at gmail.com> wrote:
> The problem actually occurs only for openmpi versions > 1.6, I successfully
> compiled now ParaView under openSUSE 12.3 (openmpi 1.6).
>
> I also found a quick-and-dirty, workaround for openmpi 1.7.2 by manually
> adding libdl to the libraries in CMakeCache.txt:
>>
>>
>> MPI_CXX_LIBRARIES:STRING=/usr/lib64/mpi/gcc/openmpi/lib64/libmpi_cxx.so;/usr/lib64/mpi/gcc/openmpi/lib64/libmpi.so;/usr/lib64/libdl.so
>>
>> MPI_C_LIBRARIES:STRING=/usr/lib64/mpi/gcc/openmpi/lib64/libmpi.so;/usr/lib64/libdl.so
>
>
> Maybe a ParaView developer can add libdl to the linking targets for mpi4py
> to fix the problem properly.
>
> -Armin
>
>
>
> On 02/06/2014 05:02 AM, Orion Poplawski wrote:
>>
>> On 02/05/2014 01:14 PM, Armin Wehrfritz wrote:
>>>
>>> Hi,
>>>
>>> I get this error when compiling Paraview 4.1.0 under Linux x64:
>>>
>>>> [  230s] CMakeFiles/mpi4py.MPI.dir/src/MPI.c.o: In function
>>>> `OPENMPI_dlopen_libmpi':
>>>> [  230s] MPI.c:(.text+0x6eb1): undefined reference to `dlopen'
>>>> [  230s] MPI.c:(.text+0x6ecd): undefined reference to `dlopen'
>>>> [  230s] MPI.c:(.text+0x6ee3): undefined reference to `dlopen'
>>>> [  230s] MPI.c:(.text+0x6ef9): undefined reference to `dlopen'
>>>> [  230s] CMakeFiles[  4%] /mpi4py.MPI.dir/src/MPI.c.o: In function
>>>> `__pyx_pf_6mpi4py_3MPI_16Init':
>>>> [  230s] MPI.c:(.text+0x1349b): undefined reference to `dlopen'
>>>> [  230s] CMakeFiles/mpi4py.MPI.dir/src/MPI.c.o:MPI.c:(.text+0x135bd):
>>>> more undefined references to `dlopen' follow
>>>> [  230s] collect2: error: ld returned 1 exit status
>>>> [  230s] make[2]: *** [lib/site-packages/mpi4py/MPI.so] Error 1
>>>> [  230s] make[1]: ***
>>>> [ThirdParty/mpi4py/vtkmpi4py/CMakeFiles/mpi4py.MPI.dir/all] Error 2
>>>> [  230s] make[1]: *** Waiting for unfinished jobs....
>>>
>>>
>>> The error seems related to newer versions of openmpi in combination with
>>> and Python.
>>> When compiling under openSUSE 12.2 (openmpi 1.5.4) everything works
>>> fine, but under openSUSE 12.3 (openmpi 1.6) and openSUSE 13.1 (openmpi
>>> 1.7.2) the compilation fails.
>>>
>>> Apparently, in newer versions of openmpi, the wrapper doesn't add '-ldl'
>>> anymore to the linker flags.
>>> See also here:
>>> https://svn.open-mpi.org/trac/ompi/ticket/3103
>>>
>>> I'm not sure if this should be fixed in openmpi or paraview, but I would
>>> appreciate any hint on how to fix it.
>>>
>>> Best regards,
>>> Armin
>>
>>
>> It needs to be fixed in paraview - it bundles mpi4py, and mpi4py uses
>> dlopen(), so mpi4py needs to be linked to -ldl.  Not sure the
>> appropriate way to fix that in paraview though.
>>
>>
>
> _______________________________________________
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Fix.patch
Type: text/x-patch
Size: 639 bytes
Desc: not available
URL: <http://www.paraview.org/pipermail/paraview/attachments/20140210/464496cc/attachment.bin>


More information about the ParaView mailing list