Thanks to visit codestin.com
Credit goes to github.com

Skip to content

bpo-47146: Stop Depending On regen-deepfreeze For regen-global-objects #32218

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Mar 31, 2022
Merged
3 changes: 3 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ jobs:
run: make regen-configure
- name: Build CPython
run: |
# Deepfreeze will usually cause global objects to be added or removed,
# so we run it before regen-global-objects gets rum (in regen-all).
make regen-deepfreeze
make -j4 regen-all
make regen-stdlib-module-names
- name: Check for changes
Expand Down
24 changes: 6 additions & 18 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -1161,8 +1161,9 @@ Python/deepfreeze/deepfreeze.c: $(DEEPFREEZE_DEPS)
Python/frozen_modules/__phello__.spam.h:__phello__.spam \
Python/frozen_modules/frozen_only.h:frozen_only \
-o Python/deepfreeze/deepfreeze.c

# END: deepfreeze modules
@echo "Note: Deepfreeze may have added some global objects,"
@echo " so run 'make regen-global-objects' if necessary."

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

GLOBAL_OBJECTS_TARGETS = \
$(srcdir)/Include/internal/pycore_global_objects.h \
$(srcdir)/Include/internal/pycore_global_strings.h

# The global objects will get regenerated as soon these files
# are required, including as a prerequisite for regen-deepfreeze.
$(GLOBAL_OBJECTS_TARGETS): generate-global-objects

.PHONY: generate-global-objects
generate-global-objects: $(srcdir)/Tools/scripts/generate_global_objects.py
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py

.PHONY: generate-global-objects-after-deepfreeze
generate-global-objects-after-deepfreeze: regen-deepfreeze $(srcdir)/Tools/scripts/generate_global_objects.py
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py

.PHONY: regen-global-objects
regen-global-objects: regen-deepfreeze generate-global-objects-after-deepfreeze
regen-global-objects: $(srcdir)/Tools/scripts/generate_global_objects.py
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_global_objects.py
@echo "Note: Global objects can be added or removed by other tools (e.g. deepfreeze), "
@echo " so be sure to re-run regen-global-objects after those tools."

############################################################################
# ABI
Expand Down
1 change: 0 additions & 1 deletion Tools/scripts/freeze_modules.py
Original file line number Diff line number Diff line change
Expand Up @@ -606,7 +606,6 @@ def regen_makefile(modules):
])
deepfreezerules.append(f"\t{frozen_header}:{src.frozenid} \\")
deepfreezerules.append('\t-o Python/deepfreeze/deepfreeze.c')
deepfreezerules.append('')
pyfiles[-1] = pyfiles[-1].rstrip(" \\")
frozenfiles[-1] = frozenfiles[-1].rstrip(" \\")

Expand Down