linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/4] Don't create Python bytecode when building the kernel
@ 2025-04-24  0:16 Mauro Carvalho Chehab
  2025-04-24  0:16 ` [PATCH v4 1/4] docs: Makefile: get rid of KERNELDOC_CONF env variable Mauro Carvalho Chehab
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2025-04-24  0:16 UTC (permalink / raw)
  To: Jonathan Corbet, Linux Doc Mailing List
  Cc: Mauro Carvalho Chehab, linux-kernel, David Airlie, Jani Nikula,
	Joonas Lahtinen, Maarten Lankhorst, Masahiro Yamada,
	Maxime Ripard, Nathan Chancellor, Nicolas Schier, Rodrigo Vivi,
	Simona Vetter, Thomas Zimmermann, Tvrtko Ursulin, dri-devel,
	intel-gfx, linux-kbuild

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.

This is done by adding PYTHONDONTWRITEBYTECODE=1 on every place
where the script is called within Kbuild and when called via another script.
 
This only solves half of the issue though, as one may be manually running
the script by hand, without asking Python to not store any bytecode.
This should be OK, but afterwards, git status will list the __pycache__ as
not committed. To prevent that, add *.pyc to .gitignore.

This series contain 4 patches:

- patch 1 adjusts a variable that pass extra data to scripts/kerneldoc.py;
- patch 2moves scripts/kernel-doc location to the main makefile
  and exports it, as scripts/Makefile.build will need it;
- patch 3 disables __pycache__ generation and ensure that the entire Kbuild
  will use KERNELDOC var for the location of kernel-doc;
- patch 4 adds *.pyc at the list of object files to be ignored.

---

v4:
- placed *.pyc at the alphabetical order at the final patch

v3:
- move KERNELDOC to the main Makefile;
- get rid of the badly-named KERNELDOC_CONF var.

v2:
- added a .gitignore file;
- add PYTHONDONTWRITEBYTECODE=1 to the places where kernel-doc
  is called.

Mauro Carvalho Chehab (4):
  docs: Makefile: get rid of KERNELDOC_CONF env variable
  Makefile: move KERNELDOC macro to the main Makefile
  scripts/kernel-doc.py: don't create *.pyc files
  .gitignore: ignore Python compiled bytecode

 .gitignore                    | 1 +
 Documentation/Makefile        | 5 ++---
 Makefile                      | 5 +++++
 drivers/gpu/drm/Makefile      | 2 +-
 drivers/gpu/drm/i915/Makefile | 2 +-
 include/drm/Makefile          | 2 +-
 scripts/Makefile.build        | 2 +-
 scripts/find-unused-docs.sh   | 2 +-
 8 files changed, 13 insertions(+), 8 deletions(-)

-- 
2.49.0



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-04-30 15:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-24  0:16 [PATCH v4 0/4] Don't create Python bytecode when building the kernel Mauro Carvalho Chehab
2025-04-24  0:16 ` [PATCH v4 1/4] docs: Makefile: get rid of KERNELDOC_CONF env variable Mauro Carvalho Chehab
2025-04-24  0:16 ` [PATCH v4 2/4] Makefile: move KERNELDOC macro to the main Makefile Mauro Carvalho Chehab
2025-04-24  0:16 ` [PATCH v4 3/4] scripts/kernel-doc.py: don't create *.pyc files Mauro Carvalho Chehab
2025-04-25 18:46   ` Nicolas Schier
2025-04-30 15:41     ` Mauro Carvalho Chehab
2025-04-24  0:16 ` [PATCH v4 4/4] .gitignore: ignore Python compiled bytecode Mauro Carvalho Chehab
2025-04-24 13:52   ` Miguel Ojeda
2025-04-24 16:19 ` [PATCH v4 0/4] Don't create Python bytecode when building the kernel Jonathan Corbet
2025-04-26  2:39 ` Akira Yokosawa
2025-04-26 12:57   ` Mauro Carvalho Chehab
2025-04-28  7:35     ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).