VM

vm-8.1.1 parallel make fails

Bug #584616 reported by Ulrich Müller
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
VM
Triaged
Low
Unassigned

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)
Changed in vm:
importance: Undecided → Medium
milestone: none → 8.1.2
Revision history for this message
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
Revision history for this message
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.)

Revision history for this message
nega (nega) wrote :

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

Uday Reddy (reddyuday)
Changed in vm:
milestone: 8.1.2 → 8.2.1
Uday Reddy (reddyuday)
Changed in vm:
importance: Medium → Low
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.