From c420dbf209b960dbc7d235093e3841a9b767dbf0 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Tue, 26 Nov 2024 18:43:37 +0000 Subject: [PATCH 1/5] Update to .NET 10 build images This updates the libc requirement to: - glibc 2.27 - musl libc 1.2.3 These images have LLVM 19. --- .../templates/pipeline-with-resources.yml | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/eng/pipelines/common/templates/pipeline-with-resources.yml b/eng/pipelines/common/templates/pipeline-with-resources.yml index 0a7130cc8977ee..47e48bf79b09fb 100644 --- a/eng/pipelines/common/templates/pipeline-with-resources.yml +++ b/eng/pipelines/common/templates/pipeline-with-resources.yml @@ -17,7 +17,7 @@ extends: containers: linux_arm: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm env: ROOTFS_DIR: /crossrootfs/arm @@ -27,44 +27,44 @@ extends: ROOTFS_DIR: /crossrootfs/armv6 linux_arm64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm64 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64 env: ROOTFS_DIR: /crossrootfs/arm64 linux_musl_x64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64-alpine + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64-alpine env: ROOTFS_DIR: /crossrootfs/x64 linux_musl_arm: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm-alpine + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm-alpine env: ROOTFS_DIR: /crossrootfs/arm linux_musl_arm64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm64-alpine + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64-alpine env: ROOTFS_DIR: /crossrootfs/arm64 # This container contains all required toolsets to build for Android and for Linux with bionic libc. android: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-android-amd64 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-android-amd64 # This container contains all required toolsets to build for Android and for Linux with bionic libc and a special layout of OpenSSL. linux_bionic: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-android-openssl + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-android-openssl-amd64 # This container contains all required toolsets to build for Android as well as tooling to build docker images. android_docker: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-android-docker + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-android-docker-amd64 linux_x64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64 env: ROOTFS_DIR: /crossrootfs/x64 linux_x86: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-x86 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-x86 env: ROOTFS_DIR: /crossrootfs/x86 @@ -75,7 +75,7 @@ extends: image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode linux_x64_sanitizer: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64-sanitizer + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64-sanitizer env: ROOTFS_DIR: /crossrootfs/x64 @@ -88,17 +88,17 @@ extends: image: mcr.microsoft.com/dotnet-buildtools/prereqs:almalinux-8-source-build linux_s390x: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-s390x + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-s390x env: ROOTFS_DIR: /crossrootfs/s390x linux_ppc64le: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-ppc64le + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-ppc64le env: ROOTFS_DIR: /crossrootfs/ppc64le linux_riscv64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-riscv64 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-riscv64 env: ROOTFS_DIR: /crossrootfs/riscv64 @@ -109,17 +109,17 @@ extends: image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8 browser_wasm: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-webassembly-amd64 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-webassembly-amd64 env: ROOTFS_DIR: /crossrootfs/x64 wasi_wasm: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-webassembly-amd64 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-webassembly-amd64 env: ROOTFS_DIR: /crossrootfs/x64 freebsd_x64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-freebsd-13 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-freebsd-13-amd64 env: ROOTFS_DIR: /crossrootfs/x64 From eb5d930620f07f15f052bc26574d3421a5ddbbd8 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Tue, 26 Nov 2024 21:36:25 +0000 Subject: [PATCH 2/5] Use musl tags, update docs --- .github/workflows/jit-format.yml | 2 +- docs/project/linux-build-methodology.md | 16 ++++----- docs/workflow/using-docker.md | 34 +++++++++---------- .../templates/pipeline-with-resources.yml | 6 ++-- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/jit-format.yml b/.github/workflows/jit-format.yml index 18fb209c628afc..d3cbdec90dceff 100644 --- a/.github/workflows/jit-format.yml +++ b/.github/workflows/jit-format.yml @@ -15,7 +15,7 @@ jobs: os: - name: linux image: ubuntu-latest - container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64 + container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64 extension: '.sh' cross: '--cross' rootfs: '/crossrootfs/x64' diff --git a/docs/project/linux-build-methodology.md b/docs/project/linux-build-methodology.md index 3add1adec6fc8e..5d9ddba7c39159 100644 --- a/docs/project/linux-build-methodology.md +++ b/docs/project/linux-build-methodology.md @@ -100,9 +100,9 @@ style amd64 text-align: left; style arm64 text-align: left; style x86 text-align: left; style arm text-align: left; -style amd64-alpine text-align: left; -style arm64-alpine text-align: left; -style arm-alpine text-align: left; +style amd64-musl text-align: left; +style arm64-musl text-align: left; +style arm-musl text-align: left; style deps text-align: left; style builder text-align: left; @@ -119,9 +119,9 @@ amd64("cross-amd64") arm64("cross-arm64") x86("cross-x86") arm("cross-arm") -amd64-alpine("cross-amd64-alpine") -arm64-alpine("cross-arm64-alpine") -arm-alpine("cross-arm-alpine") +amd64-musl("cross-amd64-musl") +arm64-musl("cross-arm64-musl") +arm-musl("cross-arm-musl") llvm("crossdeps-llvm • source-built LLVM") @@ -134,8 +134,8 @@ builder("crossdeps-builder • source-built LLVM") base("Azure Linux base image") -amd64 & arm64 & x86 & arm & amd64-alpine & arm64-alpine & arm-alpine ----> llvm -amd64 & arm64 & x86 & arm & amd64-alpine & arm64-alpine & arm-alpine -.-> builder +amd64 & arm64 & x86 & arm & amd64-musl & arm64-musl & arm-musl ----> llvm +amd64 & arm64 & x86 & arm & amd64-musl & arm64-musl & arm-musl -.-> builder llvm --> deps llvm -.-> builder diff --git a/docs/workflow/using-docker.md b/docs/workflow/using-docker.md index 03760dc588210c..b85496713ad34c 100644 --- a/docs/workflow/using-docker.md +++ b/docs/workflow/using-docker.md @@ -26,26 +26,26 @@ The main Docker images are the most commonly used ones, and the ones you will pr | Host OS | Target OS | Target Arch | Image | crossrootfs dir | | ----------------- | ------------ | --------------- | -------------------------------------------------------------------------------------- | -------------------- | -| Azure Linux (x64) | Alpine 3.13 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64-alpine` | `/crossrootfs/x64` | -| Azure Linux (x64) | Ubuntu 16.04 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64` | `/crossrootfs/x64` | -| Azure Linux (x64) | Alpine 3.13 | Arm32 (armhf) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm-alpine` | `/crossrootfs/arm` | -| Azure Linux (x64) | Ubuntu 22.04 | Arm32 (armhf) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm` | `/crossrootfs/arm` | -| Azure Linux (x64) | Alpine 3.13 | Arm64 (arm64v8) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm64-alpine` | `/crossrootfs/arm64` | -| Azure Linux (x64) | Ubuntu 16.04 | Arm64 (arm64v8) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-arm64` | `/crossrootfs/arm64` | -| Azure Linux (x64) | Ubuntu 16.04 | x86 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-x86` | `/crossrootfs/x86` | +| Azure Linux (x64) | Alpine 3.13 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64-musl` | `/crossrootfs/x64` | +| Azure Linux (x64) | Ubuntu 16.04 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64` | `/crossrootfs/x64` | +| Azure Linux (x64) | Alpine 3.13 | Arm32 (armhf) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm-musl` | `/crossrootfs/arm` | +| Azure Linux (x64) | Ubuntu 22.04 | Arm32 (armhf) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm` | `/crossrootfs/arm` | +| Azure Linux (x64) | Alpine 3.13 | Arm64 (arm64v8) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64-musl` | `/crossrootfs/arm64` | +| Azure Linux (x64) | Ubuntu 16.04 | Arm64 (arm64v8) | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64` | `/crossrootfs/arm64` | +| Azure Linux (x64) | Ubuntu 16.04 | x86 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-x86` | `/crossrootfs/x86` | **Extended Docker Images** | Host OS | Target OS | Target Arch | Image | crossrootfs dir | | ----------------- | -------------------------- | ------------- | --------------------------------------------------------------------------------------- | ---------------------- | -| Azure Linux (x64) | Android Bionic | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-android-amd64` | *N/A* | -| Azure Linux (x64) | Android Bionic (w/OpenSSL) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-android-openssl` | *N/A* | -| Azure Linux (x64) | Android Bionic (w/Docker) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-android-docker` | *N/A* | -| Azure Linux (x64) | FreeBSD 13 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-freebsd-13` | `/crossrootfs/x64` | -| Azure Linux (x64) | Ubuntu 18.04 | PPC64le | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-ppc64le` | `/crossrootfs/ppc64le` | -| Azure Linux (x64) | Ubuntu 24.04 | RISC-V | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-riscv64` | `/crossrootfs/riscv64` | -| Azure Linux (x64) | Ubuntu 18.04 | S390x | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-s390x` | `/crossrootfs/s390x` | -| Azure Linux (x64) | Ubuntu 16.04 (Wasm) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-webassembly-amd64` | `/crossrootfs/x64` | +| Azure Linux (x64) | Android Bionic | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-android-amd64` | *N/A* | +| Azure Linux (x64) | Android Bionic (w/OpenSSL) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-android-openssl` | *N/A* | +| Azure Linux (x64) | Android Bionic (w/Docker) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-android-docker` | *N/A* | +| Azure Linux (x64) | FreeBSD 13 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-freebsd-13` | `/crossrootfs/x64` | +| Azure Linux (x64) | Ubuntu 18.04 | PPC64le | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-ppc64le` | `/crossrootfs/ppc64le` | +| Azure Linux (x64) | Ubuntu 24.04 | RISC-V | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-riscv64` | `/crossrootfs/riscv64` | +| Azure Linux (x64) | Ubuntu 18.04 | S390x | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-s390x` | `/crossrootfs/s390x` | +| Azure Linux (x64) | Ubuntu 16.04 (Wasm) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-webassembly-amd64` | `/crossrootfs/x64` | | Debian (x64) | Debian 12 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc14-amd64` | *N/A* | | Ubuntu (x64) | Tizen 9.0 | Arm32 (armel) | `mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-armel-tizen` | `/crossrootfs/armel` | | Ubuntu (x64) | Ubuntu 20.04 | Arm32 (v6) | `mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-20.04-cross-armv6-raspbian-10` | `/crossrootfs/armv6` | @@ -58,7 +58,7 @@ Once you've chosen the image that suits your needs, you can issue `docker run` w docker run --rm \ -v :/runtime \ -w /runtime \ - mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64 \ + mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64 \ ./build.sh --subset clr --configuration Checked ``` @@ -67,7 +67,7 @@ Now, dissecting the command: - `--rm`: Erase the created container after it finishes running. - `-v :/runtime`: Mount the runtime repo clone located in `` to the container path `/runtime`. - `-w /runtime`: Start the container in the `/runtime` directory. -- `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net9.0-cross-amd64`: The fully qualified name of the Docker image to download. In this case, we want to use an *Azure Linux* image to target the *x64* architecture. +- `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64`: The fully qualified name of the Docker image to download. In this case, we want to use an *Azure Linux* image to target the *x64* architecture. - `./build.sh --subset clr --configuration Checked`: The build command to run in the repo. In this case, we want to build the *Clr* subset in the *Checked* configuration. You might also want to interact with the container directly for a myriad of reasons, like running multiple builds in different paths for example. In this case, instead of passing the build script command to the `docker` command-line, pass the flag `-it`. When you do this, you will get access to a small shell within the container, which allows you to explore it, run builds manually, and so on, like you would on a regular terminal in your machine. Note that the containers' shell's built-in tools are very limited in comparison to the ones you probably have on your machine, so don't expect to be able to do full work there. diff --git a/eng/pipelines/common/templates/pipeline-with-resources.yml b/eng/pipelines/common/templates/pipeline-with-resources.yml index 47e48bf79b09fb..d15c0a3525d778 100644 --- a/eng/pipelines/common/templates/pipeline-with-resources.yml +++ b/eng/pipelines/common/templates/pipeline-with-resources.yml @@ -32,17 +32,17 @@ extends: ROOTFS_DIR: /crossrootfs/arm64 linux_musl_x64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64-alpine + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-amd64-musl env: ROOTFS_DIR: /crossrootfs/x64 linux_musl_arm: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm-alpine + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm-musl env: ROOTFS_DIR: /crossrootfs/arm linux_musl_arm64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64-alpine + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64-musl env: ROOTFS_DIR: /crossrootfs/arm64 From 33605298890d120232fda8f0f02d3cb5c9771b3f Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Tue, 10 Dec 2024 23:43:23 +0000 Subject: [PATCH 3/5] Fix arm32 build The NEON_AVAILABLE and NEON_HAS_LD4 checks in zlib-ng attempt to pass -mfpu=neon via CMAKE_REQUIRED_FLAGS, but our toolchain.cmake sets -mfpu=vfpv4 via add_compile_options, which overrides the former. Work around this by disabling neon on arm32 linux, matching .NET 9. --- src/native/external/zlib-ng.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/native/external/zlib-ng.cmake b/src/native/external/zlib-ng.cmake index c77f8e214a0ab6..ccc6b742056e6f 100644 --- a/src/native/external/zlib-ng.cmake +++ b/src/native/external/zlib-ng.cmake @@ -15,6 +15,10 @@ set(Z_PREFIX ON) set(WITH_RVV OFF) # We don't support ARMv6 and the check works incorrectly when compiling for ARMv7 w/ Thumb instruction set set(WITH_ARMV6 OFF) +# The checks for NEON_AVAILABLE and NEON_HAS_LD4 work incorrectly when compiling for arm32. +if(CLR_CMAKE_TARGET_ARCH_ARM AND CLR_CMAKE_TARGET_LINUX) + set(WITH_NEON OFF) +endif() # 'aligned_alloc' is not available in browser/wasi, yet it is set by zlib-ng/CMakeLists.txt. if (CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI) From 1f88bceb9d2e02cacdea334317ae6c2759f320b6 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Tue, 10 Dec 2024 16:48:15 -0800 Subject: [PATCH 4/5] Use FreeBSD 14 images Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com> --- docs/workflow/using-docker.md | 2 +- eng/pipelines/common/templates/pipeline-with-resources.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/workflow/using-docker.md b/docs/workflow/using-docker.md index b85496713ad34c..821668fe858fea 100644 --- a/docs/workflow/using-docker.md +++ b/docs/workflow/using-docker.md @@ -41,7 +41,7 @@ The main Docker images are the most commonly used ones, and the ones you will pr | Azure Linux (x64) | Android Bionic | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-android-amd64` | *N/A* | | Azure Linux (x64) | Android Bionic (w/OpenSSL) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-android-openssl` | *N/A* | | Azure Linux (x64) | Android Bionic (w/Docker) | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-android-docker` | *N/A* | -| Azure Linux (x64) | FreeBSD 13 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-freebsd-13` | `/crossrootfs/x64` | +| Azure Linux (x64) | FreeBSD 14 | x64 | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-freebsd-14` | `/crossrootfs/x64` | | Azure Linux (x64) | Ubuntu 18.04 | PPC64le | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-ppc64le` | `/crossrootfs/ppc64le` | | Azure Linux (x64) | Ubuntu 24.04 | RISC-V | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-riscv64` | `/crossrootfs/riscv64` | | Azure Linux (x64) | Ubuntu 18.04 | S390x | `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-s390x` | `/crossrootfs/s390x` | diff --git a/eng/pipelines/common/templates/pipeline-with-resources.yml b/eng/pipelines/common/templates/pipeline-with-resources.yml index d15c0a3525d778..bcc4963c34a73f 100644 --- a/eng/pipelines/common/templates/pipeline-with-resources.yml +++ b/eng/pipelines/common/templates/pipeline-with-resources.yml @@ -119,7 +119,7 @@ extends: ROOTFS_DIR: /crossrootfs/x64 freebsd_x64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-freebsd-13-amd64 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-freebsd-14-amd64 env: ROOTFS_DIR: /crossrootfs/x64 From 479c9e341511847394de1ebaa90e0c8cf2513e43 Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Wed, 11 Dec 2024 04:22:39 +0200 Subject: [PATCH 5/5] Fix alpine arm32 build --- src/coreclr/vm/arm/profiler.cpp | 2 +- src/coreclr/vm/arm/stubs.cpp | 2 +- src/coreclr/vm/method.cpp | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/coreclr/vm/arm/profiler.cpp b/src/coreclr/vm/arm/profiler.cpp index 410417a667a01f..a57d1cc3eb81b6 100644 --- a/src/coreclr/vm/arm/profiler.cpp +++ b/src/coreclr/vm/arm/profiler.cpp @@ -55,7 +55,7 @@ void ProfileSetFunctionIDInPlatformSpecificHandle(void * pPlatformSpecificHandle { LIMITED_METHOD_CONTRACT; _ASSERTE(pPlatformSpecificHandle != NULL); - _ASSERTE(functionID != NULL); + _ASSERTE(functionID != (FunctionID)NULL); PROFILE_PLATFORM_SPECIFIC_DATA * pData = reinterpret_cast(pPlatformSpecificHandle); pData->functionId = functionID; diff --git a/src/coreclr/vm/arm/stubs.cpp b/src/coreclr/vm/arm/stubs.cpp index 18ccde9888fb7b..a5a1006f23e17b 100644 --- a/src/coreclr/vm/arm/stubs.cpp +++ b/src/coreclr/vm/arm/stubs.cpp @@ -1098,7 +1098,7 @@ void ResolveHolder::Initialize(ResolveHolder* pResolveHolderRX, _stub._cacheMask = CALL_STUB_CACHE_MASK * sizeof(void*); _ASSERTE(resolveWorkerTarget == (PCODE)ResolveWorkerChainLookupAsmStub); - _ASSERTE(patcherTarget == NULL); + _ASSERTE(patcherTarget == (PCODE)NULL); } Stub *GenerateInitPInvokeFrameHelper() diff --git a/src/coreclr/vm/method.cpp b/src/coreclr/vm/method.cpp index 98af92ef04879c..c603803d4c331e 100644 --- a/src/coreclr/vm/method.cpp +++ b/src/coreclr/vm/method.cpp @@ -1022,7 +1022,7 @@ PCODE MethodDesc::GetNativeCode() PCODE pCode = *ppCode; #ifdef TARGET_ARM - if (pCode != NULL) + if (pCode != (PCODE)NULL) pCode |= THUMB_CODE; #endif return pCode; @@ -3135,10 +3135,10 @@ BOOL MethodDesc::SetNativeCodeInterlocked(PCODE addr, PCODE pExpected /*=NULL*/) if (HasNativeCodeSlot()) { #ifdef TARGET_ARM - _ASSERTE(IsThumbCode(addr) || (addr==NULL)); + _ASSERTE(IsThumbCode(addr) || (addr == (PCODE)NULL)); addr &= ~THUMB_CODE; - if (pExpected != NULL) + if (pExpected != (PCODE)NULL) { _ASSERTE(IsThumbCode(pExpected)); pExpected &= ~THUMB_CODE;