[petsc-dev] Mac OS X El Capitan does not propagate DYLD_LIBRARY_PATH from parent process

Andrs, David david.andrs at inl.gov
Mon Oct 5 10:51:21 CDT 2015


On Mon, Oct 5, 2015 at 9:20 AM, Satish Balay <balay at mcs.anl.gov> wrote:

> Thanks for the note.
>
> This sounds more like a 'broken compiler' issue.
>

​It looks like it​ when the compiler is invoked from an interpreter (like
bash or python). If we run clang from the command line directly, it works
fine.


>
> PETSc buildsystem attempts to not rely on DYLD_LIBRARY_PATH.
>
> i.e whenever possible - it converts all '-L/foo to '-L/foo
> -Wl,-rpath,/foo' in the link line.
>
> However if 'mpicc/cc' is provided - it assumes it works - and doesn't
> try to detect its internal libs - so it won't add -Wl-rpath to such
> internal paths - so its likely to fail with mpicc that relies on
> DYLD_LIBRARY_PATH
>
> [Workarround is to add 'LIBS=-Wl,/foo' option to configure]
>
> I had recently run --download-mpich build [with default compilers] on
> 'El Capitan' - and that ran fine.
>
> BTW: is libiomp5.dylib a clang library? [normally I see this with intel
> compiler]
>

​Sorry for confusion, the lib name is libomp.dylib. We had to build this
library ourselves to enable openmp and then clang version 3.5.x was able to
use it (I think we had to use some special branch with older versions of
clang). Obviously, we need to change the way we build clang, so it does not
rely on DYLD_LIBRAY_PATH and all will be fine.
​

> Also - could you send us the configure.log for a build that breaks with it?
>
[so that we can see what exactly breaks on El..]
>

​It is the typical:

Library not loaded:
...
Reason: image not found

​Log attached​.
--
David



>
> Satish
>
> On Mon, 5 Oct 2015, Andrs, David wrote:
>
> > Hi guys!
> >
> > If you are not aware of this yet, DYLD_LIBRARY_PATH does not get
> propagated
> > into the child processes on El Capitan. See
> > https://forums.developer.apple.com/message/31148
> >
> > I am not sure if that has some implications for your build system, but we
> > were not able to build PETSc because one of our libraries
> (libiomp5.dylib)
> > relied on it and the build system failed detecting the compiler (we ship
> > our version of clang with MOOSE).
> >
> > I know, it is not a build system issue, it is how we build some
> underlying
> > piece. I just wanted to make you are aware of this.
> >
> > --
> > David
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20151005/1e1f33d3/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: configure.log
Type: application/octet-stream
Size: 49192 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20151005/1e1f33d3/attachment.obj>


More information about the petsc-dev mailing list