[New-bugs-announce] [issue46271] frozen modules are not regenerated on bytecode magic change when cross building

Christian Heimes report at bugs.python.org
Wed Jan 5 13:27:14 EST 2022


New submission from Christian Heimes <lists at cheimes.de>:

The Makefile rules for frozen header files have a dependency on $(FREEZE_MODULE_BOOTSTRAP_DEPS) or $(FREEZE_MODULE_DEPS). For normal builds this dependency will trigger a refresh of the frozen header files when the byte code magic changes:

  FREEZE_MODULE_BOOTSTRAP_DEPS=Programs/_freeze_module
  FREEZE_MODULE_DEPS=_bootstrap_python

Both binaries depend on object files which indirectly have a dependency on all core header files $(PYTHON_HEADERS).

However cross builds use an external Python binary. Neither $(FREEZE_MODULE_BOOTSTRAP_DEPS) nor $(FREEZE_MODULE_DEPS) add an indirect dependency on $(PYTHON_HEADERS). The frozen header files are not rebuilt when any header file like opcode.h is modified. This causes hard to debug issues like https://bugs.python.org/issue46009#msg409770

Fix: all frozen header files should also depend on $(PYTHON_HEADERS)

----------
components: Cross-Build
messages: 409794
nosy: Alex.Willmer, christian.heimes, gvanrossum
priority: normal
severity: normal
status: open
title: frozen modules are not regenerated on bytecode magic change when cross building
type: behavior
versions: Python 3.11

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue46271>
_______________________________________


More information about the New-bugs-announce mailing list