GNU bug report logs - #3883
Interleaved builds in separate trees create different versions

Previous Next

Package: emacs;

Reported by: Rob Browning <rlb <at> defaultvalue.org>

Date: Sun, 19 Jul 2009 20:10:05 UTC

Severity: minor

Tags: unreproducible

To reply to this bug, email your comments to 3883 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#3883; Package emacs. (Sun, 19 Jul 2009 20:10:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rob Browning <rlb <at> defaultvalue.org>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Sun, 19 Jul 2009 20:10:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Rob Browning <rlb <at> defaultvalue.org>
To: bug-gnu-emacs <at> gnu.org
Subject: Interleaved builds in separate trees create different versions
Date: Sun, 19 Jul 2009 13:02:33 -0700
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




Severity set to `minor' from `normal' Request was from Glenn Morris <rgm <at> gnu.org> to control <at> emacsbugs.donarmstrong.com. (Wed, 22 Jul 2009 03:05:06 GMT) Full text and rfc822 format available.

Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#3883; Package emacs. (Wed, 06 Apr 2011 22:03:01 GMT) Full text and rfc822 format available.

Message #10 received at 3883 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Rob Browning <rlb <at> defaultvalue.org>
Cc: 3883 <at> debbugs.gnu.org
Subject: Re: Bug#3883: Interleaved builds in separate trees create different
	versions
Date: Wed, 06 Apr 2011 18:02:30 -0400
(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...




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#3883; Package emacs. (Fri, 14 Mar 2025 12:07:02 GMT) Full text and rfc822 format available.

Message #13 received at 3883 <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: 3883 <at> debbugs.gnu.org
Cc: Rob Browning <rlb <at> defaultvalue.org>
Subject: Re: bug#3883: Interleaved builds in separate trees create different
 versions
Date: Fri, 14 Mar 2025 09:06:26 -0300
Rob Browning <rlb <at> defaultvalue.org> writes:

> 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*"

I'm not able to reproduce it.  This was 16 years ago, perhaps it got
fixed someway? I can't tell it from the Makefile, but perhaps someone
can.






Added tag(s) unreproducible. Request was from Stefan Kangas <stefankangas <at> gmail.com> to control <at> debbugs.gnu.org. (Fri, 14 Mar 2025 16:16:02 GMT) Full text and rfc822 format available.

This bug report was last modified 89 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.