From 50f4abb98688b34f061d0dde1aa17d91bb52c2e9 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Thu, 14 Jan 2021 15:05:41 -0500 Subject: [PATCH 01/21] Allow no EMSDK for cross-compiler --- src/mono/mono.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 608070fa3f42b7..4da492638468fc 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -64,7 +64,7 @@ - + From a3bce8d975350f56e69a8107589c012053d2551b Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Thu, 14 Jan 2021 15:47:15 -0500 Subject: [PATCH 02/21] Don't try to include file not made during AOT on Browser --- src/mono/mono.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 4da492638468fc..7155e4f4d2147d 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -523,7 +523,7 @@ <_MonoRuntimeArtifacts Condition="'$(_MonoIncludeInterpStaticFiles)' == 'true'" Include="$(MonoObjDir)out\lib\libmono-ilgen.a"> $(RuntimeBinDir)libmono-ilgen.a - <_MonoRuntimeArtifacts Condition="'$(TargetsBrowser)' == 'true'" Include="$(MonoObjDir)out\lib\libmono-profiler-aot.a"> + <_MonoRuntimeArtifacts Condition="'$(TargetsBrowser)' == 'true' and '$(BuildMonoAOTCrossCompilerOnly)' != 'true'" Include="$(MonoObjDir)out\lib\libmono-profiler-aot.a"> $(RuntimeBinDir)libmono-profiler-aot.a From e40b96ffc14843ab193d62469854647e1f47acc5 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Thu, 14 Jan 2021 16:26:18 -0500 Subject: [PATCH 03/21] Move BuildMonoCrossAOT from a bool to a Subset-esque string --- eng/Subsets.props | 4 ++-- eng/pipelines/mono/templates/build-job.yml | 2 +- eng/pipelines/runtime-official.yml | 2 +- .../pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj | 4 +++- src/mono/monoaotcross.proj | 4 +++- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index 692812a9f7651a..ca9906c12851f2 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -45,7 +45,7 @@ mono.llvm+ mono.llvm+ $(DefaultMonoSubsets)mono.wasmruntime+ - $(DefaultMonoSubsets)mono.aotcross+ + $(DefaultMonoSubsets)mono.aotcross+ $(DefaultMonoSubsets)mono.runtime+mono.corelib+mono.packages libs.native+libs.ref+libs.src+libs.pretest+libs.packages @@ -288,7 +288,7 @@ - + diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 2d91e4b26ebac8..11d1ff86e86934 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -95,7 +95,7 @@ jobs: value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true $(llvmCxxAbi) - ${{ if eq(parameters.monoCrossAOTTargetOS, 'Android') }}: - name: aotCrossParameter - value: /p:BuildMonoCrossAOT=true /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + value: /p:BuildMonoCrossAOT=Android /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - ${{ parameters.variables }} steps: diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 1b08cf4c002730..b9254fc0a45821 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -144,7 +144,7 @@ stages: - Linux_x64 jobParameters: buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:BuildMonoCrossAOT=true /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + /p:BuildMonoCrossAOT=Android /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true nameSuffix: AndroidAOT_Mono runtimeVariant: crossandroid dependsOn: mono_android_offsets diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj index 97ff1a1de517a5..f59e58ef77d2a2 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj @@ -1,7 +1,9 @@ - android-x64;android-arm64;android-x86;android-arm + <_BuildMonoCrossAOT Condition="'$(BuildMonoCrossAOT)' != ''">+$(BuildMonoCrossAOT.ToLowerInvariant())+ + $(MonoAotTargets);android-x64;android-arm64;android-x86;android-arm + $(MonoAotTargets);browser-wasm diff --git a/src/mono/monoaotcross.proj b/src/mono/monoaotcross.proj index d14d6632bd2e35..39f1c4959d5cb5 100644 --- a/src/mono/monoaotcross.proj +++ b/src/mono/monoaotcross.proj @@ -5,7 +5,9 @@ - Android-x64;Android-arm64;Android-x86;Android-arm + <_BuildMonoCrossAOT Condition="'$(BuildMonoCrossAOT)' != ''">+$(BuildMonoCrossAOT.ToLowerInvariant())+ + $(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm + $(MonoAotTargets);Browser-wasm From d3a3c7d6b308790f368f82c8f886dd7769fcdf33 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Thu, 14 Jan 2021 16:31:19 -0500 Subject: [PATCH 04/21] Generate wasm offsets --- eng/pipelines/runtime-official.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index b9254fc0a45821..9c6f35764c3806 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -130,6 +130,7 @@ stages: buildConfig: release platforms: - Android_x64 + - Wasm_browser # # Build Mono release Android AOT cross-compiler From aed7f5875736ab50a0f59cf98ef14d65fcf1f799 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Thu, 14 Jan 2021 16:40:48 -0500 Subject: [PATCH 05/21] Add new offset generation to non-official builds too. Oops --- eng/pipelines/runtime.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 31f3d18157e5be..18561e555388b0 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -192,6 +192,7 @@ jobs: buildConfig: release platforms: - Android_x64 + - Browser_wasm jobParameters: condition: >- or( From d28944765a3bf471386caad5a3f9190eaabb41d8 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Thu, 14 Jan 2021 16:59:36 -0500 Subject: [PATCH 06/21] Deal with default case when generating offsets only --- src/mono/monoaotcross.proj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mono/monoaotcross.proj b/src/mono/monoaotcross.proj index 39f1c4959d5cb5..e03bdef9623a64 100644 --- a/src/mono/monoaotcross.proj +++ b/src/mono/monoaotcross.proj @@ -6,6 +6,8 @@ <_BuildMonoCrossAOT Condition="'$(BuildMonoCrossAOT)' != ''">+$(BuildMonoCrossAOT.ToLowerInvariant())+ + <_BuildMonoCrossAOT Condition="'$(MonoGenerateOffsetsOnly)' == 'true' and '$(TargetOS)' == 'Android'">+android+ + <_BuildMonoCrossAOT Condition="'$(MonoGenerateOffsetsOnly)' == 'true' and '$(TargetOS)' == 'browser'">+wasm+ $(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm $(MonoAotTargets);Browser-wasm From 3f3c9267021c707c0c30df67972c25c17844bd7a Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Fri, 15 Jan 2021 11:28:25 -0500 Subject: [PATCH 07/21] We override the OS, so can't switch on it --- eng/pipelines/mono/templates/generate-offsets.yml | 4 ++-- src/mono/mono.proj | 10 +++++----- src/mono/monoaotcross.proj | 7 ++++--- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/mono/templates/generate-offsets.yml b/eng/pipelines/mono/templates/generate-offsets.yml index d271e3d3b1c3fc..f5e458cb4ee3b9 100644 --- a/eng/pipelines/mono/templates/generate-offsets.yml +++ b/eng/pipelines/mono/templates/generate-offsets.yml @@ -64,10 +64,10 @@ jobs: # Build - ${{ if ne(parameters.osGroup, 'windows') }}: - - script: ./build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOnly=true + - script: ./build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOnly=$(osGroup) displayName: Generate AOT offsets - ${{ if eq(parameters.osGroup, 'windows') }}: - - script: build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOnly=true + - script: build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOnly=$(osGroup) displayName: Generate AOT offsets # Upload offset files diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 7155e4f4d2147d..e4b98d75762a72 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -452,10 +452,10 @@ - + - + + Condition="'$(MonoGenerateOffsetsOnly)' == '' and ('$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsAndroid)' == 'true' or '$(TargetsBrowser)' == 'true')"/> - + diff --git a/src/mono/monoaotcross.proj b/src/mono/monoaotcross.proj index e03bdef9623a64..6f5e672fa7033c 100644 --- a/src/mono/monoaotcross.proj +++ b/src/mono/monoaotcross.proj @@ -6,10 +6,11 @@ <_BuildMonoCrossAOT Condition="'$(BuildMonoCrossAOT)' != ''">+$(BuildMonoCrossAOT.ToLowerInvariant())+ - <_BuildMonoCrossAOT Condition="'$(MonoGenerateOffsetsOnly)' == 'true' and '$(TargetOS)' == 'Android'">+android+ - <_BuildMonoCrossAOT Condition="'$(MonoGenerateOffsetsOnly)' == 'true' and '$(TargetOS)' == 'browser'">+wasm+ + <_MonoGenerateOffsetsOnly Condition="'$(MonoGenerateOffsetsOnly)' != ''">+$(MonoGenerateOffsetsOnly.ToLowerInvariant())+ + <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOnly.contains('+android+'))">$(_BuildMonoCrossAOT)+android+ + <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOnly.contains('+browser+'))">$(_BuildMonoCrossAOT)+browser+ $(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm - $(MonoAotTargets);Browser-wasm + $(MonoAotTargets);Browser-wasm From 00de7a9fbd5bb8fc08beacbf29a9626093cc3bda Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Fri, 15 Jan 2021 11:56:15 -0500 Subject: [PATCH 08/21] We're being skipped again --- eng/pipelines/runtime.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 4adc80018f89a5..2ca0bae2966768 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -500,8 +500,8 @@ jobs: monoCrossAOTTargetOS: Android condition: >- or( - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isFullMatrix'], true)) # From 5351a01de256439d2c2f94f8c675ca4357ba2f74 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Fri, 15 Jan 2021 12:03:14 -0500 Subject: [PATCH 09/21] Grr --- eng/pipelines/runtime.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 2ca0bae2966768..e6aa5c709978b5 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -196,8 +196,8 @@ jobs: jobParameters: condition: >- or( - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isFullMatrix'], true)) # Build the whole product using Mono runtime From e1d2e123e5e5aea1464d8ae20895d191bdcf99e6 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Fri, 15 Jan 2021 12:11:47 -0500 Subject: [PATCH 10/21] Try another time. Merges passing in the night. --- eng/pipelines/mono/templates/generate-offsets.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/eng/pipelines/mono/templates/generate-offsets.yml b/eng/pipelines/mono/templates/generate-offsets.yml index f5e458cb4ee3b9..9f4ad6b8b613b4 100644 --- a/eng/pipelines/mono/templates/generate-offsets.yml +++ b/eng/pipelines/mono/templates/generate-offsets.yml @@ -19,9 +19,7 @@ jobs: enableMicrobuild: true pool: ${{ parameters.pool }} condition: ${{ parameters.condition }} - - ${{ if eq(parameters.useCheckoutBundle, true) }}: - dependsOn: checkout + dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }} # Compute job name from template parameters name: ${{ format('mono_{0}_offsets', parameters.osGroup) }} From 8bcc13ef65873738e6d20b410700649f73d223bb Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 08:20:34 -0500 Subject: [PATCH 11/21] Try and make the yaml consume both offsets --- eng/pipelines/mono/templates/build-job.yml | 8 ++++---- eng/pipelines/runtime.yml | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 0577d2da0c2891..1848f7dd2ba97a 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -13,8 +13,8 @@ parameters: isOfficialBuild: false crossBuild: false crossrootfsDir: '' - dependsOn: '' - monoCrossAOTTargetOS: '' + dependsOn: [] + monoCrossAOTTargetOS: [] dependOnEvaluatePaths: false ### Product build @@ -112,11 +112,11 @@ jobs: - script: $(Build.SourcesDirectory)\eng\common\init-tools-native.cmd -InstallDirectory $(Build.SourcesDirectory)\native-tools -Force displayName: Install native dependencies - - ${{ if eq(parameters.monoCrossAOTTargetOS, 'Android') }}: + - ${{ each monoCrossAOTTargetOS in parameters.monoCrossAOTTargetOS }}: - task: DownloadPipelineArtifact@2 displayName: Download AOT offset files inputs: - artifact: Mono_Offsets_Android + artifact: Mono_${{monoCrossAOTTargetOS}}_Android path: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles' - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index e6aa5c709978b5..ec3577f6e9acef 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -496,8 +496,12 @@ jobs: # - windows_arm64 jobParameters: runtimeVariant: crossandroid - dependsOn: mono_android_offsets - monoCrossAOTTargetOS: Android + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - Android + - Browser condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), From 86003052202b4806b6750029f07d098b2098010c Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 08:53:09 -0500 Subject: [PATCH 12/21] Clean up last commit, which went surprisingly well --- eng/pipelines/mono/templates/build-job.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 1848f7dd2ba97a..108a314b923703 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -114,9 +114,9 @@ jobs: - ${{ each monoCrossAOTTargetOS in parameters.monoCrossAOTTargetOS }}: - task: DownloadPipelineArtifact@2 - displayName: Download AOT offset files + displayName: Download ${{monoCrossAOTTargetOS}} AOT offset files inputs: - artifact: Mono_${{monoCrossAOTTargetOS}}_Android + artifact: Mono_Offsets_${{monoCrossAOTTargetOS}} path: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles' - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: From 89331d10aabb8b8aa283e1b950fc36146f2fba4e Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 09:22:11 -0500 Subject: [PATCH 13/21] Actually consume all offsets from parameter --- eng/pipelines/mono/templates/build-job.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 108a314b923703..b6562cfab86ab7 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -93,9 +93,9 @@ jobs: - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: - name: llvmParameter value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true $(llvmCxxAbi) - - ${{ if eq(parameters.monoCrossAOTTargetOS, 'Android') }}: + - ${{ if length(parameters.monoCrossAOTTargetOS) > 0 }}: - name: aotCrossParameter - value: /p:BuildMonoCrossAOT=Android /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + value: /p:BuildMonoCrossAOT=${{join('+',parameters.monoCrossAOTTargetOS)}} /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - ${{ parameters.variables }} steps: From 0a73e3f39eec582766dc7c32f18b1e58d9f65a18 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 09:43:13 -0500 Subject: [PATCH 14/21] =?UTF-8?q?Yaml=20=F0=9F=A4=B7=E2=80=8D=E2=99=82?= =?UTF-8?q?=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eng/pipelines/mono/templates/build-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index b6562cfab86ab7..0a8736d17d9f83 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -93,7 +93,7 @@ jobs: - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: - name: llvmParameter value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true $(llvmCxxAbi) - - ${{ if length(parameters.monoCrossAOTTargetOS) > 0 }}: + - ${{ if gt(length(parameters.monoCrossAOTTargetOS),0) }}: - name: aotCrossParameter value: /p:BuildMonoCrossAOT=${{join('+',parameters.monoCrossAOTTargetOS)}} /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - ${{ parameters.variables }} From 168313442ba1dcbe92790c74b7c51ecf4ad3d603 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 09:48:33 -0500 Subject: [PATCH 15/21] It's not crossandroid any more, is it? --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index ec3577f6e9acef..6984eecd6b69bc 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -495,7 +495,7 @@ jobs: # - windows_arm # - windows_arm64 jobParameters: - runtimeVariant: crossandroid + runtimeVariant: crossaot dependsOn: - mono_android_offsets - mono_browser_offsets From aaf7abaf4a78eb30c4db0910a0938ffc4afc5d17 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 09:52:20 -0500 Subject: [PATCH 16/21] Official version --- eng/pipelines/common/global-build-job.yml | 8 ++++---- eng/pipelines/runtime-official.yml | 10 +++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 586e9df6d7bcdb..d006c2cf29e149 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -11,7 +11,7 @@ parameters: variables: [] targetRid: '' timeoutInMinutes: '' - dependsOn: '' + dependsOn: [] pool: '' platform: '' condition: true @@ -89,11 +89,11 @@ jobs: - ${{ if eq(parameters.isOfficialBuild, true) }}: - template: /eng/pipelines/common/restore-internal-tools.yml - - ${{ if eq(parameters.monoCrossAOTTargetOS, 'Android') }}: + - ${{ each monoCrossAOTTargetOS in parameters.monoCrossAOTTargetOS }}: - task: DownloadPipelineArtifact@2 - displayName: Download AOT offset files + displayName: Download ${{monoCrossAOTTargetOS}} AOT offset files inputs: - artifact: Mono_Offsets_Android + artifact: Mono_Offsets_${{monoCrossAOTTargetOS}} path: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles' - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS', 'Android') }}: diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index bab23cae3a9a87..ea4d326ac4b1a3 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -147,11 +147,15 @@ stages: - Linux_x64 jobParameters: buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:BuildMonoCrossAOT=Android /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + /p:BuildMonoCrossAOT=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true nameSuffix: AndroidAOT_Mono runtimeVariant: crossandroid - dependsOn: mono_android_offsets - monoCrossAOTTargetOS: Android + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - Android + - Browser isOfficialBuild: ${{ variables.isOfficialBuild }} extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml extraStepsParameters: From 5539e7a907182db7b263150a11b73a836d7026a5 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 10:27:47 -0500 Subject: [PATCH 17/21] Fix typo --- eng/pipelines/runtime-official.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index ea4d326ac4b1a3..e04c3016814dbc 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -132,7 +132,7 @@ stages: buildConfig: release platforms: - Android_x64 - - Wasm_browser + - Browser_wasmr # # Build Mono release Android AOT cross-compiler From e263c2cd30801eeda901f148f88e97bd06a53970 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 10:29:05 -0500 Subject: [PATCH 18/21] Fix typo in typo --- eng/pipelines/runtime-official.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index e04c3016814dbc..0056d969af2a2e 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -132,7 +132,7 @@ stages: buildConfig: release platforms: - Android_x64 - - Browser_wasmr + - Browser_wasm # # Build Mono release Android AOT cross-compiler From c12e1938797ed9100e563a6f33ffd244f1419ddf Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 10:41:38 -0500 Subject: [PATCH 19/21] Cleanups --- eng/pipelines/runtime-official.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 0056d969af2a2e..12c9de44e4d723 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -135,7 +135,7 @@ stages: - Browser_wasm # - # Build Mono release Android AOT cross-compiler + # Build Mono release AOT cross-compilers # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -148,8 +148,8 @@ stages: jobParameters: buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:BuildMonoCrossAOT=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - nameSuffix: AndroidAOT_Mono - runtimeVariant: crossandroid + nameSuffix: CrossAOT_Mono + runtimeVariant: crossaot dependsOn: - mono_android_offsets - mono_browser_offsets @@ -160,6 +160,7 @@ stages: extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml extraStepsParameters: name: MonoRuntimePacks + # # Build Mono LLVM runtime packs # From 7e07232e1f5890e039b9295d7948be3a2347bc9e Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 11:25:37 -0500 Subject: [PATCH 20/21] Variable rename suggestion from Alex --- eng/pipelines/mono/templates/generate-offsets.yml | 4 ++-- src/mono/mono.proj | 10 +++++----- src/mono/monoaotcross.proj | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/mono/templates/generate-offsets.yml b/eng/pipelines/mono/templates/generate-offsets.yml index 9f4ad6b8b613b4..ff3b3e9d70ca78 100644 --- a/eng/pipelines/mono/templates/generate-offsets.yml +++ b/eng/pipelines/mono/templates/generate-offsets.yml @@ -62,10 +62,10 @@ jobs: # Build - ${{ if ne(parameters.osGroup, 'windows') }}: - - script: ./build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOnly=$(osGroup) + - script: ./build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOSGroups=$(osGroup) displayName: Generate AOT offsets - ${{ if eq(parameters.osGroup, 'windows') }}: - - script: build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOnly=$(osGroup) + - script: build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOSGroups=$(osGroup) displayName: Generate AOT offsets # Upload offset files diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 6d384399f31080..a0b25a4e0cdec5 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -472,10 +472,10 @@ - + - + + Condition="'$(MonoGenerateOffsetsOSGroups)' == '' and ('$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsAndroid)' == 'true' or '$(TargetsBrowser)' == 'true')"/> - + diff --git a/src/mono/monoaotcross.proj b/src/mono/monoaotcross.proj index b09520883b0af6..3bb8d1b846fdff 100644 --- a/src/mono/monoaotcross.proj +++ b/src/mono/monoaotcross.proj @@ -6,9 +6,9 @@ <_BuildMonoCrossAOT Condition="'$(BuildMonoCrossAOT)' != ''">+$(BuildMonoCrossAOT.ToLowerInvariant())+ - <_MonoGenerateOffsetsOnly Condition="'$(MonoGenerateOffsetsOnly)' != ''">+$(MonoGenerateOffsetsOnly.ToLowerInvariant())+ - <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOnly.contains('+android+'))">$(_BuildMonoCrossAOT)+android+ - <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOnly.contains('+browser+'))">$(_BuildMonoCrossAOT)+browser+ + <_MonoGenerateOffsetsOSGroups Condition="'$(MonoGenerateOffsetsOSGroups)' != ''">+$(MonoGenerateOffsetsOSGroups.ToLowerInvariant())+ + <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOSGroups.contains('+android+'))">$(_BuildMonoCrossAOT)+android+ + <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOSGroups.contains('+browser+'))">$(_BuildMonoCrossAOT)+browser+ $(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm $(MonoAotTargets);Browser-wasm From 20b1ef7db63003bcb6a72214623fbb744c4af870 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Tue, 19 Jan 2021 11:28:52 -0500 Subject: [PATCH 21/21] More better variable names from Alex --- eng/Subsets.props | 4 ++-- eng/pipelines/mono/templates/build-job.yml | 2 +- eng/pipelines/runtime-official.yml | 2 +- .../pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj | 6 +++--- src/mono/monoaotcross.proj | 10 +++++----- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index ca9906c12851f2..140299508e6a4d 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -45,7 +45,7 @@ mono.llvm+ mono.llvm+ $(DefaultMonoSubsets)mono.wasmruntime+ - $(DefaultMonoSubsets)mono.aotcross+ + $(DefaultMonoSubsets)mono.aotcross+ $(DefaultMonoSubsets)mono.runtime+mono.corelib+mono.packages libs.native+libs.ref+libs.src+libs.pretest+libs.packages @@ -288,7 +288,7 @@ - + diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 0a8736d17d9f83..48b18b1c8b50c3 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -95,7 +95,7 @@ jobs: value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true $(llvmCxxAbi) - ${{ if gt(length(parameters.monoCrossAOTTargetOS),0) }}: - name: aotCrossParameter - value: /p:BuildMonoCrossAOT=${{join('+',parameters.monoCrossAOTTargetOS)}} /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + value: /p:MonoCrossAOTTargetOS=${{join('+',parameters.monoCrossAOTTargetOS)}} /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - ${{ parameters.variables }} steps: diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 12c9de44e4d723..4dd467fe931e79 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -147,7 +147,7 @@ stages: - Linux_x64 jobParameters: buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:BuildMonoCrossAOT=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + /p:MonoCrossAOTTargetOS=Android+Browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true nameSuffix: CrossAOT_Mono runtimeVariant: crossaot dependsOn: diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj index f59e58ef77d2a2..0859d9debbea8c 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj @@ -1,9 +1,9 @@ - <_BuildMonoCrossAOT Condition="'$(BuildMonoCrossAOT)' != ''">+$(BuildMonoCrossAOT.ToLowerInvariant())+ - $(MonoAotTargets);android-x64;android-arm64;android-x86;android-arm - $(MonoAotTargets);browser-wasm + <_MonoCrossAOTTargetOS Condition="'$(MonoCrossAOTTargetOS)' != ''">+$(MonoCrossAOTTargetOS.ToLowerInvariant())+ + $(MonoAotTargets);android-x64;android-arm64;android-x86;android-arm + $(MonoAotTargets);browser-wasm diff --git a/src/mono/monoaotcross.proj b/src/mono/monoaotcross.proj index 3bb8d1b846fdff..260d5203ad55b0 100644 --- a/src/mono/monoaotcross.proj +++ b/src/mono/monoaotcross.proj @@ -5,12 +5,12 @@ - <_BuildMonoCrossAOT Condition="'$(BuildMonoCrossAOT)' != ''">+$(BuildMonoCrossAOT.ToLowerInvariant())+ + <_MonoCrossAOTTargetOS Condition="'$(MonoCrossAOTTargetOS)' != ''">+$(MonoCrossAOTTargetOS.ToLowerInvariant())+ <_MonoGenerateOffsetsOSGroups Condition="'$(MonoGenerateOffsetsOSGroups)' != ''">+$(MonoGenerateOffsetsOSGroups.ToLowerInvariant())+ - <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOSGroups.contains('+android+'))">$(_BuildMonoCrossAOT)+android+ - <_BuildMonoCrossAOT Condition="$(_MonoGenerateOffsetsOSGroups.contains('+browser+'))">$(_BuildMonoCrossAOT)+browser+ - $(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm - $(MonoAotTargets);Browser-wasm + <_MonoCrossAOTTargetOS Condition="$(_MonoGenerateOffsetsOSGroups.contains('+android+'))">$(_MonoCrossAOTTargetOS)+android+ + <_MonoCrossAOTTargetOS Condition="$(_MonoGenerateOffsetsOSGroups.contains('+browser+'))">$(_MonoCrossAOTTargetOS)+browser+ + $(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm + $(MonoAotTargets);Browser-wasm