GNOME Bugzilla – Bug 656026
Fails to build
Last modified: 2012-02-13 12:00:21 UTC
On a fresh jhbuild rebuild of master, into an empty prefix: /bin/bash ../../libtool --mode=install /home/me/.local/bin/install-check libebook-1.2.la '/opt/gnome/_jhbuild/root-evolution-data-server/opt/gnome/lib64' libtool: install: warning: relinking `libebook-1.2.la' libtool: install: (cd /home/me/gnome3/evolution-data-server/addressbook/libebook; /bin/bash /home/me/gnome3/evolution-data-server/libtool --silent --tag CC --mode=relink gcc -g -O0 -Wl,-rpath=/opt/gnome/lib64 -version-info 15:1:3 -L/opt/gnome/lib64 -Wl,--no-undefined -o libebook-1.2.la -rpath /opt/gnome/lib64 libebook_1_2_la-e-book-marshal.lo libebook_1_2_la-e-address-western.lo libebook_1_2_la-e-book-client.lo libebook_1_2_la-e-book-client-view.lo libebook_1_2_la-e-book-query.lo libebook_1_2_la-e-book-view.lo libebook_1_2_la-e-book.lo libebook_1_2_la-e-contact.lo libebook_1_2_la-e-destination.lo libebook_1_2_la-e-name-western.lo libebook_1_2_la-e-vcard.lo ../../addressbook/libegdbus/libegdbus-book.la ../../camel/libcamel-1.2.la ../../libedataserver/libedataserver-1.2.la -pthread -L/opt/gnome/lib64 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lgconf-2 -lglib-2.0 -pthread -L/opt/gnome/lib64 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lsqlite3 -lz -L/usr/lib -lkrb5 -lk5crypto -lcom_err -lgssapi_krb5 -inst-prefix-dir /opt/gnome/_jhbuild/root-evolution-data-server) .libs/libebook_1_2_la-e-book-client.o: In function `backend_property_changed_cb': /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:403: undefined reference to `e_gdbus_templates_decode_two_strings' /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:408: undefined reference to `e_client_emit_backend_property_changed' .libs/libebook_1_2_la-e-book-client.o: In function `book_client_get_backend_property': /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:936: undefined reference to `e_client_get_backend_property_from_cache' /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:938: undefined reference to `e_client_finish_async_without_dbus' /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:940: undefined reference to `e_client_proxy_call_string_with_res_op_data' .libs/libebook_1_2_la-e-book-client.o: In function `book_client_get_backend_property_finish': /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:962: undefined reference to `e_client_update_backend_property_cache' .libs/libebook_1_2_la-e-book-client.o: In function `book_client_get_backend_property_sync': /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:990: undefined reference to `e_client_get_backend_property_from_cache' /home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:1002: undefined reference to `e_client_update_backend_property_cache' ../../addressbook/libegdbus/.libs/libegdbus-book.a(libegdbus_book_la-e-gdbus-book.o): In function `e_gdbus_book_encode_set_backend_property': /home/me/gnome3/evolution-data-server/addressbook/libegdbus/e-gdbus-book.c:377: undefined reference to `e_gdbus_templates_encode_two_strings' ../../addressbook/libegdbus/.libs/libegdbus-book.a(libegdbus_book_la-e-gdbus-book.o): In function `e_gdbus_book_decode_set_backend_property': /home/me/gnome3/evolution-data-server/addressbook/libegdbus/e-gdbus-book.c:384: undefined reference to `e_gdbus_templates_decode_two_strings' collect2: ld returned 1 exit status libtool: install: error: relink `libebook-1.2.la' with the above command before installing it make[4]: *** [install-libLTLIBRARIES] Error 1 make[4]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook/libebook' make[3]: *** [install-am] Error 2 make[3]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook/libebook' make[2]: *** [install] Error 2 make[2]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook/libebook' make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook' make: *** [install-recursive] Error 1
The function "e_gdbus_templates_decode_two_strings" is part of libedataserver-1.2.la, which is linked to libebook-1.2.la, as $(top_builddir)/libedataserver/libedataserver-1.2.la. I see it in the file. it doesn't make much sense it being missed. Could you make sure your jhbuild rebuild the libedataserver files too? This change was added very recently.
Hi Milan, Yes, it does rebuild/link all files. And note that this failure happens at install time, not build or link time. The problem from what I can tell is that a libedataserver-1.2.la file also already exists in an older version (without symbols) in $prefix, and libtool does not seem to know to install the new libedataserver-1.2.la file before libebook-1.2.la file. The order really ought not to matter for how the files are install'd, except that libtool has this "nice feature" that it notices the library in the prefix is different and will automatically try to re-link the files being installed against it (note the first "Warning" in the above), and the symbols are missing there, hence the failure. There was a similar problem with the camel filter provider code a couple weeks back, and the "workaround" is the same, to nuke the prefix and rebuild everything. But ultimately the fault is either in the autofoo makefiles for not properly expressing the dependencies, or perhaps libtool for not realizing this. To reproduce the problem: * nuke your prefix and destdir * rewind/reset/clean eds to before the symbols were introduced * jhbuild and install * fastforward * jhbuild and install again
Works for me. It might be something with jhbuild then? I'm not using jhbuild, I'm building evo on my own, and I did exactly what you wrote above. I was forced to run ./autogen.sh again, due to change in configure.ac, which maybe did the trick?
same problem again today, different symbols: .libs/libcamelpop3_la-camel-pop3-folder.o: In function `pop3_folder_synchronize_sync': /home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-folder.c:544: undefined reference to `camel_service_get_settings' .libs/libcamelpop3_la-camel-pop3-settings.o: In function `camel_pop3_settings_get_type': /home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:41: undefined reference to `camel_store_settings_get_type' /home/me/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:41: undefined reference to `camel_network_settings_get_type' .libs/libcamelpop3_la-camel-pop3-settings.o: In function `pop3_settings_set_property': /home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:80: undefined reference to `camel_network_settings_get_type' /home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:80: undefined reference to `camel_network_settings_set_security_method' .libs/libcamelpop3_la-camel-pop3-settings.o: In function `pop3_settings_get_property': /home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:127: undefined reference to `camel_network_settings_get_type' /home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:127: undefined reference to `camel_network_settings_get_security_method' .libs/libcamelpop3_la-camel-pop3-store.o: In function `connect_to_server': /home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-store.c:106: undefined reference to `camel_service_get_settings' collect2: ld returned 1 exit status i suspect it may be a difference in how jhbuild builds and installs vs how you are doing it. i.e. you're donig something along the lines of ./autogen.sh ./configure make make install and jhbuild is more like ./autogen.sh ./configure make make install DESTDIR=somewhere-not-prefix something-that-copies-destdir-to-prefix
I suggest getting distcheck working again, even if it means temporarily disabling the address book and calendar tests which have been semi-broken since the move to XDG base directories. "make destdir" also uses DESTDIR when installing. It should flush out any problems.
(In reply to comment #5) > "make destdir" also uses DESTDIR when installing. Grr... "make distcheck" I meant.
seanius: Do you still run into this issue or can this be closed as OBSOLETE?
No feedback => OBSOLETE.