1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

Do not overwrite config.status while executing it.

* Makefile.in (MAKEFILE_NAME): New macro.
($(MAKEFILE_NAME)): Rename rule from Makefile.
* configure.ac (epaths): Set MAKEFILE_NAME to a bogus value,
so that GNU 'make' isn't tempted to make the Makefile and then
regenerate config.status while config.status is running.

Fixes: debbugs:11214
This commit is contained in:
Paul Eggert 2012-07-30 13:34:58 -07:00
parent adff3182ba
commit 8f25abd317
3 changed files with 14 additions and 2 deletions

View File

@ -1,5 +1,12 @@
2012-07-30 Paul Eggert <eggert@cs.ucla.edu> 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
Do not overwrite config.status while executing it (Bug#11214).
* Makefile.in (MAKEFILE_NAME): New macro.
($(MAKEFILE_NAME)): Rename rule from Makefile.
* configure.ac (epaths): Set MAKEFILE_NAME to a bogus value,
so that GNU 'make' isn't tempted to make the Makefile and then
regenerate config.status while config.status is running.
Update .PHONY listings in makefiles. Update .PHONY listings in makefiles.
* Makefile.in (.PHONY): Add all, ${SUBDIR}, blessmail, epath-force, * Makefile.in (.PHONY): Add all, ${SUBDIR}, blessmail, epath-force,
FRC, install-arch-dep, install-arch-indep, install-doc, FRC, install-arch-dep, install-arch-indep, install-doc,

View File

@ -350,7 +350,12 @@ blessmail: Makefile src FRC
# We used to have one rule per */Makefile.in, but that leads to race # We used to have one rule per */Makefile.in, but that leads to race
# conditions with parallel makes, so let's assume that the time stamp on # conditions with parallel makes, so let's assume that the time stamp on
# ./Makefile is representative of the time stamp on all the other Makefiles. # ./Makefile is representative of the time stamp on all the other Makefiles.
Makefile: config.status $(srcdir)/src/config.in \ #
# config.status overrides MAKEFILE_NAME with a bogus name when creating
# src/epaths.h, so that 'make epaths-force' does not recursively invoke
# config.status and overwrite config.status while executing it (Bug#11214).
MAKEFILE_NAME = Makefile
$(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \
$(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN) $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
./config.status ./config.status

View File

@ -4464,7 +4464,7 @@ dnl by configure. This also explains the `move-if-change' test and
dnl the use of force in the `epaths-force' rule in Makefile.in. dnl the use of force in the `epaths-force' rule in Makefile.in.
AC_CONFIG_COMMANDS([epaths], [ AC_CONFIG_COMMANDS([epaths], [
echo creating src/epaths.h echo creating src/epaths.h
${MAKE-make} epaths-force ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force
], [GCC="$GCC" CPPFLAGS="$CPPFLAGS"]) ], [GCC="$GCC" CPPFLAGS="$CPPFLAGS"])
AC_CONFIG_COMMANDS([gdbinit], [ AC_CONFIG_COMMANDS([gdbinit], [