diff --git a/Makefile.pre.in b/Makefile.pre.in index dee126395b8..eb88f5f0d81 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -793,13 +793,16 @@ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN) if test "$(cross_compiling)" != "yes"; then \ $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \ else \ - cp $(srcdir)/Include/graminit.h $(GRAMMAR_H); \ + # Avoid copying the file onto itself for an in-tree build \ + cp $(srcdir)/Include/graminit.h $(GRAMMAR_H).tmp; \ + mv $(GRAMMAR_H).tmp $(GRAMMAR_H); \ fi $(GRAMMAR_C): $(GRAMMAR_H) if test "$(cross_compiling)" != "yes"; then \ touch $(GRAMMAR_C); \ else \ - cp $(srcdir)/Python/graminit.c $(GRAMMAR_C); \ + cp $(srcdir)/Python/graminit.c $(GRAMMAR_C).tmp; \ + mv $(GRAMMAR_C).tmp $(GRAMMAR_C); \ fi $(PGEN): $(PGENOBJS) diff --git a/Misc/NEWS b/Misc/NEWS index feb0c624b8a..da2dc3ec8e3 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -581,6 +581,9 @@ Build source code anyway, and is still regenerated when doing a native build. Patch by Xavier de Gaye. +- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds. Patch + by Xavier de Gaye. + - Issue #21668: Link audioop, _datetime, _ctypes_test modules to libm, except on Mac OS X. Patch written by Xavier de Gaye.