GNOME Bugzilla – Bug 750897
Failure to parallel install
Last modified: 2015-08-04 16:10:35 UTC
libtool: relink: x86_64-pc-linux-gnu-gcc -shared -fPIC -DPIC .libs/libgoawebextension_la-goawebextension.o .libs/libgoawebextension_la-goawebextensionmain.o -L/var/tmp/portage/net-libs/gnome-online-accounts-3.16.2/work/gnome-online-accounts-3.16.2/src/goa/.libs -Wl,--as-needed -L/var/tmp/portage/net-libs/gnome-online-accounts-3.16.2/image//usr/lib64 -L/usr/lib64 -lgoa-backend-1.0 -lgoa-1.0 -ljson-glib-1.0 -ltelepathy-glib -lsecret-1 -lrest-0.7 -lxml2 -lwebkit2gtk-4.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -ljavascriptcoregtk-4.0 -lglib-2.0 -pthread -pthread -march=nehalem -msse4 -mcx16 -mpopcnt -msahf -O2 -Wl,-O1 -pthread -Wl,-soname -Wl,libgoawebextension.so -o .libs/libgoawebextension.so /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lgoa-backend-1.0 collect2: error: ld returned 1 exit status libtool: install: error: relink `libgoawebextension.la' with the above command before installing it Makefile:713: recipe for target 'install-webextensionLTLIBRARIES' failed make[4]: *** [install-webextensionLTLIBRARIES] Error 1 make[4]: *** Waiting for unfinished jobs.... Works fine when building with -j1 Downstream URL: https://bugs.gentoo.org/show_bug.cgi?id=550378
Note: this bug appears when doing parallel install on a machine that doesn't already have >=goa-3.16 installed systemwide. If you are building on a machine with systemwide goa, everything will seem to work because your local libgoawebextension will link to systemwide goa-backend.
Created attachment 305202 [details] [review] proposed patch Unfortunately, fixing this requires using ugly automake syntax to work around a very old automake bug - http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328 Other projects with .la interdependencies have been forced to do the same thing (e.g. take a look at pulseaudio's makefiles). Patch attached.
I wonder why we don't hit this bug in Fedora. We do use parallel builds for this package.
(In reply to Debarshi Ray from comment #3) The failure is in parallel "make install". If you use parallel mode only for the main "make" call but not for "make install", you won't see the bug.
Review of attachment 305202 [details] [review]: Thanks for the patch, Alexandre. One question: ::: src/goabackend/Makefile.am @@ +172,3 @@ + +installwebextensionLTLIBRARIES = install-webextensionLTLIBRARIES +$(installwebextensionLTLIBRARIES): install-libLTLIBRARIES According to the workaround mentioned in the Automake bug, the left hand side should be install-webextensionLTLIBRARIES but you are missing the hyphen. I hope that is not an issue.
(In reply to Alexandre Rostovtsev from comment #4) > The failure is in parallel "make install". If you use parallel mode only for > the main "make" call but not for "make install", you won't see the bug. Ok. That makes sense because the workaround involves the installation targets.
(In reply to Debarshi Ray from comment #5) > Review of attachment 305202 [details] [review] [review]: > > Thanks for the patch, Alexandre. One question: > > ::: src/goabackend/Makefile.am > @@ +172,3 @@ > + > +installwebextensionLTLIBRARIES = install-webextensionLTLIBRARIES > +$(installwebextensionLTLIBRARIES): install-libLTLIBRARIES > > According to the workaround mentioned in the Automake bug, the left hand > side should be install-webextensionLTLIBRARIES but you are missing the > hyphen. I hope that is not an issue. No, it's a change in automake syntax since 2010. They got rid of the hyphens.
Again, take a look at how other projects with .la interdependencies are handling this: http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/Makefile.am#n2259
(In reply to Alexandre Rostovtsev from comment #7) > (In reply to Debarshi Ray from comment #5) > > Review of attachment 305202 [details] [review] [review] [review]: > > > > Thanks for the patch, Alexandre. One question: > > > > ::: src/goabackend/Makefile.am > > @@ +172,3 @@ > > + > > +installwebextensionLTLIBRARIES = install-webextensionLTLIBRARIES > > +$(installwebextensionLTLIBRARIES): install-libLTLIBRARIES > > > > According to the workaround mentioned in the Automake bug, the left hand > > side should be install-webextensionLTLIBRARIES but you are missing the > > hyphen. I hope that is not an issue. > > No, it's a change in automake syntax since 2010. They got rid of the hyphens. I see. Thanks for the clarification. I am never too sure when it comes to build systems.
Comment on attachment 305202 [details] [review] proposed patch Pushed to master.