On Wed, Feb 17, 2016 at 5:25 PM John Ralls <[email protected]> wrote:
> > > On Feb 17, 2016, at 10:27 AM, [email protected] 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. > Just to get back to you on this, indeed, it was libicuuc's install_name. Luckily ICU has a configure option to put full install paths into the install_name, I'll send a patch soon. If anyone else has this problem, remember to uninstall, cleanone, and buildone -af icu. If you don't uninstall first, your libicui18n library will link against the still-installed version with the incorrect install_name, and things still won't work. Regards, Philip
_______________________________________________ Gtk-osx-devel-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/gtk-osx-devel-list
