GNOME Bugzilla – Bug 759457
Fails to build with --enable-gtk-doc due to missing symbol
Last modified: 2015-12-14 16:10:05 UTC
Trying to build yelp with --enable-gtk-doc from the 3.18.1 tarball fails since it can't find yelp_uri_get_type symbol, now inside the libyelpcommon.so shared object. See the error I get: mario:~/work/gnome/yelp/docs/libyelp $ make _source_dir='' ; \ for i in ../../libyelp ; do \ _source_dir="${_source_dir} --source-dir=$i" ; \ done ; \ gtkdoc-scan --module=libyelp --ignore-headers="yelp-common-types.h yelp-debug.h yelp-types.h " ${_source_dir} --deprecated-guards="G_DISABLE_DEPRECATED" --rebuild-types if grep -l '^..*$' libyelp.types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "setup-build.stamp ../../libyelp/yelp-bookmarks.h ../../libyelp/yelp-bz2-decompressor.h ../../libyelp/yelp-common-types.h ../../libyelp/yelp-debug.h ../../libyelp/yelp-docbook-document.h ../../libyelp/yelp-document.h ../../libyelp/yelp-error.h ../../libyelp/yelp-help-list.h ../../libyelp/yelp-info-document.h ../../libyelp/yelp-info-parser.h ../../libyelp/yelp-lzma-decompressor.h ../../libyelp/yelp-magic-decompressor.h ../../libyelp/yelp-mallard-document.h ../../libyelp/yelp-man-document.h ../../libyelp/yelp-man-parser.h ../../libyelp/yelp-marshal.h ../../libyelp/yelp-search-entry.h ../../libyelp/yelp-settings.h ../../libyelp/yelp-simple-document.h ../../libyelp/yelp-sqlite-storage.h ../../libyelp/yelp-storage.h ../../libyelp/yelp-transform.h ../../libyelp/yelp-types.h ../../libyelp/yelp-uri-builder.h ../../libyelp/yelp-uri.h ../../libyelp/yelp-view.h ../../libyelp/yelp-bookmarks.c ../../libyelp/yelp-bz2-decompressor.c ../../libyelp/yelp-common-types.c ../../libyelp/yelp-debug.c ../../libyelp/yelp-docbook-document.c ../../libyelp/yelp-document.c ../../libyelp/yelp-error.c ../../libyelp/yelp-help-list.c ../../libyelp/yelp-info-document.c ../../libyelp/yelp-info-parser.c ../../libyelp/yelp-lzma-decompressor.c ../../libyelp/yelp-magic-decompressor.c ../../libyelp/yelp-mallard-document.c ../../libyelp/yelp-man-document.c ../../libyelp/yelp-man-parser.c ../../libyelp/yelp-marshal.c ../../libyelp/yelp-search-entry.c ../../libyelp/yelp-settings.c ../../libyelp/yelp-simple-document.c ../../libyelp/yelp-sqlite-storage.c ../../libyelp/yelp-storage.c ../../libyelp/yelp-transform.c ../../libyelp/yelp-types.c ../../libyelp/yelp-uri-builder.c ../../libyelp/yelp-uri.c ../../libyelp/yelp-view.c" = "0"; then \ if test "x" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="/bin/bash ../../libtool --tag=CC --mode=compile gcc -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -g" LD="/bin/bash ../../libtool --tag=CC --mode=link gcc -lgobject-2.0 -lglib-2.0 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,defs -Wl,-O1 -Wl,--as-needed" RUN="/bin/bash ../../libtool --mode=execute" CFLAGS="-pthread -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/libxml2 -I/usr/include/webkitgtk-4.0 -I/usr/include/libsoup-2.4 -I../../libyelp -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -g" LDFLAGS="-lbz2 -llzma -lexslt -lxslt -lxml2 -lsqlite3 -lwebkit2gtk-4.0 -lgtk-3 -lsoup-2.4 -ljavascriptcoregtk-4.0 -lgdk-3 -latk-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgio-2.0 -lgobject-2.0 -lglib-2.0 ../../libyelp/libyelp.la -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,defs -Wl,-O1 -Wl,--as-needed" \ gtkdoc-scangobj $scanobj_options --module=libyelp; \ else \ for i in libyelp.args libyelp.hierarchy libyelp.interfaces libyelp.prerequisites libyelp.signals ; do \ test -f $i || touch $i ; \ done \ fi /usr/bin/ld: .libs/libyelp-scan.o: undefined reference to symbol 'yelp_uri_get_type' /home/mario/work/gnome/yelp/libyelp/.libs/libyelpcommon.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status Linking of scanner failed: make: *** [scan-build.stamp] Error 1 Not 100% sure, but could be related to bug 757061
Created attachment 317379 [details] [review] Patch proposal See attached the patch that fixed the issue for me, still applies on master
that's a duplicate of https://bugzilla.gnome.org/show_bug.cgi?id=756648 which was rejected
Thanks, I'll comment in that issue then *** This bug has been marked as a duplicate of bug 756648 ***