[Pythonmac-SIG] with libraries compiled with intel compilers, intel libguide.dylib not included
Boyd Waters
bwaters at nrao.edu
Mon Aug 28 00:39:33 CEST 2006
From: bwaters at nrao.edu
Subject: install_name changing
Date: August 27, 2006 4:28:22 PM MDT
To: white at cc.jyu.fi
Cc: pythonmac-sig at python.org
Dan:
I saw your recent post on the Python-Mac SIG regarding the difficulty
that you are having using libguide.dylib in a Python application,
since you've built Python with the Intel compiler.
I think that you're on the right track with the install_name_tool --
this is what I had to do to get the Intel binaries working:
> # cd /opt/intel/cc/9.1.029/lib
>
> # for i in *.dylib
> > do
> > install_name_tool -id $(pwd)/$i $i
> > done
>
Then I had to change the references to libirc.dylib in libimf and
libsvml
> for i in libimf.dylib libsvml.dylib
> > do
> > install_name_tool -change libirc.dylib $(pwd)/libirc.dylib $i
> > done
>
When I was done, this is what it looks like:
> $ otool -L /opt/intel/cc/9.1.029/lib/*.dylib
> /opt/intel/cc/9.1.029/lib/libguide.dylib:
> /opt/intel/cc/9.1.029/lib/libguide.dylib (compatibility
> version 4.0.0, current version 4.0.0)
> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,
> current version 88.1.3)
> /opt/intel/cc/9.1.029/lib/libguide_stats.dylib:
> /opt/intel/cc/9.1.029/lib/libguide_stats.dylib
> (compatibility version 4.0.0, current version 4.0.0)
> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,
> current version 88.1.3)
> /opt/intel/cc/9.1.029/lib/libimf.dylib:
> /opt/intel/cc/9.1.029/lib/libimf.dylib (compatibility
> version 0.0.0, current version 0.0.0)
> /opt/intel/cc/9.1.029/lib/libirc.dylib (compatibility
> version 0.0.0, current version 0.0.0)
> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,
> current version 88.1.3)
> /opt/intel/cc/9.1.029/lib/libirc.dylib:
> /opt/intel/cc/9.1.029/lib/libirc.dylib (compatibility
> version 0.0.0, current version 0.0.0)
> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,
> current version 88.1.3)
> /opt/intel/cc/9.1.029/lib/libsvml.dylib:
> /opt/intel/cc/9.1.029/lib/libsvml.dylib (compatibility
> version 0.0.0, current version 0.0.0)
> /opt/intel/cc/9.1.029/lib/libirc.dylib (compatibility
> version 0.0.0, current version 0.0.0)
>
>
Every dynamic library is referenced using the full path.
In my distribution, I have to re-distribute these libraries, and put
them in /opt/intel/cc/9.1.029/lib on the client.
This is not the best option, but it works for the numerous open-
source packages that we use for our image-processing system.
Good luck!
- boyd
Boyd Waters
Scientific Programmer
National Radio Astronomy Observatory
Socorro, New Mexico
http://www.aoc.nrao.edu/
More information about the Pythonmac-SIG
mailing list