From 9e23e1d16c77d05ab0b4c2bcc861f2aaf4ad5c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Mon, 5 May 2025 14:58:13 +0200 Subject: [PATCH] compiler: Define __FreeBSD_version when targeting FreeBSD libc. --- src/Compilation.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Compilation.zig b/src/Compilation.zig index 0a63d29e13..bd7d5221e7 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -5852,6 +5852,15 @@ pub fn addCCArgs( try argv.append( try std.fmt.allocPrint(arena, "-D_WIN32_WINNT=0x{x:0>4}", .{minver}), ); + } else if (target.isFreeBSDLibC()) { + // https://docs.freebsd.org/en/books/porters-handbook/versions + const min_ver = target.os.version_range.semver.min; + try argv.append(try std.fmt.allocPrint(arena, "-D__FreeBSD_version={d}", .{ + // We don't currently respect the minor and patch components. This wouldn't be particularly + // helpful because our abilists file only tracks major FreeBSD releases, so the link-time stub + // symbols would be inconsistent with header declarations. + min_ver.major * 100_000, + })); } }