From 4fd78f9c2639921739836c08f12949e2476ca2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 28 Sep 2025 08:00:56 +0200 Subject: [PATCH] libcxx: respond to some feature macro changes in LLVM 20 https://github.com/llvm/llvm-project/commit/ba87515fea90b5d55836a8e3be63a7e683ce299d closes #25376 --- src/libs/libcxx.zig | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/libs/libcxx.zig b/src/libs/libcxx.zig index 40da4dd92f..3fc91aaa66 100644 --- a/src/libs/libcxx.zig +++ b/src/libs/libcxx.zig @@ -509,19 +509,19 @@ pub fn addCxxArgs( try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_ABI_NAMESPACE=__{d}", .{ abi_version, })); - try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_{s}THREADS", .{ - if (!comp.config.any_non_single_threaded) "NO_" else "", + try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_THREADS={d}", .{ + @as(u1, if (comp.config.any_non_single_threaded) 1 else 0), })); try cflags.append("-D_LIBCPP_HAS_MONOTONIC_CLOCK"); try cflags.append("-D_LIBCPP_HAS_TERMINAL"); - try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_{s}MUSL_LIBC", .{ - if (!target.abi.isMusl()) "NO_" else "", + try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_MUSL_LIBC={d}", .{ + @as(u1, if (target.abi.isMusl()) 1 else 0), })); try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS"); try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS"); - try cflags.append("-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS"); - try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_{s}FILESYSTEM", .{ - if (target.os.tag == .wasi) "NO_" else "", + try cflags.append("-D_LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS=0"); + try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_FILESYSTEM={d}", .{ + @as(u1, if (target.os.tag == .wasi) 0 else 1), })); try cflags.append("-D_LIBCPP_HAS_RANDOM_DEVICE"); try cflags.append("-D_LIBCPP_HAS_LOCALIZATION"); @@ -545,7 +545,7 @@ pub fn addCxxArgs( if (target.isGnuLibC()) { // glibc 2.16 introduced aligned_alloc if (target.os.versionRange().gnuLibCVersion().?.order(.{ .major = 2, .minor = 16, .patch = 0 }) == .lt) { - try cflags.append("-D_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION"); + try cflags.append("-D_LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION=0"); } } try cflags.append("-D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS");