GNOME Bugzilla – Bug 701904
evolution-3.8.3 fails to compile: undefined reference to `e_attachment_get_description'
Last modified: 2014-01-13 00:57:07 UTC
While trying to compile 3.8.3 updating from 3.8.2 we get this error: libtool: link: x86_64-pc-linux-gnu-gcc -march=native -pipe -O2 -ggdb -fno-strict-aliasing -Wl,-O1 -Wl,--hash-style=gnu -Wl,--no-undefined -o .libs/evolution-alarm-notify evolution_alarm_notify-alarm.o evolution_alarm_notify-alarm-notify.o evolution_alarm_notify-alarm-notify-dialog.o evolution_alarm_notify-alarm-queue.o evolution_alarm_notify-config-data.o evolution_alarm_notify-notify-main.o evolution_alarm_notify-util.o -Wl,--export-dynamic -pthread -Wl,--export-dynamic -pthread -pthread -Wl,--as-needed ../../e-util/.libs/libeutil.so ../../composer/.libs/libcomposer.so ../../calendar/gui/.libs/libevolution-calendar.so ../../calendar/importers/.libs/libevolution-calendar-importers.so ../../addressbook/gui/contact-editor/.libs/libecontacteditor.so ../../addressbook/gui/contact-list-editor/.libs/libecontactlisteditor.so ../../addressbook/util/.libs/libeabutil.so -lebook-1.2 -ledata-book-1.2 -lebook-contacts-1.2 -lecal-1.2 -lical -licalss -licalvcal -lpthread -lebackend-1.2 -ledataserver-1.2 -lcamel-1.2 -lsqlite3 -lssl3 -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lsecret-1 -lgailutil-3 -lxml2 -lgnome-desktop-3 -lwebkitgtk-3.0 -lsoup-2.4 -ljavascriptcoregtk-3.0 -lnotify -lcanberra-gtk3 -lX11 -lcanberra -lgtkhtml-editor-4.0 -lgtkhtml-4.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lenchant -lgmodule-2.0 -lrt -lglib-2.0 -lcairo -pthread -Wl,-rpath -Wl,/usr/lib64/evolution/3.8 /usr/lib64/evolution/3.8/libemformat.so: undefined reference to `e_attachment_get_description' /usr/lib64/evolution/3.8/libemformat.so: undefined reference to `e_attachment_get_file_info' collect2: ld returned 1 exit status make[4]: *** [evolution-alarm-notify] Error 1 make[4]: Leaving directory `/var/tmp/portage/mail-client/evolution-3.8.3/work/evolution-3.8.3/calendar/alarm-notify' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/mail-client/evolution-3.8.3/work/evolution-3.8.3/calendar' make[2]: *** [all] Error 2 make[2]: Leaving directory `/var/tmp/portage/mail-client/evolution-3.8.3/work/evolution-3.8.3/calendar' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/mail-client/evolution-3.8.3/work/evolution-3.8.3' make: *** [all] Error 2 Maybe it's wrongly using already installed files from 3.8.2 instead of just compiled 3.8.3?!
Created attachment 246364 [details] build.log.bz2
You have some old build artifacts. e_attachment_get_description and e_attachment_get_file_info do not appear in the 3.8.3 source code. Also "make distcheck" passed when I released 3.8.3.
The package is built on a new directory, are you sure libtool is being properly used to use files from build directory instead of already installed files?
Also, I have just tried running autoreconf before building and it solves the problem, maybe there is some kind of problem with generated stuff in tarball
Created attachment 246368 [details] Diff Running libtoolize is enough, but changes don't look too deep
No, full autoreconf is needed. The problem is that, after running autoreconf, localedir is not honored and are installed in /usr/locale instead of /usr/share/locale
Maybe because DATADIRNAME is lost when running autoreconf (!) diff -u /home/pacho/Descargas/evolution-3.8.3/Makefile.in /var/tmp/portage/mail-client/evolution-3.8.3/work/evolution-3.8.3/Makefile.in --- /home/pacho/Descargas/evolution-3.8.3/Makefile.in 2013-06-08 20:33:16.000000000 +0200 +++ /var/tmp/portage/mail-client/evolution-3.8.3/work/evolution-3.8.3/Makefile.in 2013-06-15 23:35:09.534471702 +0200 @@ -58,7 +58,7 @@ $(srcdir)/evolution-plugin.pc.in \ $(srcdir)/evolution-shell.pc.in $(srcdir)/evolution-zip.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog NEWS compile \ - config.guess config.sub install-sh ltmain.sh missing + config.guess config.sub depcomp install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/as-compiler-flag.m4 \ @@ -216,7 +216,6 @@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@
Maybe this needing to run autoreconf is similar to bug 697840
I'm not sure, is this a libtool issue, or evolution's issue, or system issues (for example, I run fedora and I do not recall seeing any such issue, though I run the ./autogen.sh on configure.ac or other autotools files changes.
(In reply to comment #9) > I'm not sure, is this a libtool issue, or evolution's issue, or system issues > (for example, I run fedora and I do not recall seeing any such issue, though I > run the ./autogen.sh on configure.ac or other autotools files changes. But the original problem is that it fails when *not* running autoreconf, if we run it the problem is solved
(In reply to comment #10) > But the original problem is that it fails when *not* running autoreconf, if we > run it the problem is solved Yes, I know. My comment was more about: if there is a change in any autotool's file, then do run the ./autogen.sh to have it propagated properly to Makefile-s. If I recall correctly, then configuring with --maintainer-mode does this for you automatically, otherwise you are responsible to take care of it on your own.
Pretty sure the issue in the original comment is Bug #710039 aka http://savannah.gnu.org/support/?107416
Closing as OBSOLETE since we've since released 3.10.