Skip to content

Commit e7bb7c2

Browse files
bpo-47146: Stop Depending On regen-deepfreeze For regen-global-objects (gh-32218)
This effectively reverts the Makefile change in gh-31637. I've added some notes so it is more clear what is going on. We also update the "Check if generated files are up to date" job to run "make regen-deepfreeze" to ensure "make regen-global-objects" catches deepfreeze.c. https://bugs.python.org/issue47146
1 parent 74b95d8 commit e7bb7c2

File tree

3 files changed

+9
-19
lines changed

3 files changed

+9
-19
lines changed

.github/workflows/build.yml

+3
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ jobs:
8282
run: make regen-configure
8383
- name: Build CPython
8484
run: |
85+
# Deepfreeze will usually cause global objects to be added or removed,
86+
# so we run it before regen-global-objects gets rum (in regen-all).
87+
make regen-deepfreeze
8588
make -j4 regen-all
8689
make regen-stdlib-module-names
8790
- name: Check for changes

Makefile.pre.in

+6-18
Original file line numberDiff line numberDiff line change
@@ -1161,8 +1161,9 @@ Python/deepfreeze/deepfreeze.c: $(DEEPFREEZE_DEPS)
11611161
Python/frozen_modules/__phello__.spam.h:__phello__.spam \
11621162
Python/frozen_modules/frozen_only.h:frozen_only \
11631163
-o Python/deepfreeze/deepfreeze.c
1164-
11651164
# END: deepfreeze modules
1165+
@echo "Note: Deepfreeze may have added some global objects,"
1166+
@echo " so run 'make regen-global-objects' if necessary."
11661167

11671168
# We keep this renamed target around for folks with muscle memory.
11681169
.PHONY: regen-importlib
@@ -1171,24 +1172,11 @@ regen-importlib: regen-frozen
11711172
############################################################################
11721173
# Global objects
11731174

1174-
GLOBAL_OBJECTS_TARGETS = \
1175-
$(srcdir)/Include/internal/pycore_global_objects.h \
1176-
$(srcdir)/Include/internal/pycore_global_strings.h
1177-
1178-
# The global objects will get regenerated as soon these files
1179-
# are required, including as a prerequisite for regen-deepfreeze.
1180-
$(GLOBAL_OBJECTS_TARGETS): generate-global-objects
1181-
1182-
.PHONY: generate-global-objects
1183-
generate-global-objects: $(srcdir)/Tools/scripts/generate_global_objects.py
1184-
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py
1185-
1186-
.PHONY: generate-global-objects-after-deepfreeze
1187-
generate-global-objects-after-deepfreeze: regen-deepfreeze $(srcdir)/Tools/scripts/generate_global_objects.py
1188-
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py
1189-
11901175
.PHONY: regen-global-objects
1191-
regen-global-objects: regen-deepfreeze generate-global-objects-after-deepfreeze
1176+
regen-global-objects: $(srcdir)/Tools/scripts/generate_global_objects.py
1177+
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py
1178+
@echo "Note: Global objects can be added or removed by other tools (e.g. deepfreeze), "
1179+
@echo " so be sure to re-run regen-global-objects after those tools."
11921180

11931181
############################################################################
11941182
# ABI

Tools/scripts/freeze_modules.py

-1
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,6 @@ def regen_makefile(modules):
606606
])
607607
deepfreezerules.append(f"\t{frozen_header}:{src.frozenid} \\")
608608
deepfreezerules.append('\t-o Python/deepfreeze/deepfreeze.c')
609-
deepfreezerules.append('')
610609
pyfiles[-1] = pyfiles[-1].rstrip(" \\")
611610
frozenfiles[-1] = frozenfiles[-1].rstrip(" \\")
612611

0 commit comments

Comments
 (0)