unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#3883: Interleaved builds in separate trees create different versions
@ 2009-07-19 20:02 Rob Browning
  2011-04-06 22:02 ` Glenn Morris
  0 siblings, 1 reply; 2+ messages in thread
From: Rob Browning @ 2009-07-19 20:02 UTC (permalink / raw)
  To: bug-gnu-emacs


If you try to build two trees from the same source directory at the
same time, alternating the respective SRCDIR/configure, make, and make
install operations, the first tree will end up with a ".2" version while
the second tree will end up with a ".1" version.  This doesn't happen if
you don't have separate "make" and "make install" steps.

I don't know if this behavior is intentional, but in case it's not, I
thought I'd report it.

You can trivially reproduce the situation with this script (using the
23.0.96 archive), and note that the same thing still happens if you omit
the differing configure arguments:

#!/bin/bash

set -e
set -x

tar xf emacs-23.0.96.tar.gz

mkdir -p build/1
mkdir -p build/2

(cd build/1 && ../../emacs-23.0.96/configure --with-x=yes)
(cd build/2 && ../../emacs-23.0.96/configure --with-x=no)

(cd build/1 && make)
(cd build/2 && make)

mkdir -p install/1
mkdir -p install/2

inst_1="$(pwd)/install/1"
inst_2="$(pwd)/install/2"

(cd build/1 && make DESTDIR="${inst_1}")
(cd build/2 && make DESTDIR="${inst_2}")

find -name "emacs-23.*"
find -name "DOC*"

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org; previously @cs.utexas.edu
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4






^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#3883: Interleaved builds in separate trees create different versions
  2009-07-19 20:02 bug#3883: Interleaved builds in separate trees create different versions Rob Browning
@ 2011-04-06 22:02 ` Glenn Morris
  0 siblings, 0 replies; 2+ messages in thread
From: Glenn Morris @ 2011-04-06 22:02 UTC (permalink / raw)
  To: Rob Browning; +Cc: 3883

(A very delayed reply)

Rob Browning wrote:

> If you try to build two trees from the same source directory at the
> same time, alternating the respective SRCDIR/configure, make, and make
> install operations, the first tree will end up with a ".2" version while
> the second tree will end up with a ".1" version.

I think this happens because the second make recompiles the .el files,
and the output .elc files are written into the lisp/ directory in the
source-tree, not the build directory. Then the first build thinks it
need to redump Emacs, because the .elc files have newer timestamps.

Neither make should need to compile the .el files at all, but this is
tricky, see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=2151 .

Arguably, the compiled .elc files should be written into the build
tree's lisp/ directory, not the source lisp/ directory.
But, they are supposed to be platform independent, so maybe the current
set-up is designed to let them be shared between all builds.
But, they get recompiled anyway, so that doesn't actually work...





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-04-06 22:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-19 20:02 bug#3883: Interleaved builds in separate trees create different versions Rob Browning
2011-04-06 22:02 ` Glenn Morris

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).