Skip to content

[release/11.0] Unify native API availability probes - #134328

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

akoeplinger merged 1 commit into
dotnet:release/11.0from
akoeplinger:backport/native-availability-probes-11.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, preserving existing probe state.

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
Copilot AI lite review requested due to automatic review settings September 21, 2026 10:36
@github-actions github-actions Bot added the area-PAL-coreclr only for closed issues label Sep 21, 2026
@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.

@akoeplinger akoeplinger added area-Infrastructure and removed area-PAL-coreclr only for closed issues labels Sep 21, 2026
@akoeplinger akoeplinger added the Servicing-approved Approved for servicing release label Sep 21, 2026
@akoeplinger

Copy link
Copy Markdown
Member Author

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

@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.

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

Backports unified native CMake availability probes for Xcode 27 compatibility and deployment-target-aware pipe2 detection.

Changes:

  • Centralizes Apple availability-warning enforcement.
  • Standardizes header-aware pipe2 probes with scoped _GNU_SOURCE.
  • Preserves probe state across native components.
File Description
src/​native/​libs/​configure.cmake Updates native library probing.
src/​native/​external/​libunwind_extras/​configure.cmake Standardizes libunwind probing.
src/​coreclr/​pal/​src/​configure.cmake Standardizes PAL probing.
eng/​native/​configurecompiler.cmake Adds shared availability-warning enforcement.

@akoeplinger

Copy link
Copy Markdown
Member Author

/ba-g test failures on wasm which are unrelated to the changes here

@akoeplinger
akoeplinger merged commit 8152bbe into dotnet:release/11.0 Sep 23, 2026
178 of 185 checks passed
@akoeplinger
akoeplinger deleted the backport/native-availability-probes-11.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