Julien Olivain f104f0f9e7 linux: add BR2_LINUX_KERNEL_NEEDS_HOST_PYTHON3
Kernel commit [1] introduced MSM GPU driver header generation with a
Python script. This commit was first included in v6.10. This driver is
also enabled as a module in the arm64 architecture default
configuration. See [2]. This is a common situation.

This missing dependency is not detected in the Buildroot CI, because
the reference docker image contains a python3 interpreter. See [3].

For information, the Linux latest kernel version was updated in
Buildroot commit 2b6dba00b "linux: bump latest version to 6.10".
See [4].

The issue can be observed by running the following commands on a host
without the python3 interpreter installed:

    cat <<EOF >.config
    BR2_aarch64=y
    BR2_LINUX_KERNEL=y
    BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
    BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
    BR2_TOOLCHAIN_EXTERNAL=y
    EOF
    make olddefconfig
    make linux

The Kernel build fails with output:

      GENHDR  drivers/gpu/drm/msm/generated/a2xx.xml.h
    /bin/sh: 1: python3: not found
    make[7]: *** [drivers/gpu/drm/msm/Makefile:176: drivers/gpu/drm/msm/generated/a2xx.xml.h] Error 127

This commit fixes this issue by introducing a new
BR2_LINUX_KERNEL_NEEDS_HOST_PYTHON3 configuration that will need to be
selected in relevant situations.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0fddd045f88e34d6160785a3a5e506d374566454
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch/arm64/configs/defconfig?h=v6.10.8#n868
[3] https://gitlab.com/buildroot.org/buildroot/-/blob/2024.08-rc3/support/docker/Dockerfile?ref_type=tags#L40
[4] https://gitlab.com/buildroot.org/buildroot/-/commit/2b6dba00be27a09bc7e88faf0871f82bf95589cf

Reported-by: Vincent Stehlé <vincent.stehle@arm.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
(cherry picked from commit abce4a2b36)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-10-12 15:46:23 +02:00
2024-09-19 09:11:03 +02:00
2024-10-03 11:29:53 +02:00
2024-06-05 23:31:18 +02:00
2016-09-08 22:15:15 +02:00
2024-09-06 15:01:24 +02:00
2024-09-02 17:36:45 +02:00
2016-10-15 23:14:45 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches
S
Description
Languages
Makefile 62.9%
Python 18.3%
C 8.6%
Shell 6.2%
PHP 1.4%
Other 2.2%