GNOME Bugzilla – Bug 786534
vala 0.37.2: undefined references in valadoc/doclets/devhelp/
Last modified: 2017-08-20 11:16:47 UTC
vala 0.37.2 fails to build for me in Ubuntu 17.10 Alpha with "-Wl,-z,defs" which is the default in the Debian/Ubuntu packaging. I am still using devhelp 3.24.0 because I had problems with devhelp 3.25 https://bugzilla.gnome.org/786153 Build log excerpt ================= make[7]: Entering directory '/<<PKGBUILDDIR>>/bootstrap/build/valadoc/doclets/devhelp' depbase=`echo doclet.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/bash ../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../../valadoc/doclets/devhelp -I../../.. -DPACKAGE_ICONDIR=\"/usr/share/valadoc/icons/\" -I../../../../../gee/ -I../../../../../libvaladoc/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/graphviz -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -O2 -MT doclet.lo -MD -MP -MF $depbase.Tpo -c -o doclet.lo ../../../../../valadoc/doclets/devhelp/doclet.c &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../../../../valadoc/doclets/devhelp -I../../.. -DPACKAGE_ICONDIR=\"/usr/share/valadoc/icons/\" -I../../../../../gee/ -I../../../../../libvaladoc/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/graphviz -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -O2 -MT doclet.lo -MD -MP -MF .deps/doclet.Tpo -c ../../../../../valadoc/doclets/devhelp/doclet.c -fPIC -DPIC -o .libs/doclet.o ../../../../../valadoc/doclets/devhelp/doclet.c: In function ‘valadoc_devhelp_doclet_real_get_icon_directory’: ../../../../../valadoc/doclets/devhelp/doclet.c:165:25: warning: variable ‘self’ set but not used [-Wunused-but-set-variable] ValadocDevhelpDoclet * self; ^~~~ ../../../../../valadoc/doclets/devhelp/doclet.c: In function ‘valadoc_devhelp_doclet_real_visit_package’: ../../../../../valadoc/doclets/devhelp/doclet.c:268:7: warning: variable ‘rt’ set but not used [-Wunused-but-set-variable] gint rt = 0; ^~ At top level: ../../../../../valadoc/doclets/devhelp/doclet.c:50:20: warning: ‘valadoc_devhelp_doclet_properties’ defined but not used [-Wunused-variable] static GParamSpec* valadoc_devhelp_doclet_properties[VALADOC_DEVHELP_DOCLET_LAST_PROPERTY]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /bin/bash ../../../libtool --tag=CC --mode=link gcc -DPACKAGE_ICONDIR=\"/usr/share/valadoc/icons/\" -I../../../../../gee/ -I../../../../../libvaladoc/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/graphviz -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -g -O2 -module -avoid-version -no-undefined -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,defs -Wl,-O1 -Wl,--as-needed -o libdoclet.la -rpath /usr/lib/x86_64-linux-gnu/valadoc/doclets/devhelp doclet.lo ../../../libvaladoc/libvaladoc-0.38.la -lgobject-2.0 -lglib-2.0 libtool: link: gcc -shared -fPIC -DPIC .libs/doclet.o -Wl,-rpath -Wl,/<<PKGBUILDDIR>>/bootstrap/build/libvaladoc/.libs -Wl,--as-needed ../../../libvaladoc/.libs/libvaladoc-0.38.so -lgobject-2.0 -lglib-2.0 -g -O2 -fstack-protector-strong -g -O2 -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -Wl,-z -Wl,defs -Wl,-O1 -pthread -Wl,-soname -Wl,libdoclet.so -o .libs/libdoclet.so .libs/doclet.o: In function `valadoc_devhelp_doclet_process_node': ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:796: undefined reference to `vala_collection_add' .libs/doclet.o: In function `valadoc_devhelp_doclet_process_compound_node': ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:686: undefined reference to `vala_collection_add' .libs/doclet.o: In function `_vala_iterable_ref0': ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:232: undefined reference to `vala_iterable_ref' .libs/doclet.o: In function `valadoc_devhelp_doclet_real_visit_package': ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:419: undefined reference to `vala_collection_get_size' ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:461: undefined reference to `vala_list_get' ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:555: undefined reference to `vala_iterable_unref' .libs/doclet.o: In function `valadoc_devhelp_doclet_instance_init': ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:986: undefined reference to `vala_array_list_new' .libs/doclet.o: In function `valadoc_devhelp_doclet_finalize': ./bootstrap/build/valadoc/doclets/devhelp/../../../../../valadoc/doclets/devhelp/doclet.c:996: undefined reference to `vala_iterable_unref' collect2: error: ld returned 1 exit status Makefile:462: recipe for target 'libdoclet.la' failed
Created attachment 358010 [details] [review] doclets: Explicitly link against libvala-*.la
Your patch fixes this issue for me. Thanks!
Attachment 358010 [details] pushed as 1c8e2dd - doclets: Explicitly link against libvala-*.la