[Buildroot] [PATCH] toolchain/Config.in: refine BR2_TOOLCHAIN_HAS_LIBQUADMATH definition
Thomas Perale
thomas.perale at mind.be
Fri Sep 4 12:18:32 UTC 2026
In reply of:
> In commit a2380157f6688c5c065fa19060a2c33145bab95b ("toolchain: enable
> libquadmath for PowerPC with VSX"), the definition of
> BR2_TOOLCHAIN_HAS_LIBQUADMATH has been extended to also be true when
> BR2_POWERPC_CPU_HAS_VSX.
>
> However, practical experiments show that when 64-bit VSX-capable cores
> are used in 32-bit mode, libquadmath is not built by GCC, causing
> build failures:
>
> cp: cannot stat '/home/autobuild/autobuild/instance-3/output-1/host/powerpc-buildroot-linux-musl/lib*/libquadmath*': No such file or directory
>
> We did an extensive testing, building the 27 combinations of:
>
> - GCC versions: 14, 15, 16
> - C library: glibc, uclibc, musl
> - PowerPC 32-bit, PowerPC 64-bit, PowerPC 64-bit little endian
>
> This testing provides the following results:
>
> | gcc14 | powerpc64 | glibc | OK |
> | gcc14 | powerpc64le | glibc | OK |
> | gcc14 | powerpc64le | musl | OK |
> | gcc14 | powerpc64le | uclibc | SKIPPED |
> | gcc14 | powerpc64 | musl | OK |
> | gcc14 | powerpc64 | uclibc | SKIPPED |
> | gcc14 | powerpc | glibc | FAILED |
> | gcc14 | powerpc | musl | FAILED |
> | gcc14 | powerpc | uclibc | FAILED |
> | gcc15 | powerpc64 | glibc | OK |
> | gcc15 | powerpc64le | glibc | OK |
> | gcc15 | powerpc64le | musl | OK |
> | gcc15 | powerpc64le | uclibc | SKIPPED |
> | gcc15 | powerpc64 | musl | OK |
> | gcc15 | powerpc64 | uclibc | SKIPPED |
> | gcc15 | powerpc | glibc | FAILED |
> | gcc15 | powerpc | musl | FAILED |
> | gcc15 | powerpc | uclibc | FAILED |
> | gcc16 | powerpc64 | glibc | OK |
> | gcc16 | powerpc64le | glibc | OK |
> | gcc16 | powerpc64le | musl | OK |
> | gcc16 | powerpc64le | uclibc | SKIPPED |
> | gcc16 | powerpc64 | musl | OK |
> | gcc16 | powerpc64 | uclibc | SKIPPED |
> | gcc16 | powerpc | glibc | FAILED |
> | gcc16 | powerpc | musl | FAILED |
> | gcc16 | powerpc | uclibc | FAILED |
>
> The "SKIPPED" are when the configuration is not possible: uClibc
> doesn't support powerpc64 or powerpc64le.
>
> Then, as we can see, the build fails for all "powerpc"
> configuration. Our conclusion is therefore that libquadmath is not
> supported on PowerPC 32-bit. While we were not able to find direct
> evidence in the gcc code base, this practical experiment shows that is
> simply doesn't work on PowerPC 32-bit.
>
> So, we take the logical action of adjusting
> BR2_TOOLCHAIN_HAS_LIBQUADMATH so that it is true only on
> powerpc64/powerpc64le.
>
> Fixes:
>
> https://autobuild.buildroot.org/results/46d435c9f5086a8695f4f6cd4026bb0d194de13c/
>
> Cc: Romain Naour <romain.naour at smile.fr>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Applied to 2025.02.x & 2026.05.x. Thanks
> ---
> toolchain/Config.in | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/toolchain/Config.in b/toolchain/Config.in
> index 7762106bee..128f8faef2 100644
> --- a/toolchain/Config.in
> +++ b/toolchain/Config.in
> @@ -989,12 +989,12 @@ config BR2_TOOLCHAIN_HAS_ATOMIC
> # - At least, libquadmath is available on:
> # - i*86
> # - x86_64
> -# - PowerPC with vector scalar (VSX) instruction set
> +# - PowerPC64 with vector scalar (VSX) instruction set
> # - When available, libquadmath requires wchar support.
> config BR2_TOOLCHAIN_HAS_LIBQUADMATH
> bool
> default y if BR2_i386 || BR2_x86_64
> - default y if BR2_POWERPC_CPU_HAS_VSX
> + default y if (BR2_powerpc64 || BR2_powerpc64le) && BR2_POWERPC_CPU_HAS_VSX
>
> comment "Bare metal toolchain"
>
> --
> 2.55.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
More information about the buildroot
mailing list