diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index c782ff6151e9..03844d0e6943 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -348,6 +348,19 @@ stages: ### Additional jobs for full build ### - ${{ if in(parameters.scope, 'full') }}: + - template: ../jobs/vmr-build.yml + parameters: + buildName: Android_Shortstack + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + architecture: x64 + pool: + name: ${{ variables.defaultPoolName }} + demands: ${{ variables.defaultPoolDemandsLinux }} + container: ${{ variables.androidCrossContainer }} + targetOS: android + targetArchitecture: x64 + - template: ../jobs/vmr-build.yml parameters: buildName: OSX diff --git a/eng/pipelines/templates/variables/vmr-stage.yml b/eng/pipelines/templates/variables/vmr-stage.yml index 4d906db13349..50b03acc1faa 100644 --- a/eng/pipelines/templates/variables/vmr-stage.yml +++ b/eng/pipelines/templates/variables/vmr-stage.yml @@ -26,6 +26,8 @@ variables: value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64 - name: marinerArm64CrossContainer value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64 +- name: androidCrossContainer + value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-android-amd64 - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: defaultPoolName diff --git a/src/SourceBuild/content/Directory.Build.props b/src/SourceBuild/content/Directory.Build.props index 91df19fb250f..53bfbab3cc82 100644 --- a/src/SourceBuild/content/Directory.Build.props +++ b/src/SourceBuild/content/Directory.Build.props @@ -19,6 +19,20 @@ $(BuildOS) + + + true + true + true + true + true + true + true + true + + runtime + + $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant) $(BuildArchitecture) @@ -49,6 +63,8 @@ win-$(TargetArchitecture) $(PortableRid) + $(TargetOS)-$(TargetArchitecture) + win-$(TargetArchitecture) diff --git a/src/SourceBuild/content/repo-projects/runtime.proj b/src/SourceBuild/content/repo-projects/runtime.proj index 1735ab3f8de5..65d29f9a33d9 100644 --- a/src/SourceBuild/content/repo-projects/runtime.proj +++ b/src/SourceBuild/content/repo-projects/runtime.proj @@ -15,8 +15,8 @@ $(BuildArgs) $(FlagParameterPrefix)arch $(TargetArchitecture) $(BuildArgs) $(FlagParameterPrefix)os $(TargetOS) $(BuildArgs) /p:TargetRid=$(TargetRid) - $(BuildArgs) /p:RuntimeOS=$(RuntimeOS) - $(BuildArgs) /p:BaseOS=$(BaseOS) + $(BuildArgs) /p:RuntimeOS=$(RuntimeOS) + $(BuildArgs) /p:BaseOS=$(BaseOS) diff --git a/src/SourceBuild/patches/runtime/0002-short-stack-support.patch b/src/SourceBuild/patches/runtime/0002-short-stack-support.patch new file mode 100644 index 000000000000..783d86b3c17a --- /dev/null +++ b/src/SourceBuild/patches/runtime/0002-short-stack-support.patch @@ -0,0 +1,48 @@ +From 6e36330872998c791a2c0d31b688e1bdece2451f Mon Sep 17 00:00:00 2001 +From: Jo Shields +Date: Fri, 2 Feb 2024 06:56:20 -0500 +Subject: [PATCH] Source built short stack support (#97725) + +Backport: https://github.com/dotnet/runtime/pull/97725 + +--- a/eng/SourceBuild.props 2024-02-07 11:01:33.807337902 -0500 ++++ b/eng/SourceBuild.props 2024-02-05 16:48:58.219933758 -0500 +@@ -15,6 +15,7 @@ + + <_targetRidPlatformIndex>$(TargetRid.LastIndexOf('-')) + $(TargetRid.Substring($(_targetRidPlatformIndex)).TrimStart('-')) ++ $(TargetRid.Substring(0, $(_targetRidPlatformIndex))) + + <_hostRidPlatformIndex>$(_hostRid.LastIndexOf('-')) + <_hostArch>$(_hostRid.Substring($(_hostRidPlatformIndex)).TrimStart('-')) +@@ -22,6 +23,17 @@ + minimal + + ++ ++ true ++ true ++ true ++ true ++ true ++ true ++ true ++ true ++ ++ + + +@@ -29,9 +41,10 @@ + This allows to build the repository using './build.sh /p:DotNetBuildFromSource=true'. + Properties that control flags from source-build, and the expected output for source-build should be added to this file. --> + $(InnerBuildArgs) $(FlagParameterPrefix)arch $(TargetArch) +- $(InnerBuildArgs) $(FlagParameterPrefix)cross ++ $(InnerBuildArgs) $(FlagParameterPrefix)os $(TargetOS) ++ $(InnerBuildArgs) $(FlagParameterPrefix)cross + $(InnerBuildArgs) $(FlagParameterPrefix)configuration $(Configuration) +- $(InnerBuildArgs) $(FlagParameterPrefix)allconfigurations ++ $(InnerBuildArgs) $(FlagParameterPrefix)allconfigurations + $(InnerBuildArgs) $(FlagParameterPrefix)verbosity $(LogVerbosity) + $(InnerBuildArgs) $(FlagParameterPrefix)nodereuse $(ArcadeFalseBoolBuildArg) + $(InnerBuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg)