From e8b6dd0dd2f82671f2f839da4969c685d375faa0 Mon Sep 17 00:00:00 2001 From: Martin Jesper Low Madsen Date: Sun, 9 Nov 2025 22:31:56 +0100 Subject: [PATCH 1/3] Fix Darwin builds for non-standard environments (e.g. Nix) --- aws-lc-sys/builder/cc_builder.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aws-lc-sys/builder/cc_builder.rs b/aws-lc-sys/builder/cc_builder.rs index 71a6b29bd32..2f1901aa971 100644 --- a/aws-lc-sys/builder/cc_builder.rs +++ b/aws-lc-sys/builder/cc_builder.rs @@ -391,6 +391,8 @@ impl CcBuilder { let mut new_cflags = original_cflags.clone(); // The `_FORTIFY_SOURCE` macro often requires optimizations to also be enabled, so unset it. new_cflags.push_str(" -O0 -Wp,-U_FORTIFY_SOURCE"); + // Certain MacOS system headers are guarded by _POSIX_C_SOURCE and _DARWIN_C_SOURCE + new_cflags.push_str(" -D_DARWIN_C_SOURCE"); set_env_for_target("CFLAGS", &new_cflags); // cc-rs currently prioritizes flags provided by CFLAGS over the flags provided by the build script. // The environment variables used by the compiler are set when `get_compiler` is called. From f745e7db9d387b8f58666c081cf9c4d9e4ff99d0 Mon Sep 17 00:00:00 2001 From: Justin Smith Date: Thu, 20 Nov 2025 10:29:54 -0500 Subject: [PATCH 2/3] Conditionally add _DARWIN_C_SOURCE define --- aws-lc-sys/builder/cc_builder.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/aws-lc-sys/builder/cc_builder.rs b/aws-lc-sys/builder/cc_builder.rs index 2f1901aa971..7caf8381e2f 100644 --- a/aws-lc-sys/builder/cc_builder.rs +++ b/aws-lc-sys/builder/cc_builder.rs @@ -222,6 +222,11 @@ impl CcBuilder { } } + if target_os() == "macos" { + // Certain MacOS system headers are guarded by _POSIX_C_SOURCE and _DARWIN_C_SOURCE + build_options.push(BuildOption::define("_DARWIN_C_SOURCE", "1")); + } + let opt_level = cargo_env("OPT_LEVEL"); match opt_level.as_str() { "0" | "1" | "2" => { @@ -391,8 +396,6 @@ impl CcBuilder { let mut new_cflags = original_cflags.clone(); // The `_FORTIFY_SOURCE` macro often requires optimizations to also be enabled, so unset it. new_cflags.push_str(" -O0 -Wp,-U_FORTIFY_SOURCE"); - // Certain MacOS system headers are guarded by _POSIX_C_SOURCE and _DARWIN_C_SOURCE - new_cflags.push_str(" -D_DARWIN_C_SOURCE"); set_env_for_target("CFLAGS", &new_cflags); // cc-rs currently prioritizes flags provided by CFLAGS over the flags provided by the build script. // The environment variables used by the compiler are set when `get_compiler` is called. @@ -404,6 +407,10 @@ impl CcBuilder { }; je_builder.define("AWSLC", "1"); + if target_os() == "macos" { + // Certain MacOS system headers are guarded by _POSIX_C_SOURCE and _DARWIN_C_SOURCE + je_builder.define("_DARWIN_C_SOURCE", "1"); + } je_builder.pic(true); if target_os() == "windows" && compiler.is_like_msvc() { je_builder.flag("/Od").flag("/W4").flag("/DYNAMICBASE"); From a85d0041578e608ad5ef6a4db34c2c0db1520a9c Mon Sep 17 00:00:00 2001 From: Justin Smith Date: Thu, 20 Nov 2025 12:28:32 -0500 Subject: [PATCH 3/3] Also for darwin OS --- aws-lc-sys/builder/cc_builder.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aws-lc-sys/builder/cc_builder.rs b/aws-lc-sys/builder/cc_builder.rs index 7caf8381e2f..a5cd5a201a7 100644 --- a/aws-lc-sys/builder/cc_builder.rs +++ b/aws-lc-sys/builder/cc_builder.rs @@ -222,7 +222,7 @@ impl CcBuilder { } } - if target_os() == "macos" { + if target_os() == "macos" || target_os() == "darwin" { // Certain MacOS system headers are guarded by _POSIX_C_SOURCE and _DARWIN_C_SOURCE build_options.push(BuildOption::define("_DARWIN_C_SOURCE", "1")); } @@ -407,7 +407,7 @@ impl CcBuilder { }; je_builder.define("AWSLC", "1"); - if target_os() == "macos" { + if target_os() == "macos" || target_os() == "darwin" { // Certain MacOS system headers are guarded by _POSIX_C_SOURCE and _DARWIN_C_SOURCE je_builder.define("_DARWIN_C_SOURCE", "1"); }