Hi,
I'm using CMake 3.0.2 on OS X 10.9.4. When I do a "make install", it's somehow
corrupting some of my libraries at install time.
Here is what otool reports for the library in my build directory - that is, the
state of the library prior to installation:
$ otool -L libOpenMMAmoebaCUDA.dylib
libOpenMMAmoebaCUDA.dylib:
/Users/peastman/workspace/openmm/bin-release/libOpenMMAmoebaCUDA.dylib
(compatibility version 0.0.0, current version 0.0.0)
@rpath/CUDA.framework/Versions/A/CUDA (compatibility version 1.1.0,
current version 6.0.37)
/Users/peastman/workspace/openmm/bin-release/libOpenMM.dylib
(compatibility version 0.0.0, current version 0.0.0)
@rpath/libcudart.6.0.dylib (compatibility version 0.0.0, current
version 6.0.37)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1197.1.1)
/Users/peastman/workspace/openmm/bin-release/libOpenMMCUDA.dylib
(compatibility version 0.0.0, current version 0.0.0)
/Users/peastman/workspace/openmm/bin-release/libOpenMMAmoeba.dylib
(compatibility version 0.0.0, current version 0.0.0)
/usr/local/cuda/lib/libcuda.dylib (compatibility version 1.1.0, current
version 6.0.37)
@rpath/libcufft.6.0.dylib (compatibility version 0.0.0, current version
6.0.37)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version
120.0.0)
No problems. Everything looks ok. Now here is what it reports for the same
library in the install directory - the is, the state of the library after
installation:
$ otool -L /usr/local/openmm/lib/plugins/libOpenMMAmoebaCUDA.dylib
/usr/local/openmm/lib/plugins/libOpenMMAmoebaCUDA.dylib:
@rpath/libOpenMMAmoebaCUDA.dylib (compatibility version 0.0.0, current
version 0.0.0)
@rpath/CUDA.framework/Versions/A/CUDA (compatibility version 1.1.0,
current version 6.0.37)
@rpath/libOpenMM.dylib (compatibility version 0.0.0, current version
0.0.0)
@rpath/libcudart.6.0.dylib (compatibility version 0.0.0, current
version 6.0.37)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1197.1.1)
@rpath/libOpenMMCUDA.dylib (compatibility version 0.0.0, current
version 0.0.0)
@rpath/libOpenMMAmoeba.dylib (compatibility version 0.0.0, current
version 0.0.0)
/usr/local/cuda/lib/libcuda.dylib (compatibility version 1.1.0, current
version 6.0.37)
@rpath/libcufft.6.0.dylib (compatibility version 0.0.0, current version
6.0.37)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version
120.0.0)
load command 22 size zero (can't advance to other load commands)
As expected, the absolute paths have been replaced by relative paths. But it
also now reports an error message at the end about "load command 22 size zero".
This error does not prevent the library from actually being loaded. It seems
to work fine as far as that is concerned. However, if I try to use
install_name_tool to make any further changes to the paths in the library it
fails with an error message:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool:
for architecture i386 object:
/usr/local/openmm/lib/plugins/libOpenMMAmoebaCUDA.dylib malformed object (load
command 22 cmdsize is zero)
Any idea what's going on?
Thanks!
Peter
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake