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

Reply via email to