kumquat-buildroot/support/config-fragments/autobuild
Julien Olivain bf952b0cb7 support/config-fragments: fix bootlin-x86-i686-musl
Commit a8be4a04ad "support/config-fragments: replace
br-i386-pentium-mmx-musl" replaced this old toolchain by
bootlin-x86-i686-musl.

When using test-pkg with all toolchains, bootlin-x86-i686-musl is always
failing. The issue can be reproduced with for example:

    utils/test-pkg -a -p busybox

The issue can also be reproduced with a simple config like:

    cat > .config <<EOF
    BR2_i386=y
    BR2_TOOLCHAIN_EXTERNAL=y
    BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
    BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_I686_MUSL_STABLE=y
    BR2_PACKAGE_BUSYBOX=y
    EOF
    make olddefconfig
    make

Compilation fail with output:

    Cannot execute cross-compiler '/i586-linux-gcc'

This issue happen is because the toolchain can never be selected.

The config fragment [1] selects BR2_i386 alone.

The target architecture variant default to i586 if target
architecture is i386. See [2].

Finally, the generated toolchain options includes a depends on
BR2_i386 and !BR2_x86_i586, making the toolchain always ignored.
See [3].

This commit fixes the issue by adding BR2_x86_i686=y to the
bootlin-x86-i686-musl.config fragment as suggested by the
Bootlin toolchain fragment [4].

[1] a8be4a04ad/support/config-fragments/autobuild/bootlin-x86-i686-musl.config
[2] https://gitlab.com/buildroot.org/buildroot/-/blob/2024.02.2/arch/Config.in.x86?ref_type=tags#L38
[3] https://gitlab.com/buildroot.org/buildroot/-/blob/345ccb523e/toolchain/toolchain-external/toolchain-external-bootlin/Config.in.options#L5768-5770
[4] https://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/fragments/x86-i686--musl--stable-2024.02-1.frag

Signed-off-by: Julien Olivain <ju.o@free.fr>
[Romain: add the link to the Bootlin toolchain fragment]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
(cherry picked from commit 1263adf7a9)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-06-03 17:52:06 +02:00
..
arm-aarch64.config
bootlin-aarch64-glibc.config
bootlin-arcle-hs38-uclibc.config
bootlin-armv5-uclibc.config
bootlin-armv7-glibc.config
bootlin-armv7-musl.config
bootlin-armv7m-uclibc.config
bootlin-m68k-5208-uclibc.config
bootlin-m68k-68040-uclibc.config
bootlin-microblazeel-uclibc.config
bootlin-mipsel32r6-glibc.config
bootlin-mipsel-uclibc.config
bootlin-nios2-glibc.config
bootlin-openrisc-uclibc.config
bootlin-powerpc64le-power8-glibc.config
bootlin-powerpc-e500mc-uclibc.config
bootlin-riscv32-glibc.config
bootlin-riscv64-glibc.config
bootlin-riscv64-musl.config
bootlin-s390x-z13-glibc.config
bootlin-sh4-uclibc.config
bootlin-sparc64-glibc.config
bootlin-sparc-uclibc.config
bootlin-x86-64-glibc.config
bootlin-x86-64-musl.config
bootlin-x86-64-uclibc.config
bootlin-x86-i686-musl.config support/config-fragments: fix bootlin-x86-i686-musl 2024-06-03 17:52:06 +02:00
bootlin-xtensa-uclibc.config
br-arc-full-internal.config
br-arc-internal-glibc.config
br-arm-basic.config
br-arm-full-nothread.config
br-arm-full-static.config
br-arm-internal-full.config
br-arm-internal-glibc.config
br-arm-internal-musl.config
br-i386-pentium4-full.config
br-microblazeel-full-internal.config
br-mips64-n64-full.config
br-mips64r6-el-hf-glibc.config
br-powerpc64-power7-glibc.config
br-powerpc-603e-basic-cpp.config
br-powerpc-internal-full.config
br-riscv64-full-internal.config
br-s390x-z13-internal-glibc.config
br-xtensa-full-internal.config
linaro-aarch64-be.config
linaro-aarch64.config
linaro-arm.config
sourcery-mips64.config
sourcery-mips.config
sourcery-nios2.config
toolchain-configs.csv