bpo-45188: Windows now regenerates frozen modules at the start of build instead of late (GH-28322)

This will enable us to drop the frozen module header files from the repository.

It does currently cause many source files to be built twice, which just takes more time. For whoever comes to fix this in the future, the files shared between freeze_module and pythoncore should be put into a static library that is consumed by both.
This commit is contained in:
Steve Dower 2021-09-15 18:11:12 +01:00 committed by GitHub
parent d897579a80
commit 09b4ad11f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 278 additions and 68 deletions

53
PC/config_minimal.c Normal file
View file

@ -0,0 +1,53 @@
/* Module configuration */
/* This file contains the table of built-in modules.
See create_builtin() in import.c. */
#include "Python.h"
extern PyObject* PyInit_faulthandler(void);
extern PyObject* PyInit__tracemalloc(void);
extern PyObject* PyInit_gc(void);
extern PyObject* PyInit_nt(void);
extern PyObject* PyInit__signal(void);
extern PyObject* PyInit_winreg(void);
extern PyObject* PyInit__ast(void);
extern PyObject* PyInit__io(void);
extern PyObject* PyInit_atexit(void);
extern PyObject* _PyWarnings_Init(void);
extern PyObject* PyInit__string(void);
extern PyObject* PyInit__tokenize(void);
extern PyObject* PyMarshal_Init(void);
extern PyObject* PyInit__imp(void);
struct _inittab _PyImport_Inittab[] = {
{"_ast", PyInit__ast},
{"faulthandler", PyInit_faulthandler},
{"gc", PyInit_gc},
{"nt", PyInit_nt}, /* Use the NT os functions, not posix */
{"_signal", PyInit__signal},
{"_tokenize", PyInit__tokenize},
{"_tracemalloc", PyInit__tracemalloc},
{"winreg", PyInit_winreg},
/* This module "lives in" with marshal.c */
{"marshal", PyMarshal_Init},
/* This lives it with import.c */
{"_imp", PyInit__imp},
/* These entries are here for sys.builtin_module_names */
{"builtins", NULL},
{"sys", NULL},
{"_warnings", _PyWarnings_Init},
{"_string", PyInit__string},
{"_io", PyInit__io},
{"atexit", PyInit_atexit},
/* Sentinel */
{0, 0}
};