After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 612924 - Build failure: missing link against direct dependent libs
Build failure: missing link against direct dependent libs
Status: RESOLVED INCOMPLETE
Product: yelp
Classification: Applications
Component: General
unspecified
Other Mac OS
: Normal normal
: ---
Assigned To: Yelp maintainers
Yelp maintainers
Depends on:
Blocks:
 
 
Reported: 2010-03-15 08:41 UTC by Daniel Macks
Modified: 2010-10-11 02:03 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Daniel Macks 2010-03-15 08:41:08 UTC
Building the webkit branch (clone of debian's 2.28.0+webkit package) on OS X 10.4/ppc (with all dependencies at the level of GNOME2.28 current releases) fails during final linking.

/bin/sh ../libtool --tag=CC   --mode=link gcc -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/lib/fontconfig2/include -I/sw/include/gconf/2 -I/sw/include/gtk-unix-print-2.0 -I/sw/include/gtk-2.0 -I/sw/include/atk-1.0 -I/sw/include/cairo -I/sw/include/pango-1.0 -I/sw/lib/gtk-2.0/include -I/sw/include/pixman-1 -I/sw/include/freetype2 -I/sw/include -I/sw/include/libxml2 -I/sw/include/startup-notification-1.0 -I/sw/include/dbus-1.0 -I/sw/lib/dbus-1.0/include -I/sw/include/rarian -I/usr/X11R6/include -I/usr/X11/include  -Wall -Wno-uninitialized -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare   -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/lib/fontconfig2/include -I/sw/include/webkit-1.0 -I/sw/include/gtk-2.0 -I/sw/include/libsoup-2.4 -I/sw/lib/gtk-2.0/include -I/sw/include/atk-1.0 -I/sw/include/cairo -I/sw/include/pango-1.0 -I/sw/include/pixman-1 -I/sw/include/freetype2 -I/sw/include -I/usr/X11R6/include -I/usr/X11/include  -g -O2  -L/sw/lib -o yelp yelp-yelp-base.o yelp-yelp-bookmarks.o yelp-yelp-debug.o yelp-yelp-error.o yelp-yelp-html.o yelp-yelp-io-channel.o yelp-yelp-settings.o yelp-yelp-utils.o yelp-yelp-window.o yelp-yelp-marshal.o yelp-yelp-main.o yelp-yelp-page.o yelp-yelp-transform.o yelp-yelp-document.o yelp-yelp-toc.o yelp-yelp-docbook.o yelp-yelp-db-print.o yelp-yelp-mallard.o yelp-yelp-man-parser.o yelp-yelp-man.o yelp-yelp-info.o yelp-yelp-info-parser.o yelp-gtkentryaction.o yelp-yelp-search.o yelp-yelp-search-parser.o yelp-eggdesktopfile.o yelp-eggsmclient.o yelp-eggsmclient-xsmp.o   -L/sw/lib -L/sw/lib/fontconfig2/lib -lgconf-2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgmodule-2.0 -lexslt -lxslt -lz -liconv -lm -lxml2 -lstartup-notification-1 -ldbus-glib-1 -ldbus-1 -lpthread -lgobject-2.0 -lglib-2.0 -lrarian   -lz -lbz2  -L/sw/lib -L/sw/lib/fontconfig2/lib -lwebkit-1.0 -lgtk-x11-2.0 -lsoup-2.4 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lSM -lICE  -L/usr/X11R6/lib -lX11  -lSM -L/usr/X11/lib -L/usr/X11R6/lib 
libtool: link: gcc -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/lib/fontconfig2/include -I/sw/include/gconf/2 -I/sw/include/gtk-unix-print-2.0 -I/sw/include/gtk-2.0 -I/sw/include/atk-1.0 -I/sw/include/cairo -I/sw/include/pango-1.0 -I/sw/lib/gtk-2.0/include -I/sw/include/pixman-1 -I/sw/include/freetype2 -I/sw/include -I/sw/include/libxml2 -I/sw/include/startup-notification-1.0 -I/sw/include/dbus-1.0 -I/sw/lib/dbus-1.0/include -I/sw/include/rarian -I/usr/X11R6/include -I/usr/X11/include -Wall -Wno-uninitialized -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/lib/fontconfig2/include -I/sw/include/webkit-1.0 -I/sw/include/gtk-2.0 -I/sw/include/libsoup-2.4 -I/sw/lib/gtk-2.0/include -I/sw/include/atk-1.0 -I/sw/include/cairo -I/sw/include/pango-1.0 -I/sw/include/pixman-1 -I/sw/include/freetype2 -I/sw/include -I/usr/X11R6/include -I/usr/X11/include -g -O2 -o yelp yelp-yelp-base.o yelp-yelp-bookmarks.o yelp-yelp-debug.o yelp-yelp-error.o yelp-yelp-html.o yelp-yelp-io-channel.o yelp-yelp-settings.o yelp-yelp-utils.o yelp-yelp-window.o yelp-yelp-marshal.o yelp-yelp-main.o yelp-yelp-page.o yelp-yelp-transform.o yelp-yelp-document.o yelp-yelp-toc.o yelp-yelp-docbook.o yelp-yelp-db-print.o yelp-yelp-mallard.o yelp-yelp-man-parser.o yelp-yelp-man.o yelp-yelp-info.o yelp-yelp-info-parser.o yelp-gtkentryaction.o yelp-yelp-search.o yelp-yelp-search-parser.o yelp-eggdesktopfile.o yelp-eggsmclient.o yelp-eggsmclient-xsmp.o  -L/sw/lib -L/sw/lib/fontconfig2/lib /sw/lib/libgconf-2.dylib /sw/lib/libexslt.dylib /sw/lib/libxslt.dylib /sw/lib/libiconv.dylib -lm /sw/lib/libxml2.dylib /sw/lib/libstartup-notification-1.dylib /sw/lib/libdbus-glib-1.dylib /sw/lib/libdbus-1.dylib -lpthread /sw/lib/librarian.dylib -lz -lbz2 /sw/lib/libwebkit-1.0.dylib /sw/lib/libgtk-x11-2.0.dylib /sw/lib/libsoup-2.4.dylib /sw/lib/libgdk-x11-2.0.dylib /sw/lib/libatk-1.0.dylib /sw/lib/pango-ft219/lib/libpangoft2-1.0.dylib /sw/lib/libgdk_pixbuf-2.0.dylib /sw/lib/pango-ft219/lib/libpangocairo-1.0.dylib /sw/lib/libcairo.dylib /sw/lib/pango-ft219/lib/libpango-1.0.dylib /sw/lib/freetype219/lib/libfreetype.dylib /sw/lib/fontconfig2/lib/libfontconfig.dylib /sw/lib/libgio-2.0.dylib /sw/lib/libgobject-2.0.dylib /sw/lib/libgmodule-2.0.dylib /sw/lib/libglib-2.0.dylib -lICE -L/usr/X11R6/lib -lX11 -lSM -L/usr/X11/lib
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning -L: directory name (/usr/X11/lib) does not exist
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols:
_libintl_gettext
_g_thread_init
_libintl_bind_textdomain_codeset
_libintl_bindtextdomain
_libintl_textdomain
collect2: ld returned 1 exit status
make[3]: *** [yelp] Error 1


3 semi-separate issues here:

1. Pedantic cleanup: passing tons of -I to linker is pointless and makes it harder to read the build log to trace actual problems. The FOO_CFLAGS from PKG_CHECK_MODULES(FOO) is called "CFLAGS" but it's really compile-stage (.c->.o) flags not general C flags (for all contexts of gcc). That's not the same as the automake/libtool meaning of a &_CFLAGS variable (which is for all contexts) compared to *_CPPFLAGS (which is for .c->.o). Saner I think to pass pPKG_CHECK_MODULES CFLAGS via makefile CPPFLAGS in src/Makefile.am.

2. src/yelp-main.c uses g_thread but configure does not check for and propagate linker flags for libgthread. Probably works on linux because some other specified dependency does link against libgthread and propagates the linker flag 
via .la file or the linker does indirect symbol resolution. Fink is following apple's precedent (along with some other distros) of scrapping .la dependencies. And darwin's linker has never allowed indirect symbol resolution (and now some linux distros' linkers are behaving that way too). Quick fix is to add gthread-2.0 to the PKG_CHECK_MODULES(YELP) list.

3. yelp uses gettext directly but doesn't explicitly link against it directly. AM_GLIB_GNU_GETTEXT checks for the proper linker flags to use and sets a INTLLIBS automake variable, so just need to pass that along with other dependencies' linker flags.
Comment 1 Shaun McCance 2010-05-18 15:32:35 UTC
Is this still a problem on master?
Comment 2 Daniel Macks 2010-05-18 19:20:41 UTC
It will be a few weeks probably before I could have a chance to play with master. Feel free to leave this alone and I'll update when I am able.
Comment 3 Fabio Durán Verdugo 2010-08-26 16:23:47 UTC
can we close this bug?
Comment 4 Daniel Macks 2010-08-26 17:05:59 UTC
I'm unable to jump to master or newer releases for the near future. May as well close and I'll reopen if it still is an issue
Comment 5 Felipe Besoaín Pino 2010-10-11 02:03:02 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for.
Thanks!