Files
buildroot/toolchain
Thomas Petazzoni 06426297c4 toolchain/Config.in: refine BR2_TOOLCHAIN_HAS_LIBQUADMATH definition
In commit a2380157f6 ("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@smile.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-08-25 10:34:02 +02:00
..