[mpich-devel] --enable-wrapper-rpath not working

Jeff Hammond jeff.science at gmail.com
Wed Dec 17 14:28:05 CST 2014


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



-- 
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/


More information about the devel mailing list