GNOME Bugzilla – Bug 685837
parallel build fails
Last modified: 2016-08-07 17:35:24 UTC
Sometimes, parallel build fails with this errror (never fails with -j1) [ 186s] + make -j8 V=1 [ 186s] make all-recursive [ 186s] make[1]: Entering directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3' [ 186s] Making all in tools [ 186s] make[2]: Entering directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/tools' [ 186s] sed -e 's![@]abs_top_builddir[@]!/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3!' telepathy-glib-env.in > telepathy-glib-env [ 186s] sed -e 's![@]abs_top_builddir[@]!/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3!' empathy-env.in > empathy-env [ 186s] chmod +x telepathy-glib-env [ 186s] chmod +x empathy-env [ 186s] make[2]: Leaving directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/tools' [ 186s] Making all in extensions [ 186s] make[2]: Entering directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/extensions' [ 186s] /usr/bin/python ../tools/xincludator.py all.xml > _gen/all.xml [ 186s] /usr/bin/python ../tools/xincludator.py misc.xml > _gen/misc.xml [ 186s] /usr/bin/python ../tools/glib-client-gen.py \ [ 186s] --group=misc \ [ 186s] --subclass=TpProxy \ [ 186s] --subclass-assert=TP_IS_PROXY \ [ 186s] --iface-quark-prefix=EMP_IFACE_QUARK \ [ 186s] --tp-proxy-api=0.10.0 \ [ 186s] _gen/misc.xml Emp_Cli _gen/cli-misc [ 186s] /usr/bin/python ../tools/glib-client-gen.py \ [ 186s] --group=misc \ [ 186s] --subclass=TpProxy \ [ 186s] --subclass-assert=TP_IS_PROXY \ [ 186s] --iface-quark-prefix=EMP_IFACE_QUARK \ [ 186s] --tp-proxy-api=0.10.0 \ [ 186s] _gen/misc.xml Emp_Cli _gen/cli-misc [ 186s] /usr/bin/python ../tools/glib-ginterface-gen.py \ [ 186s] --filename=_gen/svc-misc \ [ 186s] --signal-marshal-prefix=_emp_ext \ [ 186s] --include='<telepathy-glib/telepathy-glib.h>' \ [ 186s] --not-implemented-func='tp_dbus_g_method_return_not_implemented' \ [ 186s] --allow-unstable \ [ 186s] _gen/misc.xml Emp_Svc_ [ 186s] /usr/bin/python ../tools/glib-ginterface-gen.py \ [ 186s] --filename=_gen/svc-misc \ [ 186s] --signal-marshal-prefix=_emp_ext \ [ 186s] --include='<telepathy-glib/telepathy-glib.h>' \ [ 186s] --not-implemented-func='tp_dbus_g_method_return_not_implemented' \ [ 186s] --allow-unstable \ [ 186s] _gen/misc.xml Emp_Svc_ [ 186s] /usr/bin/python ../tools/glib-client-marshaller-gen.py _gen/all.xml \ [ 186s] _emp_ext > _gen/register-dbus-glib-marshallers-body.h [ 186s] /usr/bin/python ../tools/c-constants-gen.py \ [ 186s] Emp \ [ 186s] _gen/all.xml _gen/enums [ 186s] /usr/bin/python ../tools/glib-gtypes-generator.py \ [ 186s] _gen/all.xml _gen/gtypes Emp [ 186s] /usr/bin/python ../tools/glib-gtypes-generator.py \ [ 186s] _gen/all.xml _gen/gtypes Emp [ 186s] /usr/bin/python ../tools/glib-interfaces-gen.py \ [ 186s] Emp _gen/interfaces-body.h _gen/interfaces.h _gen/all.xml [ 186s] /usr/bin/python ../tools/glib-interfaces-gen.py \ [ 186s] Emp _gen/interfaces-body.h _gen/interfaces.h _gen/all.xml [ 187s] xsltproc --nonet --novalid \ [ 187s] --param "allow-undefined-interfaces" "true()" \ [ 187s] ../tools/doc-generator.xsl \ [ 187s] _gen/all.xml > extensions.html [ 187s] Traceback (most recent call last): [ 187s] File "../tools/glib-interfaces-gen.py", line 207, in <module> [ 187s] Generator(argv[0], argv[1], argv[2], xml.dom.minidom.parse(argv[3]))() [ 187s] File "../tools/glib-interfaces-gen.py", line 40, in __call__ [ 187s] file_set_contents(self.implfile, ''.join(self.impls)) [ 187s] File "/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/tools/libtpcodegen.py", line 42, in file_set_contents [ 187s] os.rename(filename + '.tmp', filename) [ 187s] OSError: [Errno 2] No such file or directory [ 187s] make[2]: *** [_gen/interfaces-body.h] Error 1 [ 187s] make[2]: *** Waiting for unfinished jobs.... [ 187s] make[2]: Leaving directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/extensions' [ 187s] make[1]: *** [all-recursive] Error 1 [ 187s] make[1]: Leaving directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3' [ 187s] make: *** [all] Error 2 [ 187s] error: Bad exit status from /var/tmp/rpm-tmp.0lT3xt (%build)
Can't reproduce this anymore with 3.7.x branch.. closing
Definitely not fixed. Several users and myself have been able to reproduce the issue in 3.12.2 and .7. Downstream bug is https://bugs.gentoo.org/515894 I know the extensions/ directory has been removed from the "next" branch, but I still cooked up a one-liner patch to fix it.
Created attachment 291846 [details] [review] Fix parallel build in extensions/
Created attachment 302745 [details] [review] Fix parallel build in extensions/ Update patch provided by Rémi to cover the second multiple target rule occurence in this makefile.
I am reopening this report as I have experienced this problem multiple times before being bothered enough to have a look at what was wrong.
Review of attachment 302745 [details] [review]: This is pretty terrible and sad, but your commit message explains the problem nicely and I don't know any other way to fix it, so let's do it.
(In reply to Michael Catanzaro from comment #6) > Review of attachment 302745 [details] [review] [review]: > > This is pretty terrible and sad, but your commit message explains the > problem nicely and I don't know any other way to fix it, so let's do it. I found this section of the Automake manual that explains another way to fix it: https://www.gnu.org/software/automake/manual/automake.html#Multiple-Outputs The Automake manual's solution is portable in that it doesn't depend on GNU Make, but it also reads something like a horror story, so let's stick with the previous solution....