On Mon, Apr 21, 2025 at 10:35:29AM -0600, Jonathan Corbet wrote: > Dmitry Baryshkov <dmitry.barysh...@oss.qualcomm.com> writes: > > On Wed, Apr 16, 2025 at 03:51:03PM +0800, Mauro Carvalho Chehab wrote: > >> > >> As reported by Andy, the Kernel build system runs kernel-doc script for > >> DRM, > >> when W=1. Due to Python's normal behavior, its JIT compiler will create > >> a bytecode and store it under scripts/lib/*/__pycache__. > >> > >> As one may be using O= and even having the sources on a read-only mount > >> point, disable its creation during build time. > > > > Would it be possible to properly support O= and create pyc / pycache > > inside the object/output dir? > > I have to confess, I've been wondering if we should be treating the .pyc > files like we treat .o files or other intermediate products. Rather > than trying to avoid their creation entirely, perhaps we should just be > sure they end up in the right place and are properly cleaned up...? > > To answer Dmitry's question, it seems that setting PYTHONPYCACHEPREFIX > should do the trick?
It's not so easy. The Python is written in a way that it thinks it will never runs object files separately from the source. Hence that variable sets only the folder per script as _home_ for the cache. It's completely unusable. They took it wrong. It still can be _painfully_ used, but it will make Makefiles uglier. -- With Best Regards, Andy Shevchenko