vm-8.1.1 parallel make fails

Bug #584616 reported by Ulrich Müller on 2010-05-23
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

On a quad-core machine, I observe the following failure with "make -j5":

Generating autoloads for vm.el...
Generating autoloads for vm.el...done
Saving file /var/tmp/portage/app-emacs/vm-8.1.1/work/vm-8.1.1/lisp/vm-autoloads.el...
Wrote /var/tmp/portage/app-emacs/vm-8.1.1/work/vm-8.1.1/lisp/vm-autoloads.el
(No changes need to be saved)
echo "(custom-add-load 'vm 'vm-cus-load)" >> vm-autoloads.el

In toplevel form:
vm-grepmail.el:43:1:Error: Required feature `vm-autoloads' was not provided
make[1]: *** [vm-grepmail.elc] Error 1
make[1]: *** Waiting for unfinished jobs....
Wrote /var/tmp/portage/app-emacs/vm-8.1.1/work/vm-8.1.1/lisp/vm-edit.elc
echo "(setq vm-configure-datadir \"/usr/share\")" >> vm-autoloads.el
echo "(setq vm-configure-pixmapdir \"/usr/share/emacs/etc/vm\")" >> vm-autoloads.el
echo "(require 'vm-vars)" >> vm-autoloads.el
echo "(provide 'vm-autoloads)" >> vm-autoloads.el
Wrote /var/tmp/portage/app-emacs/vm-8.1.1/work/vm-8.1.1/lisp/vm-folder.elc
Wrote /var/tmp/portage/app-emacs/vm-8.1.1/work/vm-8.1.1/lisp/vm-imap.elc
make[1]: Leaving directory `/var/tmp/portage/app-emacs/vm-8.1.1/work/vm-8.1.1/lisp'
make: *** [all] Error 1

As one can see in the log, vm-autoloads.el is loaded by other files before it is completely written.

Ulrich Müller (ulm) on 2010-05-23
Changed in vm:
importance: Undecided → Medium
milestone: none → 8.1.2
Uday Reddy (reddyuday) wrote :

I put the status as 'triaged' for bugs that have been allocated to a milestone. Otherwise, we won't know which ones have been scheduled and which not.

The Makefile is really basic. I am not surprised that it can't deal with parallel make. All the dependencies between elisp files haven't been recorded.

Changed in vm:
status: New → Triaged
nega (nega) wrote :

Actually you shouldn't ever parallel make when byte compiling elisp. For a "simple" "small" project like VM, chances are the make will just fail, since a pre-req hasn't been built. More complicated build systems, or larger projects can introduce subtle inconsistencies that can be very hard to debug.

That being said you can create a proper dependency tree for the elisp files, or brute force something in the Makefile. Attached is a patch that does this. (Brute force, that is.)

nega (nega) wrote :

BTW, patch *worksforme* with XEmacs and "make -j21" =)

Uday Reddy (reddyuday) on 2011-01-20
Changed in vm:
milestone: 8.1.2 → 8.2.1
Uday Reddy (reddyuday) on 2012-02-07
Changed in vm:
importance: Medium → Low
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers