[mpich-devel] --enable-wrapper-rpath not working
Kenneth Raffenetti
raffenet at mcs.anl.gov
Wed Dec 17 16:00:34 CST 2014
We've got an open bug related to using the Intel Fortran compiler on OSX.
http://trac.mpich.org/projects/mpich/ticket/2024
What's missing from that bug description is that it appears that the
convenience libraries (mpl, romio, etc.) are not properly embedded when
linking with ifort on OSX. Your error output below is consistent with
this issue. Is it possible to disable fortran in your MPICH build in
this instance? That would at least confirm the source of the problem.
Ken
On 12/17/2014 02:28 PM, Jeff Hammond wrote:
> This is what I do right now to get it working:
>
> ../configure --prefix=/Users/jrhammon/Work/MADNESS/install-intel
> CC=icc CXX=icpc --with-tbb=/opt/intel/composer_xe_2015/tbb --with-mkl
> CPPFLAGS=-I/opt/mpich/dev/intel/default/include
> LDFLAGS=/opt/mpich/dev/intel/default/lib/libmpicxx.a
> /opt/mpich/dev/intel/default/lib/libmpi.a
> /opt/mpich/dev/intel/default/lib/libpmpi.a MPICC=icc MPICXX=icpc
>
> If I do the more straightforward invocation:
>
> ../configure --prefix=/Users/jrhammon/Work/MADNESS/install-intel
> CC=icc CXX=icpc --with-tbb=/opt/intel/composer_xe_2015/tbb --with-mkl
> MPICC=/opt/mpich/dev/intel/default/bin/mpicc
> MPICXX=/opt/mpich/dev/intel/default/bin/mpicxx
>
> Then configure fails like this:
>
> mpicc
> configure:5840: checking that the
> /opt/mpich/dev/intel/default/bin/mpicc linker works
> configure:5853: /opt/mpich/dev/intel/default/bin/mpicc -o conftest -g
> -O2 conftest.c >&5
> Undefined symbols for architecture x86_64:
> "_MPIO_Err_return_file", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPIR_ROMIO_Get_file_errhand", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPIR_ROMIO_Set_file_errhand", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPIX_File_iread_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPIX_File_iread_at_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPIX_File_iwrite_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPIX_File_iwrite_at_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_c2f", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_close", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_delete", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_f2c", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_amode", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_atomicity", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_byte_offset", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_group", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_info", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_position", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_position_shared", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_size", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_type_extent", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_get_view", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_iread", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_iread_at", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_iread_shared", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_iwrite", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_iwrite_at", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_iwrite_shared", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_open", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_preallocate", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_all_begin", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_all_end", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_at", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_at_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_at_all_begin", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_at_all_end", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_ordered", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_ordered_begin", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_ordered_end", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_read_shared", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_seek", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_seek_shared", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_set_atomicity", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_set_info", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_set_size", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_set_view", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_sync", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_all_begin", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_all_end", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_at", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_at_all", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_at_all_begin", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_at_all_end", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_ordered", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_ordered_begin", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_ordered_end", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_File_write_shared", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPI_Register_datarep", referenced from:
> import-atom in libmpi.dylib
> import-atom in libpmpi.dylib
> "_MPL_TrSetMaxMem", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_env2bool", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_env2int", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_env2range", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_env2str", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_large_readv", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_large_writev", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_strncpy", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trDebugLevel", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trcalloc", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trdump", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trfree", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trid", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trinit", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trlevel", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trmalloc", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trrealloc", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trspace", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trstrdup", referenced from:
> import-atom in libpmpi.dylib
> "_MPL_trvalid", referenced from:
> import-atom in libpmpi.dylib
> "_PMPIX_File_iread_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPIX_File_iread_at_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPIX_File_iwrite_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPIX_File_iwrite_at_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_close", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_delete", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_amode", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_atomicity", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_byte_offset", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_group", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_info", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_position", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_position_shared", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_size", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_type_extent", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_get_view", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_iread", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_iread_at", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_iread_shared", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_iwrite", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_iwrite_at", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_iwrite_shared", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_open", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_preallocate", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_all_begin", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_all_end", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_at", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_at_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_at_all_begin", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_at_all_end", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_ordered", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_ordered_begin", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_ordered_end", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_read_shared", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_seek", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_seek_shared", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_set_atomicity", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_set_info", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_set_size", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_set_view", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_sync", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_all_begin", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_all_end", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_at", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_at_all", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_at_all_begin", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_at_all_end", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_ordered", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_ordered_begin", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_ordered_end", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_File_write_shared", referenced from:
> import-atom in libpmpi.dylib
> "_PMPI_Register_datarep", referenced from:
> import-atom in libpmpi.dylib
> ld: symbol(s) not found for architecture x86_64
>
> Recall:
>
> /opt/mpich/dev/intel/default/bin/mpicc -show
> icc -Wl,-flat_namespace -I/opt/mpich/dev/intel/default/include
> -L/opt/mpich/dev/intel/default/lib -lmpi -lpmpi
>
> Thanks,
>
> Jeff
>
> On Wed, Dec 17, 2014 at 12:18 PM, Kenneth Raffenetti
> <raffenet at mcs.anl.gov> wrote:
>> AFAICT, the Darwin linker includes the full path to all dynamic libraries
>> needed by the library by default. Rpath flags shouldn't be strictly
>> necessary.
>>
>> mpich-mac1:pt2pt raffenet$ otool -L large_message
>> large_message:
>> /Users/raffenet/mpich/i/lib/libmpi.0.dylib (compatibility version
>> 1.0.0, current version 1.0.0)
>> /Users/raffenet/mpich/i/lib/libpmpi.0.dylib (compatibility version
>> 1.0.0, current version 1.0.0)
>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
>> version 1213.0.0)
>>
>> The concept of rpath was added in OSX 10.4 apparently, but I don't see much
>> in the way of adoption in other open source projects. Are your binaries
>> running into library not found issues?
>>
>> Ken
>>
>>
>> On 12/17/2014 11:41 AM, Jeff Hammond wrote:
>>>
>>> Am I doing something wrong here? Why is the rpath option not being
>>> added to the wrapper script? This issue makes it impossible for me to
>>> use MPICH on my laptop without excessive tedium.
>>>
>>> Thanks,
>>>
>>> Jeff
>>>
>>> mobl:build-intel jrhammon$ /opt/mpich/dev/intel/default/bin/mpichversion
>>> MPICH Version: 3.2a2
>>> MPICH Release date: unreleased development copy
>>> MPICH Device: ch3:nemesis
>>> MPICH configure: CC=icc CXX=icpc FC=ifort F77=ifort
>>> --enable-fortran
>>> --enable-threads=runtime --enable-g=dbg --with-pm=hydra
>>> --prefix=/opt/mpich/dev/intel/default --enable-wrapper-rpath
>>> --enable-static --enable-shared
>>> MPICH CC: icc -g -O2
>>> MPICH CXX: icpc -g -O2
>>> MPICH F77: ifort -g -O2
>>> MPICH FC: ifort -g -O2
>>>
>>> mobl:build-intel jrhammon$ /opt/mpich/dev/intel/default/bin/mpicc -show
>>> icc -Wl,-flat_namespace -I/opt/mpich/dev/intel/default/include
>>> -L/opt/mpich/dev/intel/default/lib -lmpi -lpmpi
>>>
>> _______________________________________________
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/devel
>
>
>
More information about the devel
mailing list