Re: [gtk-osx-devel] Linking on El Capitan




On Feb 17, 2016, at 10:27 AM, philip chimento gmail com wrote:

I've run into a problem linking with ICU since upgrading to El Capitan. I've pasted some example output 
from building webkit2gtk3 below, but I have seen this as well on other modules that depend on icu.

This only happens when generating introspection data, not when linking the actual libraries.

[ 99%] Generating ../../WebKit2-4.0.gir
dyld: Library not loaded: libicui18n.54.dylib 
  Referenced from: /my/jhbuild/checkout/webkitgtk-2.10.4/lib/libwebkit2gtk-4.0.37.dylib 
  Reason: image not found 
Command '[u'/my/jhbuild/checkout/webkitgtk-2.10.4/Source/WebKit2/tmp-introspectilkK_K/WebKit2-4.0', 
u'--introspect-dump=/my/jhbuild/checkout/webkitgtk-2.10.4/Source/WebKit2/tmp-introspectilkK_K/functions.txt,/my/jhbuild/checkout/webkitgtk-2.10.4/Source/WebKit2/tmp-introspectilkK_K/dump.xml']'
 returned non-zero exit status -5 
make[2]: *** [WebKit2-4.0.gir] Error 1

Looking at the library I see that other libraries are referenced by their full path, but ICU is not:

$ otool -L lib/libwebkit2gtk-4.0.37.dylib 
lib/libwebkit2gtk-4.0.37.dylib: 
/my/jhbuild/checkout/webkitgtk-2.10.4/lib/libwebkit2gtk-4.0.37.dylib (compatibility version 37.0.0, current 
version 37.11.7) 
/my/jhbuild/install/lib/libgtk-3.0.dylib (compatibility version 1601.0.0, current version 1601.7.0) 
/my/jhbuild/install/lib/libgdk-3.0.dylib (compatibility version 1601.0.0, current version 1601.7.0) 
[...snip...]
libicui18n.54.dylib (compatibility version 54.0.0, current version 54.1.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) 
libicuuc.54.dylib (compatibility version 54.0.0, current version 54.1.0) 
[...snip...]

(local paths redacted to /my/jhbuild/checkout and /my/jhbuild/install)

So I wonder if DYLD_LIBRARY_PATH is getting clobbered by SIP somewhere on the way to the g-ir-scanner tool. 
I am using a jhbuild-built bash in jhbuild, not /bin/bash.

Probably. Bash isn't the only thing that SIP affects: Pretty much anything in /bin or /usr/bin will have DYLD 
environment variables stripped, including Python and Perl.

Run otool -L on libicuuc. The problem may be its install_name rather than with g-ir-scanner.

Regards,
John Ralls




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]