Skip to content

[release/10.0] Unify native API availability probes - #134329

Merged
akoeplinger merged 1 commit into
dotnet:release/10.0from
akoeplinger:backport/native-availability-probes-10.0
Sep 23, 2026
Merged

akoeplinger merged 1 commit into
dotnet:release/10.0from
akoeplinger:backport/native-availability-probes-10.0

Conversation

@akoeplinger

@akoeplinger akoeplinger commented Sep 21, 2026 •

Copy link
Copy Markdown
Member

Backport of #134073.

Description

These changes are required for compiling with Xcode 27.

Move supported -Werror=unguarded-availability enforcement into shared native compiler configuration so API probes respect the deployment target regardless of CMake configuration order. Use consistent, header-aware C pipe2 probes in PAL, libunwind extras, and native libraries, with _GNU_SOURCE scoped to each probe using CMake check-state push/pop.

Customer Impact

Building with Xcode 27 can incorrectly detect pipe2 as available for older macOS deployment targets, causing build failures or selecting an API unavailable on the target OS. Shared probe results can otherwise depend on which native component configures first.

Regression

Exposed by newer Apple SDK declarations; not established as a regression introduced by this release.

Testing

CI testing

Risk

Low: limited to native CMake feature detection, with no runtime implementation changes. Availability enforcement is compiler-support gated, and _GNU_SOURCE is scoped to the individual checks. Targeted checks verify flag propagation and probe-state preservation on this branch.

Backport e83e69b (dotnet#134073), adapting the PAL probe because the earlier pipe2 fix is absent.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: efb15d16-e184-4ac5-9673-69a0e061f9bb
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
13 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

@akoeplinger

Copy link
Copy Markdown
Member Author

build-only change necessary to support newer Xcode versions, marking Servicing-approved

@akoeplinger akoeplinger added the Servicing-approved Approved for servicing release label Sep 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

No unresolved review issues were identified.

Review effort: Lite
Findings: None

What changed in this PR

Unifies native API availability probes for Xcode 27 compatibility.

Changes:

  • Centralizes deployment-target availability enforcement.
  • Standardizes header-aware, _GNU_SOURCE-scoped pipe2 probes.
  • Preserves CMake probe state.
File Description
src/​native/​libs/​configure.cmake Updates the native library probe.
src/​native/​external/​libunwind_extras/​configure.cmake Updates the libunwind probe.
src/​coreclr/​pal/​src/​configure.cmake Updates the PAL probe.
eng/​native/​configurecompiler.cmake Centralizes availability-warning enforcement.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@akoeplinger
akoeplinger merged commit 1134b52 into dotnet:release/10.0 Sep 23, 2026
174 of 177 checks passed
@akoeplinger
akoeplinger deleted the backport/native-availability-probes-10.0 branch September 23, 2026 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-Infrastructure Servicing-approved Approved for servicing release

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants