-
Notifications
You must be signed in to change notification settings - Fork 868
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Java bindings not loading in OS X 10.11 (El Capitan) #1220
Comments
@shurickdaryin did you configure with |
@ggouaillardet I reconfigured with --enable-mpirun-prefix-by-default and rebuilt openmpi and my app, but still get the same error. |
were you able to test with Yosemite ? and did you get the same error ? |
No, it's El Capitan all around me. But I have tried to hard code the path to libmpi.dylib in the indicated file and it works. So the proposed fix should also work. |
This has been run on one node. |
@hppritcha Can you confirm? If so, it may be necessary to use installdirs to find libmpi at run time. |
As I recall one needs to pretend LD_LIBRARY_PATH with location of OMPI install lib on os-x. It's owing to the dlopen of libmpi iin the JNI code. This isn't necessary on Linux. I don't think this is specific to el capitan. I will update the java FAQ. |
Setting LD_LIBRARY_PATH or DYLD_LIBRARY_PATH does not change anything, as these variables are not exported to child processes. This behaviour is new with El Capitan. I have both LD_LIBRARY_PATH and DYLD_LIBRARY_PATH set to /opt/openmpi/lib. With this setting, "otool -L libmpi.dylib" returns an error, while "otool -L /opt/openmpi/lib/libmpi.dylib" correctly reports library and its dependencies. Another manifestation of this behaviour is that "LD_LIBRARY_PATH=foo env | grep LD" doesn't print anything, while "_LD_LIBRARY_PATH=foo env | grep LD" prints "_LD_LIBRARY_PATH=foo". |
@hppritcha Ouch -- it sounds like El Cap made a Big Change in this area! This code might need to be updated per what I said above (i.e., use installdirs to find libmpi)... |
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path (set at configure time) Fixes open-mpi#1220 Thanks Alexander Daryin for reporting this
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi#1220 Thanks Alexander Daryin for reporting this
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi#1220 Thanks Alexander Daryin for reporting this
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi#1220 Thanks Alexander Daryin for reporting this
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi#1220 Thanks Alexander Daryin for reporting this
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi/ompi#1220 Thanks Alexander Daryin for reporting this (cherry picked from commit open-mpi/ompi@e918d75)
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi/ompi#1220 Thanks Alexander Daryin for reporting this (back-ported from commit open-mpi/ompi@e918d75)
java: try do dlopen libmpi with the full path Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi#1220 Thanks Alexander Daryin for reporting this Update symbol-hiding script btl/sm: rename file after file descriptor has been closed. Thanks George for spotting this.
java: try do dlopen libmpi with the full path Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more propagated to children, so try to dlopen libmpi with the full path using the directory of libmpi_java Fixes open-mpi#1220 Thanks Alexander Daryin for reporting this Update symbol-hiding script btl/sm: rename file after file descriptor has been closed. Thanks George for spotting this.
…lock-args v2.x: ompi/datatype: Fix args of HINDEXED_BLOCK
OS X 10.11 does not allow DYLD_LIBRARY_PATH environment variable to be propagated to child processes. As such, it is not possible to find libmpi.dylib:
See oracle/node-oracledb#231, http://apple.stackexchange.com/questions/215030/el-capitan-make-check-dyld-library-path
A workaround is to copy libmpi.dylib to the current directory.
Probably a full path name should be used to load libmpi.dylib to avoid using DYLD_LIBRARY_PATH.
The text was updated successfully, but these errors were encountered: