GNU bug report logs -
#3883
Interleaved builds in separate trees create different versions
Previous Next
To reply to this bug, email your comments to 3883 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
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):
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):
(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):
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.