Skip to content

Conversation

@jkoritzinsky
Copy link
Member

@jkoritzinsky jkoritzinsky commented Oct 16, 2025

Continuation of #103088 for .NET 11 (because of RHEL9, our maximum CMake version is still 3.26)

Blocked on dotnet/dotnet-buildtools-prereqs-docker#1520

@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Oct 16, 2025
@jkoritzinsky jkoritzinsky added blocked Issue/PR is blocked on something - see comments area-Infrastructure labels Oct 17, 2025
@dotnet-policy-service
Copy link
Contributor

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

@jkoritzinsky jkoritzinsky removed the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Oct 17, 2025
@jkoritzinsky jkoritzinsky removed the blocked Issue/PR is blocked on something - see comments label Oct 24, 2025
@jkoritzinsky jkoritzinsky marked this pull request as ready for review October 24, 2025 19:12
Copilot AI review requested due to automatic review settings October 24, 2025 19:12
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR upgrades the minimum required CMake version from 3.20 to 3.26 across the dotnet/runtime repository. This enables the use of newer CMake features and aligns with the project's infrastructure requirements for .NET 11, with the version constraint determined by RHEL9 compatibility.

Key changes include:

  • Updating cmake_minimum_required directives throughout the codebase
  • Modernizing CMake syntax to use newer features available in 3.26
  • Updating build infrastructure and documentation

Reviewed Changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/coreclr/CMakeLists.txt Updated minimum CMake version to 3.26
src/mono/CMakeLists.txt Updated minimum CMake version and replaced /Zi with CMAKE_MSVC_DEBUG_INFORMATION_FORMAT
src/native/corehost/CMakeLists.txt Updated minimum CMake version to 3.26
src/native/libs/CMakeLists.txt Updated minimum CMake version to 3.26
src/tests/CMakeLists.txt Updated minimum CMake version to 3.26
eng/native/configurecompiler.cmake Modernized linker option syntax and added support for newer CMake features
eng/native/configureplatform.cmake Replaced manual Linux ID detection with cmake_host_system_information
eng/native/functions.cmake Removed obsolete compile_asm function no longer needed with CMake 3.26
src/coreclr/dlls/mscoree/coreclr/CMakeLists.txt Replaced manual whole-archive handling with $<LINK_LIBRARY:WHOLE_ARCHIVE>
src/native/corehost/apphost/static/CMakeLists.txt Replaced manual whole-archive handling with $<LINK_LIBRARY:WHOLE_ARCHIVE>
src/coreclr/ilasm/CMakeLists.txt Replaced start/end group syntax with $<LINK_GROUP:RESCAN>
src/coreclr/ildasm/exe/CMakeLists.txt Removed manual library group handling and updated linker options
src/coreclr/dlls/mscordac/CMakeLists.txt Replaced start/end group syntax with $<LINK_GROUP:RESCAN> and $<LINK_LIBRARY:WHOLE_ARCHIVE>
src/coreclr/jit/CMakeLists.txt Updated linker flag syntax to use add_link_options(LINKER:-Bsymbolic)
src/coreclr/vm/wks/CMakeLists.txt Removed obsolete compile_asm calls for Visual Studio generator
src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt Removed obsolete compile_asm calls and introduced Runtime.AsmHelpers object library
src/coreclr/debug/ee/wks/CMakeLists.txt Removed obsolete compile_asm calls and removed /Zi from ASM_OPTIONS
src/native/libs/System.Security.Cryptography.Native/CMakeLists.txt Updated CMake version range upper bound to 3.26
src/native/libs/System.Globalization.Native/CMakeLists.txt Updated CMake version range upper bound to 3.26
src/libraries/tests.proj Updated generated CMakeLists.txt templates to require CMake 3.26
docs/workflow/requirements/*.md Updated documentation to reflect CMake 3.26 minimum requirement
eng/pipelines/common/*.yml Updated container images to use Debian 13 with GCC 15

@jkoritzinsky
Copy link
Member Author

/ba-g ARM64 queue is on the floor. WBT failure unrelated.

@jkoritzinsky jkoritzinsky enabled auto-merge (squash) October 29, 2025 17:09
@jkoritzinsky jkoritzinsky disabled auto-merge October 29, 2025 17:10
@jkoritzinsky jkoritzinsky requested a review from hoyosjs November 3, 2025 21:19
@hoyosjs
Copy link
Member

hoyosjs commented Nov 6, 2025

rescan and whole archive make sense - just need to get a build to make sure we don't regress this again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants