mwfunk at gmail.com
Thu Apr 29 09:46:45 PDT 2010
On Apr 29, 2010, at 8:55 AM, John B Brown wrote:
> jbb at pinball3:~
> (7): % locate libtiff
> /Library/Printers/hp/Utilities/HPPU Plugins/ZMeasurement.assistant/Contents/Resources/libtiff_copyright.txt
The libtiff in /usr/lib could definitely be a problem, I wonder if that's what's getting loaded instead of the one in the ImageIO directory. You can tell its version by doing an 'otool -L /usr/lib/libtiff.dylib'. In general /usr/lib is the domain of the OS vendor, nothing should be going in there aside from what the OS installer puts there (there is no /usr/lib/libtiff* on a stock system). That's why MacPorts puts everything under /opt/local by default.
Actually, from a previous email you said that your DYLD_LIBRARY_PATH was set to the following:
You don't need to have /usr/lib in there (or shouldn't need it). dyld uses full pathnames embedded in the binary header to resolve
references to shared libraries. DYLD_LIBRARY_PATH is used to override this behavior. There's no need to set it at all unless you're debugging a different build of a library or otherwise want to forcibly change which shared libraries are loaded from which directories. You probably don't need to define DYLD_LIBRARY_PATH at all, and probably shouldn't be setting it.
By putting a custom build of libtiff in /usr/lib, and including /usr/lib in DYLD_LIBRARY_PATH, anything that needs to load libtiff.dylib will load your custom build of libtiff instead of the one it was intended to run with. By default the filesystem is case-preserving but not case-sensitive ("LS" works just as well as "ls"), so libtiff.dylib looks just like libTIFF.dylib to dyld when it's resolving references for ImageIO.
More information about the macports-users