Skip to content

Commit 032593d

Browse files
committed
docs: TODO markers for deferred macos work (default-static flip, floor 11, stdmod boundary)
1 parent 2d5381e commit 032593d

2 files changed

Lines changed: 21 additions & 3 deletions

File tree

src/build/flags.cppm

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -378,9 +378,19 @@ CompileFlags compute_flags(const BuildPlan& plan) {
378378
// env var or [build] macos_deployment_target, the static LLVM
379379
// libc++ is what makes that floor real (the system libc++ caps it
380380
// at the build host's OS). With no declared floor, keep the
381-
// 0.0.49 behavior — dynamic system libc++, host-coupled — which
382-
// also sidesteps a still-open SIGSEGV in mixed C/C++ static
383-
// binaries (e2e 36; tracked in the design doc).
381+
// 0.0.49 behavior — dynamic system libc++, host-coupled.
382+
//
383+
// TODO(macos-static-default): flip static to the unconditional
384+
// default (rust-style "portable by default") once two tracked
385+
// issues are fixed — (1) mixed C/C++ static binaries SIGSEGV at
386+
// runtime (e2e 36_llvm_toolchain: answer.c + std::cout main.cpp,
387+
// exit 139; root cause not yet isolated), (2) the std-module
388+
// staging/fingerprint boundary (see canonical_compile_flags).
389+
// TODO(macos-floor-11): the official LLVM archives are built for
390+
// macOS 14; supporting 11-13 needs a custom libc++ build shipped
391+
// via xlings-res (data-only change — swap the archive source).
392+
// Both tracked in xlings
393+
// .agents/docs/2026-06-05-macos-min-version-support.md §5.
384394
if (f.staticStdlib && !macosDeploymentTarget.empty()
385395
&& !llvmRootForStdlib.empty()) {
386396
auto libDir = llvmRootForStdlib / "lib";

src/cli.cppm

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,14 @@ std::string canonical_compile_flags(const mcpp::manifest::Manifest& m) {
593593
// (env override > [build] macos_deployment_target manifest default)
594594
// into the fingerprint so switching targets rebuilds the BMI cache
595595
// instead of dying with a module config mismatch.
596+
//
597+
// TODO(macos-default-floor): a built-in default floor (rustc-style,
598+
// see the 0.0.50 revert) cannot land until the std-module prebuild /
599+
// staging pipeline consumes the SAME resolved value as this rule and
600+
// flags.cppm — injecting a default here alone left the test build's
601+
// std.pcm unstaged (import std failed wholesale on macos CI).
602+
// Centralize the resolution in one helper, then re-land.
603+
// See xlings .agents/docs/2026-06-05-macos-min-version-support.md §5.
596604
if constexpr (mcpp::platform::is_macos) {
597605
std::string dtv;
598606
if (const char* dt = std::getenv("MACOSX_DEPLOYMENT_TARGET"); dt && *dt) {

0 commit comments

Comments
 (0)