From 5a23bf4b271ab809b18966e31f521c2b47298448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 3 Oct 2026 01:02:56 +0200 Subject: [PATCH] std.Target: bump minimum glibc version for powerpc64le to 2.32 From https://lwn.net/Articles/828210/: * powerpc64le supports IEEE128 long double libm/libc redirects when using the -mabi=ieeelongdouble to compile C code on supported GCC toolchains. It is recommended to use GCC 8 or newer when testing this option. --- lib/std/Target.zig | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 76d8122a561ad747d8c7c05badd529388d22ec77..8b8580bbea1ea789f586582c8e22627c0ca91cd4 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -466,10 +466,11 @@ pub const Os = struct { .max = .{ .major = 7, .minor = 2, .patch = 0 }, }, .glibc = blk: { - // For 32-bit targets that traditionally used 32-bit time, we require - // glibc 2.34 for full 64-bit time support. For everything else, we only - // require glibc 2.31. + // const default_min: std.SemanticVersion = switch (arch) { + // For 32-bit targets that traditionally used 32-bit time, we + // require 2.34 for full 64-bit time support. For everything else, + // we only require 2.31. .arm, .armeb, .csky, @@ -486,6 +487,10 @@ pub const Os = struct { .{ .major = 2, .minor = 34, .patch = 0 } else .{ .major = 2, .minor = 31, .patch = 0 }, + // We need 2.32 because it was the first version to fully support + // IEEE 128-bit `long double` (via `-mabi=ieeelongdouble`). + .powerpc64le, + => .{ .major = 2, .minor = 32, .patch = 0 }, else => .{ .major = 2, .minor = 31, .patch = 0 }, }; -- 2.54.0