From 4d6c3b5954d762f614077e463295564512b55cc6 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 3 Apr 2026 16:40:36 -0700 Subject: [PATCH 1/6] Update WebAssembly Helix image versions Switch the Browser/WASM and WASI Helix queues to the published Ubuntu 26.04 webassembly images while keeping the oldest 22.04 coverage slot intact. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- eng/pipelines/coreclr/templates/helix-queues-setup.yml | 4 ++-- eng/pipelines/helix-platforms.yml | 4 ++-- eng/pipelines/libraries/helix-queues-setup.yml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 6069993b2d6089..119f534c15b276 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -63,9 +63,9 @@ jobs: # Browser wasm - ${{ if eq(parameters.platform, 'browser_wasm') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # iOS devices - ${{ if in(parameters.platform, 'ios_arm64') }}: diff --git a/eng/pipelines/helix-platforms.yml b/eng/pipelines/helix-platforms.yml index e70071a6cbd1b2..ec17bc0728115d 100644 --- a/eng/pipelines/helix-platforms.yml +++ b/eng/pipelines/helix-platforms.yml @@ -262,9 +262,9 @@ variables: # =========================================== # Browser WASM - # Latest: Ubuntu 24.04 + # Latest: Ubuntu 26.04 - name: helix_browser_wasm_latest - value: (Ubuntu.2404.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 + value: (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Oldest: Ubuntu 22.04 - name: helix_browser_wasm_oldest diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 8399dfae77e3fc..248d08ae587a6a 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -161,15 +161,15 @@ jobs: # WASI - ${{ if eq(parameters.platform, 'wasi_wasm') }}: - - (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly # Browser WebAssembly - ${{ if eq(parameters.platform, 'browser_wasm') }}: - - (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly # Browser WebAssembly Firefox - ${{ if eq(parameters.platform, 'browser_wasm_firefox') }}: - - (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly # Browser WebAssembly windows - ${{ if in(parameters.platform, 'browser_wasm_win', 'wasi_wasm_win') }}: From bac01a3ad8874366f95f15079954aad4089f242a Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 3 Apr 2026 16:47:19 -0700 Subject: [PATCH 2/6] Align WASM Helix tags with amd64 alias Use the explicit ubuntu-26.04-helix-webassembly-amd64 tag in the Libraries Helix queues for consistency with the other WebAssembly queue definitions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- eng/pipelines/libraries/helix-queues-setup.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 248d08ae587a6a..6860c540795987 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -161,15 +161,15 @@ jobs: # WASI - ${{ if eq(parameters.platform, 'wasi_wasm') }}: - - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Browser WebAssembly - ${{ if eq(parameters.platform, 'browser_wasm') }}: - - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Browser WebAssembly Firefox - ${{ if eq(parameters.platform, 'browser_wasm_firefox') }}: - - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly + - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Browser WebAssembly windows - ${{ if in(parameters.platform, 'browser_wasm_win', 'wasi_wasm_win') }}: From 3637dac6856576c0b00caef5571271bc7eebd54b Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 3 Apr 2026 16:52:11 -0700 Subject: [PATCH 3/6] Clarify OS coverage skill tag checks Update the update-os-coverage skill to treat image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json as the authoritative source for prereqs tags and to prefer architecture-specific aliases when the Helix queue is processor-specific. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/skills/update-os-coverage/SKILL.md | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/skills/update-os-coverage/SKILL.md b/.github/skills/update-os-coverage/SKILL.md index 09e517e8302add..1aa999adc3bbbe 100644 --- a/.github/skills/update-os-coverage/SKILL.md +++ b/.github/skills/update-os-coverage/SKILL.md @@ -89,14 +89,15 @@ Use the repo tools that fit the environment. The shell snippets below are refere ### 1. Verify container image availability -Before making any changes, confirm the target container image exists. One convenient way is to check the [image-info JSON](https://github.com/dotnet/versions/blob/main/build-info/docker/image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json) for published images: +Before making any changes, confirm the **exact target container tag** exists in the [image-info JSON](https://github.com/dotnet/versions/blob/main/build-info/docker/image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json). This file is more authoritative than probing the registry directly and should be the primary source of truth for published `dotnet-buildtools/prereqs` tags: ```bash +TARGET_TAG="" curl -sL https://github.com/dotnet/versions/raw/refs/heads/main/build-info/docker/image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json \ - | jq '[.repos[].images[].platforms[].simpleTags[]] | map(select(startswith("-"))) | sort | .[]' + | jq -r --arg tag "$TARGET_TAG" '[.repos[].images[].platforms[].simpleTags[]] | unique | map(select(. == $tag)) | .[]' ``` -If the image is **not found**, stop and inform the user. The image must be created first at [dotnet/dotnet-buildtools-prereqs-docker](https://github.com/dotnet/dotnet-buildtools-prereqs-docker). Check if an open issue or PR already exists, for example: +If the exact tag is **not found in `image-info`**, stop and inform the user. Treat that as authoritative even if a registry lookup appears to work. The image must be created first at [dotnet/dotnet-buildtools-prereqs-docker](https://github.com/dotnet/dotnet-buildtools-prereqs-docker). Check if an open issue or PR already exists, for example: ```bash gh search issues " " --repo dotnet/dotnet-buildtools-prereqs-docker --state open @@ -167,7 +168,15 @@ For each reference found in step 3: AzureLinux (e.g. `AzureLinux.3.Amd64.Open`) appears as both a standalone VM queue and the primary host queue for container-based distros. It does not follow the container image pattern above. - Architecture suffixes vary: `Amd64`, `Arm64`, `ArmArch`, `Arm32` for queue names; `amd64`, `arm64v8`, `arm32v7` for image tags. + Architecture suffixes vary: `Amd64`, `Arm64`, `ArmArch`, `Arm32` for queue names; `amd64`, `arm64v8`, `arm32v7` for image tags. + + When both generic and processor-specific aliases exist in `image-info` (for example, `ubuntu-26.04-helix-webassembly` and `ubuntu-26.04-helix-webassembly-amd64`), **prefer the processor-specific tag** when the queue/environment is processor-specific: + + - `...Amd64...` queue → prefer `*-amd64` + - `...Arm64...` / `...ArmArch...` queue → prefer `*-arm64v8` + - `...Arm32...` queue → prefer `*-arm32v7` + + Use the generic alias only when the surrounding environment is intentionally architecture-agnostic or when no processor-specific tag exists in `image-info`. For ARM-based queues, host queues are often `Ubuntu.2204.ArmArch.Open`, but some queues (for example `helix_linux_arm64_oldest`) use AzureLinux-based host queues such as `AzureLinux.3.Arm64.Open`. Follow the existing pattern for the specific queue in `eng/pipelines/helix-platforms.yml` when updating versions. @@ -179,7 +188,9 @@ After editing, verify: 2. **All new references are syntactically consistent** — compare with adjacent entries in the same file to verify formatting. -3. **Variable names are unchanged** — only the `value` fields change, never the `name` fields. +3. **Updated image tags are present in `image-info`** — verify that each new tag you used appears in `image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json`. + +4. **Variable names are unchanged** — only the `value` fields change, never the `name` fields. ### 6. CI pipeline coverage @@ -251,7 +262,7 @@ Check if the relevant `supported-os.json` in dotnet/core needs corresponding upd The PR description should include: - Table of changes (old version → new version, which slots) - EOL dates for old and new versions - - Confirmation that container images are available + - Confirmation that the exact container image tags are available in `image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json` - Which CI pipeline(s) need to run (see [step 6](#6-ci-pipeline-coverage)) - Link to the [os-onboarding guide](https://github.com/dotnet/runtime/blob/main/docs/project/os-onboarding.md) - Link to tracking issue if applicable (e.g. [dotnet/core#9638](https://github.com/dotnet/core/issues/9638)) From cdc46ecd4b183c057c6b6b652db8c491cd18f1ae Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Apr 2026 00:03:31 +0000 Subject: [PATCH 4/6] Fix .Open suffix on public Browser WASM Helix queue identifiers and SKILL.md indentation Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/607ac376-be42-4d08-847c-fc0746d7c76f Co-authored-by: richlander <2608468+richlander@users.noreply.github.com> --- .github/skills/update-os-coverage/SKILL.md | 12 ++++++------ .../coreclr/templates/helix-queues-setup.yml | 2 +- eng/pipelines/helix-platforms.yml | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/skills/update-os-coverage/SKILL.md b/.github/skills/update-os-coverage/SKILL.md index 1aa999adc3bbbe..35a6fd28f95e51 100644 --- a/.github/skills/update-os-coverage/SKILL.md +++ b/.github/skills/update-os-coverage/SKILL.md @@ -168,15 +168,15 @@ For each reference found in step 3: AzureLinux (e.g. `AzureLinux.3.Amd64.Open`) appears as both a standalone VM queue and the primary host queue for container-based distros. It does not follow the container image pattern above. - Architecture suffixes vary: `Amd64`, `Arm64`, `ArmArch`, `Arm32` for queue names; `amd64`, `arm64v8`, `arm32v7` for image tags. + Architecture suffixes vary: `Amd64`, `Arm64`, `ArmArch`, `Arm32` for queue names; `amd64`, `arm64v8`, `arm32v7` for image tags. - When both generic and processor-specific aliases exist in `image-info` (for example, `ubuntu-26.04-helix-webassembly` and `ubuntu-26.04-helix-webassembly-amd64`), **prefer the processor-specific tag** when the queue/environment is processor-specific: + When both generic and processor-specific aliases exist in `image-info` (for example, `ubuntu-26.04-helix-webassembly` and `ubuntu-26.04-helix-webassembly-amd64`), **prefer the processor-specific tag** when the queue/environment is processor-specific: - - `...Amd64...` queue → prefer `*-amd64` - - `...Arm64...` / `...ArmArch...` queue → prefer `*-arm64v8` - - `...Arm32...` queue → prefer `*-arm32v7` + - `...Amd64...` queue → prefer `*-amd64` + - `...Arm64...` / `...ArmArch...` queue → prefer `*-arm64v8` + - `...Arm32...` queue → prefer `*-arm32v7` - Use the generic alias only when the surrounding environment is intentionally architecture-agnostic or when no processor-specific tag exists in `image-info`. + Use the generic alias only when the surrounding environment is intentionally architecture-agnostic or when no processor-specific tag exists in `image-info`. For ARM-based queues, host queues are often `Ubuntu.2204.ArmArch.Open`, but some queues (for example `helix_linux_arm64_oldest`) use AzureLinux-based host queues such as `AzureLinux.3.Arm64.Open`. Follow the existing pattern for the specific queue in `eng/pipelines/helix-platforms.yml` when updating versions. diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 119f534c15b276..85ab4859a020ef 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -63,7 +63,7 @@ jobs: # Browser wasm - ${{ if eq(parameters.platform, 'browser_wasm') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 + - (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 diff --git a/eng/pipelines/helix-platforms.yml b/eng/pipelines/helix-platforms.yml index ec17bc0728115d..dbceeb4b25eca2 100644 --- a/eng/pipelines/helix-platforms.yml +++ b/eng/pipelines/helix-platforms.yml @@ -264,11 +264,11 @@ variables: # Browser WASM # Latest: Ubuntu 26.04 - name: helix_browser_wasm_latest - value: (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 + value: (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Oldest: Ubuntu 22.04 - name: helix_browser_wasm_oldest - value: (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly-amd64 + value: (Ubuntu.2204.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly-amd64 # =========================================== # Android Platforms From 10466a0cacd8f02170e8518c6e484179267e4346 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 3 Apr 2026 17:53:52 -0700 Subject: [PATCH 5/6] Use .Open queue identifiers for WASM Helix Normalize the public Browser WASM and WASI container queue identifiers to the .Open form so they match the established Helix naming convention and stop triggering repetitive review noise. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- eng/pipelines/libraries/helix-queues-setup.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 6860c540795987..e31984c960aedf 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -161,15 +161,15 @@ jobs: # WASI - ${{ if eq(parameters.platform, 'wasi_wasm') }}: - - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 + - (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Browser WebAssembly - ${{ if eq(parameters.platform, 'browser_wasm') }}: - - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 + - (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Browser WebAssembly Firefox - ${{ if eq(parameters.platform, 'browser_wasm_firefox') }}: - - (Ubuntu.2604.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 + - (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64 # Browser WebAssembly windows - ${{ if in(parameters.platform, 'browser_wasm_win', 'wasi_wasm_win') }}: From 5421aea794adefaf0739fb4842cc62cef1da8a49 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 3 Apr 2026 18:12:45 -0700 Subject: [PATCH 6/6] Remove Mariner 2.0 references Update the remaining build documentation references to point at the current Azure Linux cross-build images and wording. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/project/linux-build-methodology.md | 4 ++-- docs/workflow/building/coreclr/cross-building.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/project/linux-build-methodology.md b/docs/project/linux-build-methodology.md index 5d9ddba7c39159..a4d8e5826754ca 100644 --- a/docs/project/linux-build-methodology.md +++ b/docs/project/linux-build-methodology.md @@ -50,7 +50,7 @@ We continued using this tooling, and extended its use to x64 builds which were n ## Host toolchain setup -Our build images are based on the latest release of [Azure Linux](https://github.com/microsoft/azurelinux) (CBL-Mariner 2.0 in [earlier](#evolution-of-libc-targeting) versions), where we have full control over the supply chain of our build tools, without sacrificing compatibility. We strive to use the latest versions of our toolchain components, installing them from the Azure Linux package sources where available, or building them from source where we need more control. +Our build images are based on the latest release of [Azure Linux](https://github.com/microsoft/azurelinux), where we have full control over the supply chain of our build tools, without sacrificing compatibility. We strive to use the latest versions of our toolchain components, installing them from the Azure Linux package sources where available, or building them from source where we need more control. Tools that we install as Azure Linux packages include CMake, debootstrap, and header files needed to build the crosscomponents (tools designed to run on the build host but produce code for the target, like the crossgen compiler used to produce ready-to-run code for the framework libraries). @@ -146,6 +146,6 @@ deps & builder --> base In .NET 7 when this project started, we learned that Amazon Linux 2 had an older glibc than we initially targed in our arm64 builds. We had been targeting glibc 2.27 from Ubuntu 18.04. We [enabled](https://github.com/dotnet/runtime/pull/80866) compatibility with Amazon Linux 2 by moving the arm64 builds to target Ubuntu 16.04 with glibc 2.23. At that time we still used an Ubuntu host image to build the arm64 product, but now we were targeting a different version than the host, which was an Ubuntu 18.04 image. -.NET 8 was the first release that [unified](https://github.com/dotnet/runtime/issues/83428) all of our Linux builds to use cross-compilation, and to build on a Microsoft-supported Linux distribution (CBL-Mariner 2.0 at the time of release). Before this our x64 glibc and musl builds were not using a sysroot. With this setup we unified all of the Linux builds to target a common version of glibc (2.23 from Ubuntu 16.04) or musl libc (1.2.2 from Alpine 3.13). +.NET 8 was the first release that [unified](https://github.com/dotnet/runtime/issues/83428) all of our Linux builds to use cross-compilation, and to build on a Microsoft-supported Linux distribution in the Azure Linux family. Before this our x64 glibc and musl builds were not using a sysroot. With this setup we unified all of the Linux builds to target a common version of glibc (2.23 from Ubuntu 16.04) or musl libc (1.2.2 from Alpine 3.13). In .NET 9 we [moved](https://github.com/dotnet/dotnet-buildtools-prereqs-docker/pull/1015) our builds to Azure Linux 3.0, which was easy to do thanks to the separation between the host and target versions. We also discovered that our supported Linux distributions were moving to 64-bit `time_t` on arm32 to solve the [Y2038](https://github.com/dotnet/runtime/blob/main/docs/design/features/y2038.md) problem. The flexibility of the sysroot approach made it easy to update our arm32 builds to target a more recent distribution with support for 64-bit `time_t`, without requiring any other changes to the build images. diff --git a/docs/workflow/building/coreclr/cross-building.md b/docs/workflow/building/coreclr/cross-building.md index 28ea2f0ef118f1..e744be9259122a 100644 --- a/docs/workflow/building/coreclr/cross-building.md +++ b/docs/workflow/building/coreclr/cross-building.md @@ -155,7 +155,7 @@ docker run --rm \ -v :/runtime \ -w /runtime \ -e ROOTFS_DIR=/crossrootfs/arm64 \ - mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64 \ + mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-arm64 \ ./build.sh --subset clr --cross --arch arm64 ```