libcxx: respond to some feature macro changes in LLVM 20

ba87515fea

closes #25376
This commit is contained in:
Alex Rønne Petersen 2025-09-28 08:00:56 +02:00
parent ebaec8e03f
commit 4fd78f9c26
No known key found for this signature in database

View file

@ -509,19 +509,19 @@ pub fn addCxxArgs(
try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_ABI_NAMESPACE=__{d}", .{ try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_ABI_NAMESPACE=__{d}", .{
abi_version, abi_version,
})); }));
try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_{s}THREADS", .{ try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_THREADS={d}", .{
if (!comp.config.any_non_single_threaded) "NO_" else "", @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_MONOTONIC_CLOCK");
try cflags.append("-D_LIBCPP_HAS_TERMINAL"); try cflags.append("-D_LIBCPP_HAS_TERMINAL");
try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_{s}MUSL_LIBC", .{ try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_MUSL_LIBC={d}", .{
if (!target.abi.isMusl()) "NO_" else "", @as(u1, if (target.abi.isMusl()) 1 else 0),
})); }));
try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS"); try cflags.append("-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS");
try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS"); try cflags.append("-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS");
try cflags.append("-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS"); try cflags.append("-D_LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS=0");
try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_{s}FILESYSTEM", .{ try cflags.append(try std.fmt.allocPrint(arena, "-D_LIBCPP_HAS_FILESYSTEM={d}", .{
if (target.os.tag == .wasi) "NO_" else "", @as(u1, if (target.os.tag == .wasi) 0 else 1),
})); }));
try cflags.append("-D_LIBCPP_HAS_RANDOM_DEVICE"); try cflags.append("-D_LIBCPP_HAS_RANDOM_DEVICE");
try cflags.append("-D_LIBCPP_HAS_LOCALIZATION"); try cflags.append("-D_LIBCPP_HAS_LOCALIZATION");
@ -545,7 +545,7 @@ pub fn addCxxArgs(
if (target.isGnuLibC()) { if (target.isGnuLibC()) {
// glibc 2.16 introduced aligned_alloc // glibc 2.16 introduced aligned_alloc
if (target.os.versionRange().gnuLibCVersion().?.order(.{ .major = 2, .minor = 16, .patch = 0 }) == .lt) { 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"); try cflags.append("-D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS");