Re: [PATCH v3 0/2] Don't create Python bytecode when building the kernel

Jonathan Corbet
2025-04-21T16:35:36Z

Dmitry Baryshkov <dmitry.baryshkov@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?

Thanks,

jon