From 8fdfa6b48cb0cc3941f0bf3244e38ebaaf063bbd Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Jun 2023 15:34:02 -0400 Subject: [PATCH 01/55] Upgrade to LLVM 16, and stop focusing on C++11 ABi stuff from CentOS 7 --- eng/pipelines/common/global-build-job.yml | 8 +---- .../build-runtime-tests-and-send-to-helix.yml | 1 - .../templates/runtimes/run-test-job.yml | 1 - .../runtime-extra-platforms-other.yml | 2 +- eng/pipelines/mono/templates/build-job.yml | 7 ++--- eng/pipelines/runtime.yml | 2 +- src/mono/CMakeLists.txt | 17 ++++++++-- src/mono/mono.proj | 31 +++++++++++-------- 8 files changed, 37 insertions(+), 32 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index cf93d34062b7da..ccf969e5b57641 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -86,12 +86,6 @@ jobs: - name: ROOTFS_DIR value: ${{ parameters.jobParameters.crossrootfsDir }} - - name: _cxx11Parameter - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.archType, 'arm64')) }}: - value: /p:MonoLLVMUseCxx11Abi=true - ${{ if and(eq(parameters.osGroup, 'linux'), not(eq(parameters.archType, 'arm64'))) }}: - value: /p:MonoLLVMUseCxx11Abi=false - - name: _officialBuildParameter ${{ if eq(parameters.isOfficialBuild, true) }}: value: /p:OfficialBuildId=$(Build.BuildNumber) @@ -190,7 +184,7 @@ jobs: - task: CodeQL3000Init@0 displayName: Initialize CodeQL (manually-injected) - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_cxx11Parameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) displayName: Build product ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: continueOnError: ${{ parameters.shouldContinueOnError }} diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index e531acb6384159..3da6cc22300cd7 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -50,7 +50,6 @@ steps: /p:BuildMonoAotCrossCompilerOnly=true /p:MonoLibClang="/usr/local/lib/libclang.so.16" /p:MonoAOTEnableLLVM=true - /p:MonoAOTLLVMUseCxx11Abi=true /p:CrossBuild=true displayName: "Build Mono LLVM AOT cross compiler" diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml index 296ac081a0440d..766783e00c7933 100644 --- a/eng/pipelines/common/templates/runtimes/run-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml @@ -293,7 +293,6 @@ jobs: /p:BuildMonoAotCrossCompilerOnly=true /p:MonoLibClang="/usr/local/lib/libclang.so.16" /p:MonoAOTEnableLLVM=true - /p:MonoAOTLLVMUseCxx11Abi=true displayName: "Build Mono LLVM AOT cross compiler" - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml index ca2aed4c166c0d..40f75bfbd7c9a6 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml @@ -334,7 +334,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeTests runtimeVariant: llvmfullaot - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true timeoutInMinutes: 300 condition: >- diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 2c3fc2c45cf1ce..b1ac9c1cc6554e 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -104,15 +104,12 @@ jobs: value: wasm - name: osOverride value: '-os wasi' - - ${{ if and(eq(parameters.osGroup, 'linux'), not(eq(parameters.archType, 'x64'))) }}: - name: llvmCxxAbi - value: /p:MonoLLVMUseCxx11Abi=true - ${{ if eq(parameters.runtimeVariant, 'llvmjit') }}: - name: llvmParameter - value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false $(llvmCxxAbi) + value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: - name: llvmParameter - value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true $(llvmCxxAbi) + value: /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - ${{ if gt(length(parameters.monoCrossAOTTargetOS),0) }}: - name: aotCrossParameter value: /p:MonoCrossAOTTargetOS=${{join('+',parameters.monoCrossAOTTargetOS)}} /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 23fbbff0770c5c..620347dee1c671 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1228,7 +1228,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests runtimeVariant: llvmaot - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true timeoutInMinutes: 180 condition: >- diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index bc65886aea2f36..3bf0ea88927468 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -620,27 +620,38 @@ if(LLVM_PREFIX) set(MONO_llvm_core_libs "LLVMOrcJIT" "LLVMPasses" "LLVMCoroutines" "LLVMipo" "LLVMInstrumentation" "LLVMVectorize" "LLVMScalarOpts" "LLVMLinker" "LLVMIRReader" "LLVMAsmParser" "LLVMInstCombine" "LLVMFrontendOpenMP" "LLVMAggressiveInstCombine" "LLVMTransformUtils" "LLVMJITLink" "LLVMMCJIT" "LLVMExecutionEngine" "LLVMTarget" "LLVMRuntimeDyld" "LLVMBitWriter" "LLVMAnalysis" "LLVMProfileData" "LLVMObject" "LLVMTextAPI" "LLVMMCParser" "LLVMMC" "LLVMDebugInfoCodeView" "LLVMBitReader" "LLVMCore" "LLVMRemarks" "LLVMBitstreamReader" "LLVMBinaryFormat" "LLVMSupport" "LLVMDemangle") if(${llvm_api_version} LESS 1200) set(MONO_llvm_core_libs ${MONO_llvm_core_libs} "LLVMOrcError" "LLVMDebugInfoMSF") - else() + elseif(${llvm_api_version} LESS 1600) set(MONO_llvm_core_libs ${MONO_llvm_core_libs} "LLVMObjCARCOpts" "LLVMMCDisassembler" "LLVMOrcTargetProcess" "LLVMOrcShared" "LLVMDebugInfoDWARF") + else() + set(MONO_llvm_core_libs ${MONO_llvm_core_libs} "LLVMIRPrinter" "LLVMCodeGen" "LLVMObjCARCOpts" "LLVMMCDisassembler" "LLVMWindowsDriver" "LLVMOption" "LLVMOrcTargetProcess" "LLVMOrcShared" "LLVMSymbolize" "LLVMDebugInfoPDB" "LLVMDebugInfoMSF" "LLVMDebugInfoDWARF" "LLVMTargetParser") endif() # llvm-config --libs x86codegen set(MONO_llvm_extra_libs_x86codegen "LLVMX86CodeGen" "LLVMCFGuard" "LLVMGlobalISel" "LLVMX86Desc" "LLVMX86Info" "LLVMMCDisassembler" "LLVMSelectionDAG" "LLVMAsmPrinter" "LLVMDebugInfoDWARF" "LLVMCodeGen" "LLVMTarget" "LLVMScalarOpts" "LLVMInstCombine" "LLVMAggressiveInstCombine" "LLVMTransformUtils" "LLVMBitWriter" "LLVMAnalysis" "LLVMProfileData" "LLVMObject" "LLVMTextAPI" "LLVMMCParser" "LLVMMC" "LLVMDebugInfoCodeView" "LLVMDebugInfoMSF" "LLVMBitReader" "LLVMCore" "LLVMRemarks" "LLVMBitstreamReader" "LLVMBinaryFormat" "LLVMSupport" "LLVMDemangle") + if(${llvm_api_version} GREATER_EQUAL 1600) + set(MONO_llvm_extra_libs_x86codegen ${MONO_llvm_extra_libs_x86codegen} "LLVMInstrumentation" "LLVMObjCARCOpts" "LLVMSymbolize" "LLVMDebugInfoPDB" "LLVMIRReader" "LLVMAsmParser" "LLVMTargetParser") + endif() # llvm-config --libs armcodegen set(MONO_llvm_extra_libs_armcodegen "LLVMARMCodeGen" "LLVMCFGuard" "LLVMGlobalISel" "LLVMSelectionDAG" "LLVMAsmPrinter" "LLVMDebugInfoDWARF" "LLVMCodeGen" "LLVMTarget" "LLVMScalarOpts" "LLVMInstCombine" "LLVMAggressiveInstCombine" "LLVMTransformUtils" "LLVMBitWriter" "LLVMAnalysis" "LLVMProfileData" "LLVMObject" "LLVMTextAPI" "LLVMMCParser" "LLVMBitReader" "LLVMCore" "LLVMRemarks" "LLVMBitstreamReader" "LLVMARMDesc" "LLVMMCDisassembler" "LLVMMC" "LLVMDebugInfoCodeView" "LLVMDebugInfoMSF" "LLVMBinaryFormat" "LLVMARMUtils" "LLVMARMInfo" "LLVMSupport" "LLVMDemangle") + if(${llvm_api_version} GREATER_EQUAL 1600) + set(MONO_llvm_extra_libs_armcodegen ${MONO_llvm_extra_libs_armcodegen} "LLVMipo" "LLVMInstrumentation" "LLVMVectorize" "LLVMLinker" "LLVMFrontendOpenMP" "LLVMObjCARCOpts" "LLVMSymbolize" "LLVMDebugInfoPDB" "LLVMIRReader" "LLVMAsmParser" "LLVMTargetParser") + endif() # llvm-config --libs aarch64codegen set(MONO_llvm_extra_libs_aarch64codegen "LLVMAArch64CodeGen" "LLVMCFGuard" "LLVMGlobalISel" "LLVMSelectionDAG" "LLVMAsmPrinter" "LLVMDebugInfoDWARF" "LLVMCodeGen" "LLVMTarget" "LLVMScalarOpts" "LLVMInstCombine" "LLVMAggressiveInstCombine" "LLVMTransformUtils" "LLVMBitWriter" "LLVMAnalysis" "LLVMProfileData" "LLVMObject" "LLVMTextAPI" "LLVMMCParser" "LLVMBitReader" "LLVMCore" "LLVMRemarks" "LLVMBitstreamReader" "LLVMAArch64Desc" "LLVMMC" "LLVMDebugInfoCodeView" "LLVMDebugInfoMSF" "LLVMBinaryFormat" "LLVMAArch64Utils" "LLVMAArch64Info" "LLVMSupport" "LLVMDemangle") + if(${llvm_api_version} GREATER_EQUAL 1600) + set(MONO_llvm_extra_libs_aarch64codegen ${MONO_llvm_extra_libs_aarch64codegen} "LLVMObjCARCOpts" "LLVMSymbolize" "LLVMDebugInfoPDB" "LLVMIRReader" "LLVMAsmParser" "LLVMTargetParser") + endif() # llvm-config --cflags set(llvm_cflags "-I${LLVM_PREFIX}/include -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") - set(llvm_cxxflags "-I${LLVM_PREFIX}/include -std=c++14 -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") + set(llvm_cxxflags "-I${LLVM_PREFIX}/include -std=c++17 -stdlib=libc++ -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") set(llvm_includedir "${LLVM_PREFIX}/include") if(HOST_LINUX) # llvm-config --system-libs - set(llvm_system_libs "-lz" "-lrt" "-ldl" "-lpthread" "-lm") + set(llvm_system_libs "-lc++" "-lz" "-lrt" "-ldl" "-lpthread" "-lm") elseif(HOST_OSX) # llvm-config --system-libs set(llvm_system_libs "-lz" "-lm") diff --git a/src/mono/mono.proj b/src/mono/mono.proj index de64d7d34408c0..2049e8a3b66b3f 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -272,20 +272,13 @@ <_MonoCMakeArgs Include="-DMONO_SHARED_LIB_NAME=$(MonoSharedLibName)" /> - - - <_MonoCXXFLAGS Include="-D_GLIBCXX_USE_CXX11_ABI=0" /> + + <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1 -L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib -stdlib=libc++" /> + <_MonoCXXFLAGS Include="-Wl,-rpath=."/> - - <_MonoAOTCXXFLAGS Include="-D_GLIBCXX_USE_CXX11_ABI=0" /> - - - - - <_MonoCXXFLAGS Include="-D_GLIBCXX_USE_CXX11_ABI=1" /> - - - <_MonoAOTCXXFLAGS Include="-D_GLIBCXX_USE_CXX11_ABI=1" /> + + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1 -L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib -stdlib=libc++" /> + <_MonoAOTCXXFLAGS Include="-Wl,-rpath,."/> @@ -953,6 +946,18 @@ <_MonoRuntimeArtifacts Include="$(_MonoAotCrossFilePath)"> $(RuntimeBinDir)cross\$(OutputRID)\$(MonoAotCrossFileName) + <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + $(RuntimeBinDir)libc++.so.1 + + <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + $(RuntimeBinDir)libc++abi.so.1 + + <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + $(RuntimeBinDir)cross\$(OutputRID)\libc++.so.1 + + <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + $(RuntimeBinDir)cross\$(OutputRID)\libc++abi.so.1 + <_MonoRuntimeArtifacts Include="$(_MonoAotCrossPdbFilePath)" Condition="Exists('$(_MonoAotCrossPdbFilePath)')"> $(RuntimeBinDir)cross\$(OutputRID)\$(MonoAotCrossPdbFileName) From 3cbf376ee09ffcd4c8ace5f16d8b61f568ebff18 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Jun 2023 16:19:44 -0400 Subject: [PATCH 02/55] Don't do libc++ on browser --- src/mono/mono.proj | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 2049e8a3b66b3f..98fb3f8b0fb2e6 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -272,12 +272,16 @@ <_MonoCMakeArgs Include="-DMONO_SHARED_LIB_NAME=$(MonoSharedLibName)" /> - - <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1 -L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib -stdlib=libc++" /> + + <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> + <_MonoCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> + <_MonoCXXFLAGS Include="-stdlib=libc++" /> <_MonoCXXFLAGS Include="-Wl,-rpath=."/> - - <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1 -L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib -stdlib=libc++" /> + + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> + <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" + <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> <_MonoAOTCXXFLAGS Include="-Wl,-rpath,."/> From 7eafd3d4c7ecc70402a0db3d286821eab2e1b5c0 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Jun 2023 16:39:13 -0400 Subject: [PATCH 03/55] typo --- 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 98fb3f8b0fb2e6..bb8c66b824e99a 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -280,7 +280,7 @@ <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> - <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" + <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> <_MonoAOTCXXFLAGS Include="-Wl,-rpath,."/> From 8084b22d5bc21aa211a41b4bfd058226807b7877 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Jun 2023 17:03:59 -0400 Subject: [PATCH 04/55] Don't always use libc++ for wasm --- src/mono/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index 3bf0ea88927468..1df1367d26bd84 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -644,9 +644,13 @@ if(LLVM_PREFIX) set(MONO_llvm_extra_libs_aarch64codegen ${MONO_llvm_extra_libs_aarch64codegen} "LLVMObjCARCOpts" "LLVMSymbolize" "LLVMDebugInfoPDB" "LLVMIRReader" "LLVMAsmParser" "LLVMTargetParser") endif() + if(HOST_LINUX AND NOT "${TARGET_ARCH}" STREQUAL "wasm") + set(MONO_stdlib -stdlib=libc++) + endif() + # llvm-config --cflags set(llvm_cflags "-I${LLVM_PREFIX}/include -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") - set(llvm_cxxflags "-I${LLVM_PREFIX}/include -std=c++17 -stdlib=libc++ -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") + set(llvm_cxxflags "-I${LLVM_PREFIX}/include -std=c++17 ${MONO_stdlib} -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") set(llvm_includedir "${LLVM_PREFIX}/include") if(HOST_LINUX) From e9777c9786dd1b858f8a76794e5f0cea41d0ab1d Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 6 Jun 2023 18:08:00 -0400 Subject: [PATCH 05/55] Don't try to link libc++ on wasm --- src/mono/CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index 1df1367d26bd84..25aefaa0229e0b 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -645,7 +645,8 @@ if(LLVM_PREFIX) endif() if(HOST_LINUX AND NOT "${TARGET_ARCH}" STREQUAL "wasm") - set(MONO_stdlib -stdlib=libc++) + set(MONO_stdlib "-stdlib=libc++") + set(MONO_cxx_lib "-lc++") endif() # llvm-config --cflags @@ -655,7 +656,7 @@ if(LLVM_PREFIX) if(HOST_LINUX) # llvm-config --system-libs - set(llvm_system_libs "-lc++" "-lz" "-lrt" "-ldl" "-lpthread" "-lm") + set(llvm_system_libs ${MONO_cxx_lib} "-lz" "-lrt" "-ldl" "-lpthread" "-lm") elseif(HOST_OSX) # llvm-config --system-libs set(llvm_system_libs "-lz" "-lm") From 21f518e8dffe66f323952323914de93c535cf41a Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 09:30:16 -0400 Subject: [PATCH 06/55] Should only be doing rpath stuff on Linux _host_ not _target_ --- src/mono/mono.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index bb8c66b824e99a..8f9b8a30117de6 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -272,13 +272,13 @@ <_MonoCMakeArgs Include="-DMONO_SHARED_LIB_NAME=$(MonoSharedLibName)" /> - + <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoCXXFLAGS Include="-stdlib=libc++" /> <_MonoCXXFLAGS Include="-Wl,-rpath=."/> - + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> From b620273bb10d2f1fc329a1f5e20bda2abef93993 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 10:28:54 -0400 Subject: [PATCH 07/55] More host/target fixes --- src/mono/mono.proj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 8f9b8a30117de6..01ef44458717a3 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -950,16 +950,16 @@ <_MonoRuntimeArtifacts Include="$(_MonoAotCrossFilePath)"> $(RuntimeBinDir)cross\$(OutputRID)\$(MonoAotCrossFileName) - <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> $(RuntimeBinDir)libc++.so.1 - <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)libc++abi.so.1 - <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++.so.1 - <_MonoRuntimeArtifacts Condition="'$(TargetsLinux)' == 'true' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++abi.so.1 <_MonoRuntimeArtifacts Include="$(_MonoAotCrossPdbFilePath)" Condition="Exists('$(_MonoAotCrossPdbFilePath)')"> From 69a60bedf58f7c5319a649d3355bdb36063891ae Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 11:25:51 -0400 Subject: [PATCH 08/55] More fixing --- src/mono/mono.proj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 01ef44458717a3..333d487af93d69 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -950,16 +950,16 @@ <_MonoRuntimeArtifacts Include="$(_MonoAotCrossFilePath)"> $(RuntimeBinDir)cross\$(OutputRID)\$(MonoAotCrossFileName) - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> $(RuntimeBinDir)libc++.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)libc++abi.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++abi.so.1 <_MonoRuntimeArtifacts Include="$(_MonoAotCrossPdbFilePath)" Condition="Exists('$(_MonoAotCrossPdbFilePath)')"> From 27191eef1bf0f71f3f87e813f2e616297a27f998 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 13:48:25 -0400 Subject: [PATCH 09/55] Only use c++17 for LLVM 16+ --- src/mono/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index 25aefaa0229e0b..a72b6fa21ed317 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -649,9 +649,15 @@ if(LLVM_PREFIX) set(MONO_cxx_lib "-lc++") endif() + if(${llvm_api_version} GREATER_EQUAL 1600) + set(MONO_cxx_std_version "-std=c++17") + else() + set(MONO_cxx_std_version "-std=c++14") + endif() + # llvm-config --cflags set(llvm_cflags "-I${LLVM_PREFIX}/include -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") - set(llvm_cxxflags "-I${LLVM_PREFIX}/include -std=c++17 ${MONO_stdlib} -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") + set(llvm_cxxflags "-I${LLVM_PREFIX}/include ${MONO_cxx_std_version} ${MONO_stdlib} -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") set(llvm_includedir "${LLVM_PREFIX}/include") if(HOST_LINUX) From d4821433007d312a7b3b5106bd80e43297039b42 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 14:34:57 -0400 Subject: [PATCH 10/55] more special-casing --- src/mono/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index a72b6fa21ed317..91997baaf2adad 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -644,7 +644,7 @@ if(LLVM_PREFIX) set(MONO_llvm_extra_libs_aarch64codegen ${MONO_llvm_extra_libs_aarch64codegen} "LLVMObjCARCOpts" "LLVMSymbolize" "LLVMDebugInfoPDB" "LLVMIRReader" "LLVMAsmParser" "LLVMTargetParser") endif() - if(HOST_LINUX AND NOT "${TARGET_ARCH}" STREQUAL "wasm") + if(HOST_LINUX AND NOT "${TARGET_ARCH}" STREQUAL "wasm" AND ${llvm_api_version} GREATER_EQUAL 1600) set(MONO_stdlib "-stdlib=libc++") set(MONO_cxx_lib "-lc++") endif() From c2be7526b88a385cc8b0fd36fe4be5af1fe5281e Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 14:56:05 -0400 Subject: [PATCH 11/55] More special-casing 14 vs 16 --- src/mono/mono.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 333d487af93d69..4614d3d6d072af 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -272,13 +272,13 @@ <_MonoCMakeArgs Include="-DMONO_SHARED_LIB_NAME=$(MonoSharedLibName)" /> - + <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoCXXFLAGS Include="-stdlib=libc++" /> <_MonoCXXFLAGS Include="-Wl,-rpath=."/> - + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> From 3d466ed0785292885db39286bc3cf128440a010e Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 15:09:34 -0400 Subject: [PATCH 12/55] string comparison less evil than numeric comparison on non-System.Version version numbers --- src/mono/mono.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 4614d3d6d072af..79622a598f63d9 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -272,13 +272,13 @@ <_MonoCMakeArgs Include="-DMONO_SHARED_LIB_NAME=$(MonoSharedLibName)" /> - + <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoCXXFLAGS Include="-stdlib=libc++" /> <_MonoCXXFLAGS Include="-Wl,-rpath=."/> - + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> From e922ca6bbfe9bcbfdbe3c4fa1de56b937efc1f7f Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 15:52:51 -0400 Subject: [PATCH 13/55] Another strategy maybe --- src/mono/mono.proj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 79622a598f63d9..c644f37f0ec2f9 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -57,6 +57,8 @@ true true true + $(runtimelinuxx64MicrosoftNETCoreRuntimeMonoLLVMSdkVersion.Substring(0, $(runtimelinuxx64MicrosoftNETCoreRuntimeMonoLLVMSdkVersion.IndexOf('.')))) + true @@ -272,13 +274,13 @@ <_MonoCMakeArgs Include="-DMONO_SHARED_LIB_NAME=$(MonoSharedLibName)" /> - + <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoCXXFLAGS Include="-stdlib=libc++" /> <_MonoCXXFLAGS Include="-Wl,-rpath=."/> - + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> From e95df7d743fc242dcc7c66d09861ba8074b0b5a2 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 7 Jun 2023 16:32:30 -0400 Subject: [PATCH 14/55] one more --- src/mono/mono.proj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index c644f37f0ec2f9..888d3306a50efd 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -952,16 +952,16 @@ <_MonoRuntimeArtifacts Include="$(_MonoAotCrossFilePath)"> $(RuntimeBinDir)cross\$(OutputRID)\$(MonoAotCrossFileName) - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm' and '$(MonoUseLibCxx)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> $(RuntimeBinDir)libc++.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm' and '$(MonoUseLibCxx)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)libc++abi.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm' and '$(MonoUseLibCxx)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm' and '$(MonoUseLibCxx)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++abi.so.1 <_MonoRuntimeArtifacts Include="$(_MonoAotCrossPdbFilePath)" Condition="Exists('$(_MonoAotCrossPdbFilePath)')"> From 2cc16f04a46cef11c77e53ab6df62627103cd2ec Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 09:34:40 -0400 Subject: [PATCH 15/55] Use LLVM 16 packages from General Testing feed --- NuGet.config | 1 + eng/Version.Details.xml | 88 ++++++++++++++++++++--------------------- eng/Versions.props | 44 ++++++++++----------- 3 files changed, 67 insertions(+), 66 deletions(-) diff --git a/NuGet.config b/NuGet.config index fb8fca7e266512..d80b718a97e4c6 100644 --- a/NuGet.config +++ b/NuGet.config @@ -23,6 +23,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b55a2045949060..5699691f3c6419 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,29 +12,29 @@ https://github.com/dotnet/wcf 7f504aabb1988e9a093c1e74d8040bd52feb2f01 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 https://github.com/dotnet/llvm-project @@ -44,29 +44,29 @@ https://github.com/dotnet/llvm-project 76f334f354eb653a7b409a5319b591ea09df5a43 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 https://github.com/dotnet/llvm-project @@ -238,45 +238,45 @@ https://github.com/dotnet/runtime-assets 32bcf870359408a0cd6f325b558d744f5bf56c93 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 43fe12a7a5f6917dee47ca4de17477ed1ac2c312 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 5e154a36b58b3b..386b750abead3c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -105,12 +105,12 @@ 6.0.0 8.0.0-preview.5.23279.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 1.0.0-alpha.1.23106.1 1.0.0-alpha.1.23106.1 @@ -218,16 +218,16 @@ 2.1.7 8.0.0-alpha.1.23180.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 - 14.0.0-alpha.1.23301.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 1.0.0-alpha.1.23106.1 1.0.0-alpha.1.23106.1 From 917074fe0c3a1e18be8098da6eedc4292496a6e4 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 09:44:30 -0400 Subject: [PATCH 16/55] Remove dependency on antique objwriter Mac builds --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 8 ++++---- .../tools/SuperFileCheck/SuperFileCheck.csproj | 8 ++------ .../tools/aot/ILCompiler/ILCompiler.props | 8 ++------ 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b1047b892785d0..003a48e8012ccb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -36,13 +36,13 @@ https://github.com/dotnet/llvm-project 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 76f334f354eb653a7b409a5319b591ea09df5a43 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 76f334f354eb653a7b409a5319b591ea09df5a43 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 https://github.com/dotnet/llvm-project @@ -68,13 +68,13 @@ https://github.com/dotnet/llvm-project 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 76f334f354eb653a7b409a5319b591ea09df5a43 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 - + https://github.com/dotnet/llvm-project - 76f334f354eb653a7b409a5319b591ea09df5a43 + 992da97a50c240ec1edb38dd4f2cf82b9af11884 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 8e5b94bd48681e..d9b2903af6c101 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -111,8 +111,8 @@ 16.0.5-alpha.1.23308.2 16.0.5-alpha.1.23308.2 16.0.5-alpha.1.23308.2 - 1.0.0-alpha.1.23106.1 - 1.0.0-alpha.1.23106.1 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 6.0.0 1.1.1 @@ -244,8 +244,8 @@ 16.0.5-alpha.1.23308.2 16.0.5-alpha.1.23308.2 16.0.5-alpha.1.23308.2 - 1.0.0-alpha.1.23106.1 - 1.0.0-alpha.1.23106.1 + 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23308.2 3.1.7 1.0.406601 diff --git a/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj b/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj index 7c76b9fa817b42..b954034a29b220 100644 --- a/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj +++ b/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj @@ -23,10 +23,6 @@ linux - - osx.10.12 - osx.11.0 - x64 arm64 @@ -38,8 +34,8 @@ $(runtimelinuxmuslx64MicrosoftNETCoreRuntimeJITToolsVersion) $(runtimewinarm64MicrosoftNETCoreRuntimeJITToolsVersion) $(runtimewinx64MicrosoftNETCoreRuntimeJITToolsVersion) - $(runtimeosx110arm64MicrosoftNETCoreRuntimeJITToolsVersion) - $(runtimeosx1012x64MicrosoftNETCoreRuntimeJITToolsVersion) + $(runtimeosxarm64MicrosoftNETCoreRuntimeJITToolsVersion) + $(runtimeosxx64MicrosoftNETCoreRuntimeJITToolsVersion) diff --git a/src/coreclr/tools/aot/ILCompiler/ILCompiler.props b/src/coreclr/tools/aot/ILCompiler/ILCompiler.props index e1279e470c51da..7d5c0ac952fdbc 100644 --- a/src/coreclr/tools/aot/ILCompiler/ILCompiler.props +++ b/src/coreclr/tools/aot/ILCompiler/ILCompiler.props @@ -33,10 +33,6 @@ linux - - osx.10.12 - osx.11.0 - $(ObjWriterRidWithoutPlatform)-$(ObjWriterRidPlatform) $(runtimelinuxarm64MicrosoftNETCoreRuntimeObjWriterVersion) @@ -45,8 +41,8 @@ $(runtimelinuxmuslx64MicrosoftNETCoreRuntimeObjWriterVersion) $(runtimewinarm64MicrosoftNETCoreRuntimeObjWriterVersion) $(runtimewinx64MicrosoftNETCoreRuntimeObjWriterVersion) - $(runtimeosx110arm64MicrosoftNETCoreRuntimeObjWriterVersion) - $(runtimeosx1012x64MicrosoftNETCoreRuntimeObjWriterVersion) + $(runtimeosxarm64MicrosoftNETCoreRuntimeObjWriterVersion) + $(runtimeosxx64MicrosoftNETCoreRuntimeObjWriterVersion) $(runtimefreebsdx64MicrosoftNETCoreRuntimeObjWriterVersion) $(runtimefreebsdarm64MicrosoftNETCoreRuntimeObjWriterVersion) From ff6694b8e754ef5f096da6ceffef7c8d022986a7 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 10:05:44 -0400 Subject: [PATCH 17/55] Force c++17, or things like variant.h can't be found --- eng/native/configurecompiler.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index ee8e324db96f8b..0a9c30188ee90d 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -3,7 +3,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/configuretools.cmake) # Set initial flags for each configuration set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD 17) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) From 77c119e5f45c5c599f93150785bc366ef334f534 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 10:26:32 -0400 Subject: [PATCH 18/55] More forcibly include libc++ include/link path --- src/mono/CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index 91997baaf2adad..9c83e502f7da2c 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -646,7 +646,8 @@ if(LLVM_PREFIX) if(HOST_LINUX AND NOT "${TARGET_ARCH}" STREQUAL "wasm" AND ${llvm_api_version} GREATER_EQUAL 1600) set(MONO_stdlib "-stdlib=libc++") - set(MONO_cxx_lib "-lc++") + set(MONO_cxx_lib "-L${LLVM_PREFIX}/lib -lc++") + set(MONO_cxx_include "-I${LLVM_PREFIX}/include/c++/v1") endif() if(${llvm_api_version} GREATER_EQUAL 1600) @@ -657,7 +658,7 @@ if(LLVM_PREFIX) # llvm-config --cflags set(llvm_cflags "-I${LLVM_PREFIX}/include -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") - set(llvm_cxxflags "-I${LLVM_PREFIX}/include ${MONO_cxx_std_version} ${MONO_stdlib} -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") + set(llvm_cxxflags "-I${LLVM_PREFIX}/include ${MONO_cxx_include} ${MONO_cxx_std_version} ${MONO_stdlib} -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STD_FORMAT_MACROS -D__STDC_LIMIT_MACROS") set(llvm_includedir "${LLVM_PREFIX}/include") if(HOST_LINUX) From ecd44c8c8c662266f5f3685dab7fc139a7dbc7f6 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 10:26:45 -0400 Subject: [PATCH 19/55] silence deprecation warning --- src/mono/mono/mini/mini-llvm-cpp.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mono/mono/mini/mini-llvm-cpp.cpp b/src/mono/mono/mini/mini-llvm-cpp.cpp index cd8503aee38285..e3916f95da690e 100644 --- a/src/mono/mono/mini/mini-llvm-cpp.cpp +++ b/src/mono/mono/mini/mini-llvm-cpp.cpp @@ -37,6 +37,12 @@ #pragma warning(disable:4800) // type' : forcing value to bool 'true' or 'false' (performance warning) #endif +// ArrayRef API is deprecated on C++17 +#if defined(__clang__) && _LIBCPP_STD_VER > 17 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif + #include #include #include From c8445a91fca239ab66ee9bf22fb9ef8e4c2f2b2a Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 10:42:26 -0400 Subject: [PATCH 20/55] Try to deal with Macs --- src/mono/mono/mini/mini-llvm-cpp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/mono/mini/mini-llvm-cpp.cpp b/src/mono/mono/mini/mini-llvm-cpp.cpp index e3916f95da690e..7437466a2f71da 100644 --- a/src/mono/mono/mini/mini-llvm-cpp.cpp +++ b/src/mono/mono/mini/mini-llvm-cpp.cpp @@ -38,7 +38,7 @@ #endif // ArrayRef API is deprecated on C++17 -#if defined(__clang__) && _LIBCPP_STD_VER > 17 +#if defined(__clang__) && (_LIBCPP_STD_VER > 17 || defined(__APPLE__)) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif From 6c469ce17dae16d5845597378dcaae7c7ee3cca9 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 12:18:06 -0400 Subject: [PATCH 21/55] Resolve duplicates in cindex get_children() with LLVM16 the stupid way. --- src/mono/mono/tools/offsets-tool/offsets-tool.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/tools/offsets-tool/offsets-tool.py b/src/mono/mono/tools/offsets-tool/offsets-tool.py index 5f52ab268adc49..146ba0f8339685 100644 --- a/src/mono/mono/tools/offsets-tool/offsets-tool.py +++ b/src/mono/mono/tools/offsets-tool/offsets-tool.py @@ -383,8 +383,11 @@ def gen (self): if type.size == -1: continue f.write ("DECL_SIZE2(%s,%s)\n" % (type.name, type.size)) + done_fields = [] for field in type.fields: - f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset)) + if field.name not in done_fields: + f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset)) + done_fields.append(field.name) f.write ("#endif //disable jit check\n") f.write ("#endif //cross compiler checks\n") From 6804aac9c3ca1f7c45affd84ea37a0f83526eac8 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 12:48:44 -0400 Subject: [PATCH 22/55] Fix offset generation --- src/mono/mono/tools/offsets-tool/offsets-tool.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/tools/offsets-tool/offsets-tool.py b/src/mono/mono/tools/offsets-tool/offsets-tool.py index 146ba0f8339685..69a135a7259275 100644 --- a/src/mono/mono/tools/offsets-tool/offsets-tool.py +++ b/src/mono/mono/tools/offsets-tool/offsets-tool.py @@ -372,8 +372,11 @@ def gen (self): if type.size == -1: continue f.write ("DECL_SIZE2(%s,%s)\n" % (type.name, type.size)) + done_fields = [] for field in type.fields: - f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset)) + if field.name not in done_fields: + f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset)) + done_fields.append(field.name) f.write ("#endif //disable metadata check\n") f.write ("#ifndef DISABLE_JIT_OFFSETS\n") From 35a91f1c4292be4002f77702c8f8711746e09179 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 15:26:05 -0400 Subject: [PATCH 23/55] Use dictionary not array --- src/mono/mono/tools/offsets-tool/offsets-tool.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mono/mono/tools/offsets-tool/offsets-tool.py b/src/mono/mono/tools/offsets-tool/offsets-tool.py index 69a135a7259275..ab555b8d9db752 100644 --- a/src/mono/mono/tools/offsets-tool/offsets-tool.py +++ b/src/mono/mono/tools/offsets-tool/offsets-tool.py @@ -372,11 +372,11 @@ def gen (self): if type.size == -1: continue f.write ("DECL_SIZE2(%s,%s)\n" % (type.name, type.size)) - done_fields = [] + done_fields = {} for field in type.fields: if field.name not in done_fields: f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset)) - done_fields.append(field.name) + done_fields [field.name] = field.name f.write ("#endif //disable metadata check\n") f.write ("#ifndef DISABLE_JIT_OFFSETS\n") @@ -386,11 +386,11 @@ def gen (self): if type.size == -1: continue f.write ("DECL_SIZE2(%s,%s)\n" % (type.name, type.size)) - done_fields = [] + done_fields = {} for field in type.fields: if field.name not in done_fields: f.write ("DECL_OFFSET2(%s,%s,%s)\n" % (type.name, field.name, field.offset)) - done_fields.append(field.name) + done_fields [field.name] = field.name f.write ("#endif //disable jit check\n") f.write ("#endif //cross compiler checks\n") From d625c88c873930f573ccd10dc990122bcb9fd6a2 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 16:24:15 -0400 Subject: [PATCH 24/55] Use correct stdc++17 flag on Windows --- src/mono/CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index 9c83e502f7da2c..c6fef2fd82a050 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -651,9 +651,17 @@ if(LLVM_PREFIX) endif() if(${llvm_api_version} GREATER_EQUAL 1600) - set(MONO_cxx_std_version "-std=c++17") + if(HOST_WIN32) + set(MONO_cxx_std_version "/std:c++17") + else() + set(MONO_cxx_std_version "-std=c++17") + endif() else() - set(MONO_cxx_std_version "-std=c++14") + if(HOST_WIN32) + set(MONO_cxx_std_version "/std:c++14") + else() + set(MONO_cxx_std_version "-std=c++14") + endif() endif() # llvm-config --cflags From 43dff2d48363a90e698dcd0abefeedf856774244 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 9 Jun 2023 16:51:20 -0400 Subject: [PATCH 25/55] Silence deprecation warning on Windows --- src/mono/mono/mini/mini-llvm-cpp.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mono/mono/mini/mini-llvm-cpp.cpp b/src/mono/mono/mini/mini-llvm-cpp.cpp index 7437466a2f71da..b50eb471fa924b 100644 --- a/src/mono/mono/mini/mini-llvm-cpp.cpp +++ b/src/mono/mono/mini/mini-llvm-cpp.cpp @@ -42,6 +42,9 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif +#ifdef _MSC_VER +#pragma warning(disable:4996) +#endif #include #include From 9649d3bfccb741deb80a54d88ed629c1f9258d20 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Mon, 12 Jun 2023 10:43:11 -0400 Subject: [PATCH 26/55] Better conditional on LLVM16 stuff --- src/mono/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/CMakeLists.txt b/src/mono/CMakeLists.txt index c6fef2fd82a050..387ff11271d20d 100644 --- a/src/mono/CMakeLists.txt +++ b/src/mono/CMakeLists.txt @@ -644,7 +644,7 @@ if(LLVM_PREFIX) set(MONO_llvm_extra_libs_aarch64codegen ${MONO_llvm_extra_libs_aarch64codegen} "LLVMObjCARCOpts" "LLVMSymbolize" "LLVMDebugInfoPDB" "LLVMIRReader" "LLVMAsmParser" "LLVMTargetParser") endif() - if(HOST_LINUX AND NOT "${TARGET_ARCH}" STREQUAL "wasm" AND ${llvm_api_version} GREATER_EQUAL 1600) + if(HOST_LINUX AND NOT HOST_WASM AND NOT HOST_WASI AND ${llvm_api_version} GREATER_EQUAL 1600) set(MONO_stdlib "-stdlib=libc++") set(MONO_cxx_lib "-L${LLVM_PREFIX}/lib -lc++") set(MONO_cxx_include "-I${LLVM_PREFIX}/include/c++/v1") From 863e9a4352488e7596e40062c7ab7f26b739eb69 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Mon, 12 Jun 2023 14:05:52 -0400 Subject: [PATCH 27/55] Try to forcibly include libc++ with wasm builds --- src/mono/mono.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 3d68b83afac748..ef60b609b1e236 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -959,10 +959,10 @@ <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm' and '$(MonoUseLibCxx)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)libc++abi.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm' and '$(MonoUseLibCxx)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and (('$(MonoAOTEnableLLVM)' == 'true' and '$(MonoUseLibCxx)' == 'true') or '$(TargetArchitecture)' == 'wasm')" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++.so.1 - <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and '$(MonoAOTEnableLLVM)' == 'true' and '$(TargetArchitecture)' != 'wasm' and '$(MonoUseLibCxx)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> + <_MonoRuntimeArtifacts Condition="'$(HostOS)' == 'Linux' and (('$(MonoAOTEnableLLVM)' == 'true' and '$(MonoUseLibCxx)' == 'true') or '$(TargetArchitecture)' == 'wasm')" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib\libc++abi.so.1"> $(RuntimeBinDir)cross\$(OutputRID)\libc++abi.so.1 <_MonoRuntimeArtifacts Include="$(_MonoAotCrossPdbFilePath)" Condition="Exists('$(_MonoAotCrossPdbFilePath)')"> From f789593379ce0949d61bf9b1b1e8450a9dd81832 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 13 Jun 2023 11:55:14 -0400 Subject: [PATCH 28/55] New pass manager required for `opt` now --- eng/Version.Details.xml | 104 +++++++++++++++--------------- eng/Versions.props | 52 +++++++-------- src/mono/mono/mini/aot-compiler.c | 5 +- 3 files changed, 81 insertions(+), 80 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7f8ff52a62c228..3c21faabe946a0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,69 +12,69 @@ https://github.com/dotnet/wcf 7f504aabb1988e9a093c1e74d8040bd52feb2f01 - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd https://github.com/dotnet/command-line-api @@ -238,45 +238,45 @@ https://github.com/dotnet/runtime-assets dd24bedc8b3911238274036dda611a16bb850545 - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd - + https://github.com/dotnet/llvm-project - 992da97a50c240ec1edb38dd4f2cf82b9af11884 + 30c26468a6d5ffa46226e83768b44b04bebff9dd https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index b7d1104e7928ab..2b2bc56c6bcb30 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -105,14 +105,14 @@ 6.0.0 8.0.0-preview.6.23304.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 6.0.0 1.1.1 @@ -218,16 +218,16 @@ 2.1.7 8.0.0-alpha.1.23180.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 - 16.0.5-alpha.1.23308.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23312.2 3.1.7 1.0.406601 diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index 31feac1cc2e054..e3946ca6431b40 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -10724,8 +10724,9 @@ emit_llvm_file (MonoAotCompile *acfg) // FIXME: This doesn't work yet opts = g_strdup (""); } else { -#if LLVM_API_VERSION >= 1300 - /* The safepoints pass requires the old pass manager */ + opts = g_strdup ("-disable-tail-calls -place-safepoints -spp-all-backedges -enable-new-pm=0"); +#if (LLVM_API_VERSION >= 1300 && LLVM_API_VERSION < 1600) + /* The safepoints pass requires the old pass manager, has been ported to new pass manager in LLVM 16 packages */ opts = g_strdup ("-disable-tail-calls -place-safepoints -spp-all-backedges -enable-new-pm=0"); #else opts = g_strdup ("-disable-tail-calls -place-safepoints -spp-all-backedges"); From b36a8e6ed4ed9c5920760fc65b85d59a88e27fcf Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 13 Jun 2023 13:03:02 -0400 Subject: [PATCH 29/55] Escaping rpath is ~impossible, pass via CMake property instead --- src/mono/mono.proj | 6 +++--- src/mono/mono/mini/CMakeLists.txt | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index ef60b609b1e236..0db58cc116f998 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -278,13 +278,13 @@ <_MonoCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoCXXFLAGS Include="-stdlib=libc++" /> - <_MonoCXXFLAGS Include="-Wl,-rpath=."/> + <_MonoCMakeArgs Include="-DMONO_SET_RPATH_ORIGIN=true" /> - + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> - <_MonoAOTCXXFLAGS Include="-Wl,-rpath,."/> + diff --git a/src/mono/mono/mini/CMakeLists.txt b/src/mono/mono/mini/CMakeLists.txt index 8e60babe7bb83c..498ed5b799f5e2 100644 --- a/src/mono/mono/mini/CMakeLists.txt +++ b/src/mono/mono/mini/CMakeLists.txt @@ -547,6 +547,9 @@ if(NOT DISABLE_EXECUTABLES) add_executable(mono-sgen "${sgen_sources}") if(MONO_CROSS_COMPILE_EXECUTABLE_NAME) set_target_properties(mono-sgen PROPERTIES OUTPUT_NAME mono-aot-cross) + if(MONO_SET_RPATH_ORIGIN) + set_target_properties(mono-sgen PROPERTIES INSTALL_RPATH "$ORIGIN") + endif() endif() target_link_libraries(mono-sgen PRIVATE monoapi eglib_api monosgen-static) if(HAVE_ICU_SHIM) From 37a092b9a33300b3e7fd3253bc6724e6fd799162 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 13 Jun 2023 13:20:45 -0400 Subject: [PATCH 30/55] fix stupid typo --- eng/native/configurecompiler.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index 0a9c30188ee90d..e21876adfc2b91 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -3,9 +3,9 @@ include(${CMAKE_CURRENT_LIST_DIR}/configuretools.cmake) # Set initial flags for each configuration set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_C_STANDARD 17) +set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) include(CheckCCompilerFlag) From 456c51a7461ba6f6444555360c5486a8b3d18815 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 13 Jun 2023 13:47:11 -0400 Subject: [PATCH 31/55] Changing this breaks so much of coreclr. Let's see what happens without it --- eng/native/configurecompiler.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index e21876adfc2b91..ee8e324db96f8b 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -5,7 +5,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/configuretools.cmake) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) include(CheckCCompilerFlag) From b398e833840a779d970f5112f1b42f3f1028830f Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 13 Jun 2023 15:28:47 -0400 Subject: [PATCH 32/55] Move AOT LLVM CFLAG handling AFTER where LLVM arch is set --- src/mono/mono.proj | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 0db58cc116f998..8319a039ea9583 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -280,12 +280,6 @@ <_MonoCXXFLAGS Include="-stdlib=libc++" /> <_MonoCMakeArgs Include="-DMONO_SET_RPATH_ORIGIN=true" /> - - <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> - <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> - <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> - - @@ -712,6 +706,13 @@ <_MonoLLVMTargetArchitecture Condition="'$(AotHostArchitecture)' != ''">$(AotHostArchitecture) + + <_MonoAOTCXXFLAGS Include="-I$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\include\c++\v1" /> + <_MonoAOTCXXFLAGS Include="-L$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\lib" /> + <_MonoAOTCXXFLAGS Include="-stdlib=libc++" /> + + + From e71c8cae5d06d7475cac1a3735f7cecd223e2cfc Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 13 Jun 2023 15:37:03 -0400 Subject: [PATCH 33/55] Use of new safepoint syntax is mandatory --- src/mono/mono/mini/aot-compiler.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index e3946ca6431b40..263b29c61ce945 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -10724,9 +10724,11 @@ emit_llvm_file (MonoAotCompile *acfg) // FIXME: This doesn't work yet opts = g_strdup (""); } else { - opts = g_strdup ("-disable-tail-calls -place-safepoints -spp-all-backedges -enable-new-pm=0"); -#if (LLVM_API_VERSION >= 1300 && LLVM_API_VERSION < 1600) - /* The safepoints pass requires the old pass manager, has been ported to new pass manager in LLVM 16 packages */ +#if LLVM_API_VERSION >= 1600 + /* The safepoints pass requires new pass manager syntax*/ + opts = g_strdup ("-disable-tail-calls -passes=place-safepoints -spp-all-backedges"); +#elif LLVM_API_VERSION >= 1300 + /* The safepoints pass requires the old pass manager */ opts = g_strdup ("-disable-tail-calls -place-safepoints -spp-all-backedges -enable-new-pm=0"); #else opts = g_strdup ("-disable-tail-calls -place-safepoints -spp-all-backedges"); From 44c56f518f8f6b42a8330b332d59804e391f0bfb Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 14 Jun 2023 16:13:18 -0400 Subject: [PATCH 34/55] Fix missing libc++.so.1 errors in "LLVM AOT compile CoreCLR tests" lane --- src/mono/mono.proj | 2 +- src/mono/mono/mini/CMakeLists.txt | 3 +++ src/tests/Common/Directory.Build.targets | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 8319a039ea9583..8ccee5d4177053 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -58,7 +58,7 @@ true true $(runtimelinuxx64MicrosoftNETCoreRuntimeMonoLLVMSdkVersion.Substring(0, $(runtimelinuxx64MicrosoftNETCoreRuntimeMonoLLVMSdkVersion.IndexOf('.')))) - true + true diff --git a/src/mono/mono/mini/CMakeLists.txt b/src/mono/mono/mini/CMakeLists.txt index 498ed5b799f5e2..309ea0cc246ca5 100644 --- a/src/mono/mono/mini/CMakeLists.txt +++ b/src/mono/mono/mini/CMakeLists.txt @@ -382,6 +382,9 @@ if(NOT DISABLE_SHARED_LIBS) target_link_libraries(monosgen-shared PRIVATE ucontext) endif(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) set_target_properties(monosgen-shared PROPERTIES OUTPUT_NAME ${MONO_SHARED_LIB_NAME}) + if(MONO_SET_RPATH_ORIGIN) + set_target_properties(monosgen-shared PROPERTIES INSTALL_RPATH "$ORIGIN") + endif() target_link_libraries(monosgen-shared PRIVATE monoapi eglib_objects utils_objects sgen_objects metadata_objects) if(HAVE_ICU_SHIM) target_link_libraries(monosgen-shared PRIVATE icu_shim_objects) diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets index fd1d1af2c512ee..fec20452b87bcd 100644 --- a/src/tests/Common/Directory.Build.targets +++ b/src/tests/Common/Directory.Build.targets @@ -176,6 +176,8 @@ + + Date: Wed, 14 Jun 2023 16:46:19 -0400 Subject: [PATCH 35/55] Switch to new LLVM 16 `opt` syntax --- src/mono/mono/mini/aot-compiler.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index 263b29c61ce945..26af801e51e637 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -10726,7 +10726,11 @@ emit_llvm_file (MonoAotCompile *acfg) } else { #if LLVM_API_VERSION >= 1600 /* The safepoints pass requires new pass manager syntax*/ - opts = g_strdup ("-disable-tail-calls -passes=place-safepoints -spp-all-backedges"); + opts = g_strdup ("-disable-tail-calls -passes='"); + if (!acfg->aot_opts.llvm_only) { + opts = g_strdup_printf ("%sdefault,", opts); + } + opts = g_strdup_printf ("%splace-safepoints' -spp-all-backedges", opts); #elif LLVM_API_VERSION >= 1300 /* The safepoints pass requires the old pass manager */ opts = g_strdup ("-disable-tail-calls -place-safepoints -spp-all-backedges -enable-new-pm=0"); @@ -10737,8 +10741,10 @@ emit_llvm_file (MonoAotCompile *acfg) if (acfg->aot_opts.llvm_opts) { opts = g_strdup_printf ("%s %s", acfg->aot_opts.llvm_opts, opts); +#if LLVM_API_VERSION < 1600 } else if (!acfg->aot_opts.llvm_only) { opts = g_strdup_printf ("-O2 %s", opts); +#endif } if (acfg->aot_opts.use_current_cpu) { From 5310a09e1ebeff76ecf763dac02c80bb2ab1fa72 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 16 Jun 2023 08:06:19 -0400 Subject: [PATCH 36/55] bump llvm16 --- eng/Version.Details.xml | 104 ++++++++++++++++++++-------------------- eng/Versions.props | 52 ++++++++++---------- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 23015bd6b9e679..17e932f5e41cc6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,69 +12,69 @@ https://github.com/dotnet/wcf 7f504aabb1988e9a093c1e74d8040bd52feb2f01 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 https://github.com/dotnet/command-line-api @@ -238,45 +238,45 @@ https://github.com/dotnet/runtime-assets dd24bedc8b3911238274036dda611a16bb850545 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 - + https://github.com/dotnet/llvm-project - 30c26468a6d5ffa46226e83768b44b04bebff9dd + 45c8c03535cc135045d5afba9794f292bac90849 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index afc18a442b6f18..31b5253473f5df 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -105,14 +105,14 @@ 6.0.0 8.0.0-preview.6.23309.7 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 6.0.0 1.1.1 @@ -218,16 +218,16 @@ 2.1.7 8.0.0-alpha.1.23180.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 - 16.0.5-alpha.1.23312.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23315.2 3.1.7 1.0.406601 From 097ae1e8c1a03cbaf3ac04b611a8987d114e1a1d Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 16 Jun 2023 09:04:39 -0400 Subject: [PATCH 37/55] Add libc++ to manifest --- .../pkg/sfx/Microsoft.NETCore.App/Directory.Build.props | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props index 3a961b3078c9d1..d75d211ee30139 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props @@ -199,6 +199,9 @@ + + + From 9bcfa1a790958cd33b5f3645e674807cead4a2be Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 16 Jun 2023 15:22:40 -0400 Subject: [PATCH 38/55] Add debug spew due to unreproducible Mariner issue --- src/mono/msbuild/aot-compile.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mono/msbuild/aot-compile.proj b/src/mono/msbuild/aot-compile.proj index 9a1097510524d7..772123a653bd27 100644 --- a/src/mono/msbuild/aot-compile.proj +++ b/src/mono/msbuild/aot-compile.proj @@ -16,6 +16,7 @@ + From fb6c91d96024f518e9d04a906765df3d26fea079 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 16 Jun 2023 16:25:29 -0400 Subject: [PATCH 39/55] More debug spew --- src/mono/msbuild/aot-compile.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mono/msbuild/aot-compile.proj b/src/mono/msbuild/aot-compile.proj index 772123a653bd27..f9d9d38d97c85e 100644 --- a/src/mono/msbuild/aot-compile.proj +++ b/src/mono/msbuild/aot-compile.proj @@ -17,6 +17,7 @@ + From 3f4b4f4fc3650920779174c7de49b219e9d93f7c Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 16 Jun 2023 17:50:21 -0400 Subject: [PATCH 40/55] Revert "More debug spew" This reverts commit fb6c91d96024f518e9d04a906765df3d26fea079. --- src/mono/msbuild/aot-compile.proj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mono/msbuild/aot-compile.proj b/src/mono/msbuild/aot-compile.proj index f9d9d38d97c85e..772123a653bd27 100644 --- a/src/mono/msbuild/aot-compile.proj +++ b/src/mono/msbuild/aot-compile.proj @@ -17,7 +17,6 @@ - From ab988e6095a3ae54af46b4bac134ba6f87e1c146 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 16 Jun 2023 17:50:26 -0400 Subject: [PATCH 41/55] Revert "Add debug spew due to unreproducible Mariner issue" This reverts commit 9bcfa1a790958cd33b5f3645e674807cead4a2be. --- src/mono/msbuild/aot-compile.proj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mono/msbuild/aot-compile.proj b/src/mono/msbuild/aot-compile.proj index 772123a653bd27..9a1097510524d7 100644 --- a/src/mono/msbuild/aot-compile.proj +++ b/src/mono/msbuild/aot-compile.proj @@ -16,7 +16,6 @@ - From d681afec21f3081a69e1bb6d29f636e91e2ec169 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Mon, 19 Jun 2023 14:16:00 -0400 Subject: [PATCH 42/55] [mono][llvm] Fix more opaque pointer problems. --- src/mono/mono/mini/mini-llvm.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index 20ee76582070cd..7e78cc0b079afc 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -2151,9 +2151,11 @@ get_callee_llvmonly (EmitContext *ctx, LLVMTypeRef llvm_sig, MonoJumpInfoType ty g_hash_table_insert (ctx->module->direct_callables, (char*)callee_name, callee); } else { +#ifndef USE_OPAQUE_POINTERS /* LLVMTypeRef's are uniqued */ if (LLVMGetElementType (LLVMTypeOf (callee)) != llvm_sig) return LLVMConstBitCast (callee, pointer_type (llvm_sig)); +#endif g_free (callee_name); } @@ -4395,7 +4397,8 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref, vretaddr = (cinfo->ret.storage == LLVMArgVtypeRetAddr || cinfo->ret.storage == LLVMArgVtypeByRef || cinfo->ret.storage == LLVMArgGsharedvtFixed || cinfo->ret.storage == LLVMArgGsharedvtVariable || cinfo->ret.storage == LLVMArgGsharedvtFixedVtype); - llvm_sig = sig_to_llvm_sig_full (ctx, sig, cinfo, NULL); + LLVMTypeRef *param_etypes; + llvm_sig = sig_to_llvm_sig_full (ctx, sig, cinfo, ¶m_etypes); if (!ctx_ok (ctx)) return; @@ -4751,7 +4754,7 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref, #endif if (is_byval) - mono_llvm_add_instr_byval_attr (lcall, 1 + ainfo->pindex, LLVMGetElementType (param_types [ainfo->pindex])); + mono_llvm_add_instr_byval_attr (lcall, 1 + ainfo->pindex, param_etypes [ainfo->pindex]); } MonoClass *retclass = mono_class_from_mono_type_internal (sig->ret); @@ -5037,7 +5040,7 @@ emit_llvmonly_landing_pad (EmitContext *ctx, int group_index, int group_size) /* Return the value set in ctx->il_state_ret */ - LLVMTypeRef ret_type = LLVMGetReturnType (LLVMGetElementType (LLVMTypeOf (ctx->lmethod))); + LLVMTypeRef ret_type = LLVMGetReturnType (ctx->method_type); LLVMValueRef addr, retval, gep, indexes [2]; builder = ctx->builder; @@ -12459,8 +12462,10 @@ emit_method_inner (EmitContext *ctx) is_byval |= ainfo->storage == LLVMArgVtypeByRef; #endif - if (is_byval) - mono_llvm_add_param_byval_attr (LLVMGetParam (method, pindex), LLVMGetElementType (LLVMTypeOf (LLVMGetParam (method, pindex)))); + if (is_byval) { + g_assert (ctx->param_etypes [pindex]); + mono_llvm_add_param_byval_attr (LLVMGetParam (method, pindex), ctx->param_etypes [pindex]); + } if (ainfo->storage == LLVMArgVtypeByRef || ainfo->storage == LLVMArgVtypeAddr) { /* For OP_LDADDR */ From acf08be6875835317d1218275e6ed1b503967643 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Mon, 19 Jun 2023 19:55:23 -0400 Subject: [PATCH 43/55] Avoid using llvm/ as the llvm prefix if MonoLLVMDir is set manually. --- src/mono/Directory.Build.props | 4 ++-- src/mono/mono.proj | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props index a7a5977b72e90d..3bf460330a1c9c 100644 --- a/src/mono/Directory.Build.props +++ b/src/mono/Directory.Build.props @@ -50,8 +50,8 @@ true true true - <_MonoUseLLVMPackage Condition="'$(MonoLLVMDir)' == '' and ('$(MonoEnableLLVM)' == 'true' or $(MonoAOTEnableLLVM) == 'true')">true - $([MSBuild]::NormalizeDirectory('$(MonoObjDir)', 'llvm')) + true + $([MSBuild]::NormalizeDirectory('$(MonoObjDir)', 'llvm')) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 8ccee5d4177053..85db8a7e59a390 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -257,8 +257,8 @@ - <_MonoLLVMTargetArchitecture Condition="'$(TargetArchitecture)' == 'wasm'">$(BuildArchitecture) - <_MonoLLVMTargetArchitecture Condition="'$(TargetArchitecture)' != 'wasm'">$(TargetArchitecture) + <_MonoLLVMTargetArchitecture Condition="'$(TargetArchitecture)' == 'wasm' and '$(MonoUseLLVMPackage)' == 'true'">$(BuildArchitecture) + <_MonoLLVMTargetArchitecture Condition="'$(TargetArchitecture)' != 'wasm' and '$(MonoUseLLVMPackage)' == 'true'">$(TargetArchitecture) <_MonoCMakeArgs Condition="'$(_MonoUseNinja)' == 'true'" Include="-G Ninja"/> @@ -702,8 +702,8 @@ - <_MonoLLVMTargetArchitecture>$(BuildArchitecture) - <_MonoLLVMTargetArchitecture Condition="'$(AotHostArchitecture)' != ''">$(AotHostArchitecture) + <_MonoLLVMTargetArchitecture Condition="'$(MonoUseLLVMPackage)' == 'true'">$(BuildArchitecture) + <_MonoLLVMTargetArchitecture Condition="'$(AotHostArchitecture)' != '' and '$(MonoUseLLVMPackage)' == 'true'">$(AotHostArchitecture) From 879eca8e50be6237b70dfe5f9876187c5430181f Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Mon, 19 Jun 2023 23:32:58 -0400 Subject: [PATCH 44/55] Bump LLVM to include Filip's fix for MacOS --- eng/Version.Details.xml | 104 ++++++++++++++++++++-------------------- eng/Versions.props | 52 ++++++++++---------- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 12053aee73609d..444686484ce73a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,69 +12,69 @@ https://github.com/dotnet/wcf 7f504aabb1988e9a093c1e74d8040bd52feb2f01 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 https://github.com/dotnet/command-line-api @@ -238,45 +238,45 @@ https://github.com/dotnet/runtime-assets dd24bedc8b3911238274036dda611a16bb850545 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 - + https://github.com/dotnet/llvm-project - 45c8c03535cc135045d5afba9794f292bac90849 + 698f15beaff79bb990e48c3c632dda98b6f28d86 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index a9e7937c46b586..4b7f285bdcfb7e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -105,14 +105,14 @@ 6.0.0 8.0.0-preview.6.23309.7 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 6.0.0 1.1.1 @@ -218,16 +218,16 @@ 2.1.7 8.0.0-alpha.1.23180.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 - 16.0.5-alpha.1.23315.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 + 16.0.5-alpha.1.23319.2 3.1.7 1.0.406601 From ede3523e053273f45202271adeccad550b50d9d2 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Tue, 20 Jun 2023 10:19:47 -0400 Subject: [PATCH 45/55] Try to resolve MacOS build failures caused by self-built LLVM changes --- src/mono/mono.proj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 73100c0f5404d2..7cfff98ac8eb37 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -712,10 +712,10 @@ - - - - + + + + <_MonoAOTCFLAGS Condition="'$(AotHostArchitecture)' == 'arm64'" Include="-arch arm64" /> From 867f0c35dd06a82b217747bbcae38e84fa925ca3 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Tue, 20 Jun 2023 17:23:07 -0400 Subject: [PATCH 46/55] Fix more llvm problems. --- src/mono/mono/mini/mini-llvm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index 43221846f7fc88..bbc2b0f30290f4 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -5945,7 +5945,12 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) /* The return value might not be set if there is a throw */ LLVMValueRef val = build_ptr_cast (builder, lhs, LLVMVectorType (IntPtrType (), elems)); for (int i = 0; i < elems; ++i) { + LLVMTypeRef etype = LLVMStructGetTypeAtIndex (LLVMTypeOf (retval), i); LLVMValueRef element = LLVMBuildExtractElement (builder, val, const_int32 (i), ""); + if (LLVMTypeOf (element) == r8_t) + element = LLVMBuildBitCast (builder, element, LLVMStructGetTypeAtIndex (LLVMTypeOf (retval), i), ""); + else + element = convert (ctx, element, etype); retval = LLVMBuildInsertValue (builder, retval, element, i, "setret_simd_vtype_in_reg"); } } else { From 5a1db57581808b417e5f58648277791b780e0406 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Tue, 20 Jun 2023 19:50:33 -0400 Subject: [PATCH 47/55] Fix more llvm problems. --- src/mono/mono/mini/mini-llvm.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index bbc2b0f30290f4..a8e925ed8774b4 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -5943,14 +5943,11 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) int width = mono_type_size (sig->ret, NULL); int elems = width / TARGET_SIZEOF_VOID_P; /* The return value might not be set if there is a throw */ - LLVMValueRef val = build_ptr_cast (builder, lhs, LLVMVectorType (IntPtrType (), elems)); + LLVMValueRef val = LLVMBuildBitCast (builder, lhs, LLVMVectorType (IntPtrType (), elems), ""); for (int i = 0; i < elems; ++i) { LLVMTypeRef etype = LLVMStructGetTypeAtIndex (LLVMTypeOf (retval), i); LLVMValueRef element = LLVMBuildExtractElement (builder, val, const_int32 (i), ""); - if (LLVMTypeOf (element) == r8_t) - element = LLVMBuildBitCast (builder, element, LLVMStructGetTypeAtIndex (LLVMTypeOf (retval), i), ""); - else - element = convert (ctx, element, etype); + element = convert (ctx, element, etype); retval = LLVMBuildInsertValue (builder, retval, element, i, "setret_simd_vtype_in_reg"); } } else { From 0a6189ad312978e67b12be77266b07f14aaca7f6 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Wed, 21 Jun 2023 12:24:57 -0400 Subject: [PATCH 48/55] Avoid passing out-of-range values to llvm shift instructions. --- src/mono/mono/mini/mini-llvm.c | 49 ++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index a8e925ed8774b4..47f2ff04e51685 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -6421,6 +6421,30 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) case OP_SHR_UN_IMM: { LLVMValueRef imm; + gboolean shift_ovf = FALSE; + switch (ins->opcode) { + case OP_ISHL_IMM: + case OP_ISHR_IMM: + case OP_ISHR_UN_IMM: + if (ins->inst_imm < 0 || ins->inst_imm >= 32) + shift_ovf = TRUE; + break; + case OP_LSHL_IMM: + case OP_LSHR_IMM: + case OP_LSHR_UN_IMM: + if (ins->inst_imm < 0 || ins->inst_imm >= 64) + shift_ovf = TRUE; + break; + case OP_SHL_IMM: + case OP_SHR_IMM: + case OP_SHR_UN_IMM: + if (ins->inst_imm < 0 || ins->inst_imm >= TARGET_SIZEOF_VOID_P * 8) + shift_ovf = TRUE; + break; + default: + break; + } + if (spec [MONO_INST_SRC1] == 'l') { imm = const_int64 (GET_LONG_IMM (ins)); } else { @@ -6485,7 +6509,10 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) break; case OP_ISHL_IMM: case OP_LSHL_IMM: - values [ins->dreg] = LLVMBuildShl (builder, lhs, imm, dname); + if (shift_ovf) + values [ins->dreg] = LLVMConstNull (LLVMTypeOf (lhs)); + else + values [ins->dreg] = LLVMBuildShl (builder, lhs, imm, dname); break; case OP_SHL_IMM: MONO_DISABLE_WARNING(4127) /* conditional expression is constant */ @@ -6495,22 +6522,34 @@ MONO_DISABLE_WARNING(4127) /* conditional expression is constant */ imm = convert (ctx, imm, LLVMInt64Type ()); } MONO_RESTORE_WARNING - values [ins->dreg] = LLVMBuildShl (builder, lhs, imm, dname); + if (shift_ovf) + values [ins->dreg] = LLVMConstNull (LLVMTypeOf (lhs)); + else + values [ins->dreg] = LLVMBuildShl (builder, lhs, imm, dname); break; case OP_ISHR_IMM: case OP_LSHR_IMM: case OP_SHR_IMM: - values [ins->dreg] = LLVMBuildAShr (builder, lhs, imm, dname); + if (shift_ovf) + values [ins->dreg] = LLVMConstNull (LLVMTypeOf (lhs)); + else + values [ins->dreg] = LLVMBuildAShr (builder, lhs, imm, dname); break; case OP_ISHR_UN_IMM: /* This is used to implement conv.u4, so the lhs could be an i8 */ lhs = convert (ctx, lhs, LLVMInt32Type ()); imm = convert (ctx, imm, LLVMInt32Type ()); - values [ins->dreg] = LLVMBuildLShr (builder, lhs, imm, dname); + if (shift_ovf) + values [ins->dreg] = LLVMConstNull (LLVMTypeOf (lhs)); + else + values [ins->dreg] = LLVMBuildLShr (builder, lhs, imm, dname); break; case OP_LSHR_UN_IMM: case OP_SHR_UN_IMM: - values [ins->dreg] = LLVMBuildLShr (builder, lhs, imm, dname); + if (shift_ovf) + values [ins->dreg] = LLVMConstNull (LLVMTypeOf (lhs)); + else + values [ins->dreg] = LLVMBuildLShr (builder, lhs, imm, dname); break; default: g_assert_not_reached (); From 7dc2e06d67f72de3feb55347f873a21b9c65b38d Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Wed, 21 Jun 2023 18:58:04 -0400 Subject: [PATCH 49/55] Convert inputs to long shifts to a long. Ignore poison values. --- src/mono/mono/mini/mini-llvm.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index 47f2ff04e51685..7fc51ecd97837d 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -6422,6 +6422,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) LLVMValueRef imm; gboolean shift_ovf = FALSE; + gboolean shift_i8 = FALSE; switch (ins->opcode) { case OP_ISHL_IMM: case OP_ISHR_IMM: @@ -6434,6 +6435,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) case OP_LSHR_UN_IMM: if (ins->inst_imm < 0 || ins->inst_imm >= 64) shift_ovf = TRUE; + shift_i8 = TRUE; break; case OP_SHL_IMM: case OP_SHR_IMM: @@ -6457,9 +6459,12 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb) builder = ctx->builder; #if TARGET_SIZEOF_VOID_P == 4 - if (ins->opcode == OP_LSHL_IMM || ins->opcode == OP_LSHR_IMM || ins->opcode == OP_LSHR_UN_IMM) + if (shift_i8) imm = const_int32 (ins->inst_imm); #endif + if (shift_i8) + /* The IL might not be regular */ + lhs = convert (ctx, lhs, LLVMInt64Type ()); if (LLVMGetTypeKind (LLVMTypeOf (lhs)) == LLVMPointerTypeKind) lhs = convert (ctx, lhs, IntPtrType ()); @@ -11956,6 +11961,12 @@ MONO_RESTORE_WARNING if (!ctx_ok (ctx)) break; +#if LLVM_API_VERSION >= 1600 + if (spec [MONO_INST_DEST] != ' ' && LLVMIsPoison (values [ins->dreg])) + /* These could be generated by float<->int conversions etc. */ + values [ins->dreg] = LLVMBuildFreeze (builder, values [ins->dreg], ""); +#endif + /* Convert the value to the type required by phi nodes */ if (spec [MONO_INST_DEST] != ' ' && !MONO_IS_STORE_MEMBASE (ins) && ctx->vreg_types [ins->dreg]) { if (ctx->is_vphi [ins->dreg]) From 648c74137084c281808ed474b46b9f0adf1c5892 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Wed, 21 Jun 2023 21:36:44 -0400 Subject: [PATCH 50/55] Fix a nullref. --- src/mono/mono/mini/mini-llvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index 7fc51ecd97837d..3ef0f654ff24ca 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -11962,7 +11962,7 @@ MONO_RESTORE_WARNING break; #if LLVM_API_VERSION >= 1600 - if (spec [MONO_INST_DEST] != ' ' && LLVMIsPoison (values [ins->dreg])) + if (spec [MONO_INST_DEST] != ' ' && values [ins->dreg] && LLVMIsPoison (values [ins->dreg])) /* These could be generated by float<->int conversions etc. */ values [ins->dreg] = LLVMBuildFreeze (builder, values [ins->dreg], ""); #endif From b9e3ae687e0b90a01ed9c39badbb62fe27495bd1 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Wed, 28 Jun 2023 10:58:09 -0400 Subject: [PATCH 51/55] Disable Android workload builds for now --- eng/pipelines/runtime-official.yml | 8 -- .../WorkloadManifest.json.in | 86 +---------------- .../WorkloadManifest.json.in | 96 ------------------- .../WorkloadManifest.json.in | 96 ------------------- src/workloads/workloads.csproj | 12 --- 5 files changed, 1 insertion(+), 297 deletions(-) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 9aa97b9034a3c1..03e74f9e9303c3 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -131,10 +131,6 @@ extends: buildConfig: release runtimeFlavor: mono platforms: - - android_x64 - - android_x86 - - android_arm - - android_arm64 - maccatalyst_x64 - maccatalyst_arm64 - tvossimulator_x64 @@ -507,10 +503,6 @@ extends: isOfficialBuild: ${{ variables.isOfficialBuild }} timeoutInMinutes: 120 dependsOn: - - Build_android_arm_release_AllSubsets_Mono - - Build_android_arm64_release_AllSubsets_Mono - - Build_android_x86_release_AllSubsets_Mono - - Build_android_x64_release_AllSubsets_Mono - Build_browser_wasm_Linux_release_AllSubsets_Mono - Build_wasi_wasm_linux_release_AllSubsets_Mono - Build_ios_arm64_release_AllSubsets_Mono diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in index c3504278703704..49163de5623c95 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in @@ -38,33 +38,9 @@ "packs": [ "Microsoft.NET.Runtime.LibraryBuilder.Sdk" ], - "extends": [ "microsoft-net-runtime-android-aot", "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ], + "extends": [ "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ], "platforms": [ "osx-x64", "osx-arm64" ] }, - "microsoft-net-runtime-android": { - "abstract": true, - "description": "Android Mono Runtime", - "packs": [ - "Microsoft.NETCore.App.Runtime.Mono.android-arm", - "Microsoft.NETCore.App.Runtime.Mono.android-arm64", - "Microsoft.NETCore.App.Runtime.Mono.android-x64", - "Microsoft.NETCore.App.Runtime.Mono.android-x86" - ], - "extends": [ "microsoft-net-runtime-mono-tooling" ], - "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] - }, - "microsoft-net-runtime-android-aot": { - "abstract": true, - "description": "Android Mono AOT Workload", - "packs": [ - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x86", - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x64", - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm", - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm64" - ], - "extends": [ "microsoft-net-runtime-android" ], - "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] - }, "microsoft-net-runtime-ios": { "abstract": true, "description": "iOS Mono Runtime and AOT Workload", @@ -184,66 +160,6 @@ "kind": "template", "version": "${PackageVersion}" }, - "Microsoft.NETCore.App.Runtime.Mono.android-arm": { - "kind": "framework", - "version": "${PackageVersion}" - }, - "Microsoft.NETCore.App.Runtime.Mono.android-arm64": { - "kind": "framework", - "version": "${PackageVersion}" - }, - "Microsoft.NETCore.App.Runtime.Mono.android-x64": { - "kind": "framework", - "version": "${PackageVersion}" - }, - "Microsoft.NETCore.App.Runtime.Mono.android-x86": { - "kind": "framework", - "version": "${PackageVersion}" - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x86": { - "kind": "Sdk", - "version": "${PackageVersion}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x64": { - "kind": "Sdk", - "version": "${PackageVersion}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm": { - "kind": "Sdk", - "version": "${PackageVersion}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm64": { - "kind": "Sdk", - "version": "${PackageVersion}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" - } - }, "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64": { "kind": "framework", "version": "${PackageVersion}", diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in index 2b17a34546f8b9..eb1257ea02afeb 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in @@ -14,30 +14,6 @@ "extends": [ "microsoft-net-runtime-mono-tooling-net6", "microsoft-net-sdk-emscripten-net6" ], "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] }, - "microsoft-net-runtime-android-net6": { - "abstract": true, - "description": "Android Mono Runtime", - "packs": [ - "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm", - "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64", - "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64", - "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86" - ], - "extends": [ "microsoft-net-runtime-mono-tooling-net6" ], - "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] - }, - "microsoft-net-runtime-android-aot-net6": { - "abstract": true, - "description": "Android Mono AOT Workload", - "packs": [ - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86", - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64", - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm", - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64" - ], - "extends": [ "microsoft-net-runtime-android-net6" ], - "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] - }, "microsoft-net-runtime-ios-net6": { "abstract": true, "description": "iOS Mono Runtime and AOT Workload", @@ -159,78 +135,6 @@ "any": "Microsoft.NET.Runtime.WebAssembly.Sdk" } }, - "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm": { - "kind": "framework", - "version": "${PackageVersionNet6}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm" - } - }, - "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64": { - "kind": "framework", - "version": "${PackageVersionNet6}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64" - } - }, - "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64": { - "kind": "framework", - "version": "${PackageVersionNet6}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64" - } - }, - "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86": { - "kind": "framework", - "version": "${PackageVersionNet6}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86": { - "kind": "Sdk", - "version": "${PackageVersionNet6}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64": { - "kind": "Sdk", - "version": "${PackageVersionNet6}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm": { - "kind": "Sdk", - "version": "${PackageVersionNet6}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64": { - "kind": "Sdk", - "version": "${PackageVersionNet6}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" - } - }, "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-arm64": { "kind": "framework", "version": "${PackageVersionNet6}", diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in index b4794fb2def53f..490ceaf48c4104 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in @@ -24,30 +24,6 @@ "extends": [ "wasm-tools-net7" ], "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] }, - "microsoft-net-runtime-android-net7": { - "abstract": true, - "description": "Android Mono Runtime", - "packs": [ - "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm", - "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64", - "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64", - "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86" - ], - "extends": [ "microsoft-net-runtime-mono-tooling-net7" ], - "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] - }, - "microsoft-net-runtime-android-aot-net7": { - "abstract": true, - "description": "Android Mono AOT Workload", - "packs": [ - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86", - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64", - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm", - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64" - ], - "extends": [ "microsoft-net-runtime-android-net7" ], - "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] - }, "microsoft-net-runtime-ios-net7": { "abstract": true, "description": "iOS Mono Runtime and AOT Workload", @@ -176,78 +152,6 @@ "any": "Microsoft.NET.Runtime.WebAssembly.Templates" } }, - "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm": { - "kind": "framework", - "version": "${PackageVersionNet7}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm" - } - }, - "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64": { - "kind": "framework", - "version": "${PackageVersionNet7}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64" - } - }, - "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64": { - "kind": "framework", - "version": "${PackageVersionNet7}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64" - } - }, - "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86": { - "kind": "framework", - "version": "${PackageVersionNet7}", - "alias-to": { - "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86": { - "kind": "Sdk", - "version": "${PackageVersionNet7}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64": { - "kind": "Sdk", - "version": "${PackageVersionNet7}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm": { - "kind": "Sdk", - "version": "${PackageVersionNet7}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" - } - }, - "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64": { - "kind": "Sdk", - "version": "${PackageVersionNet7}", - "alias-to": { - "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", - "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", - "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", - "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", - "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" - } - }, "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-arm64": { "kind": "framework", "version": "${PackageVersionNet7}", diff --git a/src/workloads/workloads.csproj b/src/workloads/workloads.csproj index 3e81fe9ebca0d2..0d3d3129400449 100644 --- a/src/workloads/workloads.csproj +++ b/src/workloads/workloads.csproj @@ -49,10 +49,6 @@ Description=".NET WebAssembly experimental tooling"/> <_ComponentResources Include="wasi-experimental" Title=".NET Wasi Experimental" Description=".NET Experimental SDK and tooling for WASI"/> - <_ComponentResources Include="microsoft-net-runtime-android" Title=".NET Android Build Tools" - Description="Build tools for Android compilation and native linking."/> - <_ComponentResources Include="microsoft-net-runtime-android-aot" Title=".NET Android Build Tools (AoT)" - Description="Build tools for Android ahead-of-time (AoT) compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-ios" Title=".NET iOS Build Tools" Description="Build tools for iOS compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-tvos" Title=".NET tvOS Build Tools" @@ -72,10 +68,6 @@ Description="Shared build tasks for mobile platform development."/> <_ComponentResources Include="wasm-tools-net7" Title=".NET 7.0 WebAssembly Build Tools" Description="Build tools for net6.0 WebAssembly ahead-of-time (AoT) compilation and native linking."/> - <_ComponentResources Include="microsoft-net-runtime-android-net7" Title=".NET 7.0 Android Build Tools" - Description="Build tools for net6.0 Android compilation and native linking."/> - <_ComponentResources Include="microsoft-net-runtime-android-aot-net7" Title=".NET 7.0 Android Build Tools (AoT)" - Description="Build tools for net6.0 Android ahead-of-time (AoT) compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-ios-net7" Title=".NET 7.0 iOS Build Tools" Description="Build tools for net7.0 iOS compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-tvos-net7" Title=".NET 7.0 tvOS Build Tools" @@ -95,10 +87,6 @@ Description="Shared build tasks for mobile platform development."/> <_ComponentResources Include="wasm-tools-net6" Title=".NET 6.0 WebAssembly Build Tools" Description="Build tools for net6.0 WebAssembly ahead-of-time (AoT) compilation and native linking."/> - <_ComponentResources Include="microsoft-net-runtime-android-net6" Title=".NET 6.0 Android Build Tools" - Description="Build tools for net6.0 Android compilation and native linking."/> - <_ComponentResources Include="microsoft-net-runtime-android-aot-net6" Title=".NET 6.0 Android Build Tools (AoT)" - Description="Build tools for net6.0 Android ahead-of-time (AoT) compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-ios-net6" Title=".NET 6.0 iOS Build Tools" Description="Build tools for net6.0 iOS compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-tvos-net" Title=".NET 6.0 tvOS Build Tools" From 015e443670192e556d020025da18bc70f5168b52 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Thu, 29 Jun 2023 10:39:35 -0400 Subject: [PATCH 52/55] Don't build cross-compilers with runtime packs in official builds --- 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 03e74f9e9303c3..7a7c649058760b 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -153,7 +153,7 @@ extends: - windows_x86 # - windows_arm64 jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:BuildMonoAOTCrossCompiler=false nameSuffix: AllSubsets_Mono isOfficialBuild: ${{ variables.isOfficialBuild }} extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml From 6a55c425caa1879601271cc34d7dbd4503242a7b Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Thu, 29 Jun 2023 10:43:41 -0400 Subject: [PATCH 53/55] Revert "Disable Android workload builds for now" This reverts commit b9e3ae687e0b90a01ed9c39badbb62fe27495bd1. --- eng/pipelines/runtime-official.yml | 8 ++ .../WorkloadManifest.json.in | 86 ++++++++++++++++- .../WorkloadManifest.json.in | 96 +++++++++++++++++++ .../WorkloadManifest.json.in | 96 +++++++++++++++++++ src/workloads/workloads.csproj | 12 +++ 5 files changed, 297 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 7a7c649058760b..3e3d3431a35a07 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -131,6 +131,10 @@ extends: buildConfig: release runtimeFlavor: mono platforms: + - android_x64 + - android_x86 + - android_arm + - android_arm64 - maccatalyst_x64 - maccatalyst_arm64 - tvossimulator_x64 @@ -503,6 +507,10 @@ extends: isOfficialBuild: ${{ variables.isOfficialBuild }} timeoutInMinutes: 120 dependsOn: + - Build_android_arm_release_AllSubsets_Mono + - Build_android_arm64_release_AllSubsets_Mono + - Build_android_x86_release_AllSubsets_Mono + - Build_android_x64_release_AllSubsets_Mono - Build_browser_wasm_Linux_release_AllSubsets_Mono - Build_wasi_wasm_linux_release_AllSubsets_Mono - Build_ios_arm64_release_AllSubsets_Mono diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in index 49163de5623c95..c3504278703704 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in @@ -38,9 +38,33 @@ "packs": [ "Microsoft.NET.Runtime.LibraryBuilder.Sdk" ], - "extends": [ "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ], + "extends": [ "microsoft-net-runtime-android-aot", "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ], "platforms": [ "osx-x64", "osx-arm64" ] }, + "microsoft-net-runtime-android": { + "abstract": true, + "description": "Android Mono Runtime", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.android-arm", + "Microsoft.NETCore.App.Runtime.Mono.android-arm64", + "Microsoft.NETCore.App.Runtime.Mono.android-x64", + "Microsoft.NETCore.App.Runtime.Mono.android-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-aot": { + "abstract": true, + "description": "Android Mono AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x86", + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm64" + ], + "extends": [ "microsoft-net-runtime-android" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, "microsoft-net-runtime-ios": { "abstract": true, "description": "iOS Mono Runtime and AOT Workload", @@ -160,6 +184,66 @@ "kind": "template", "version": "${PackageVersion}" }, + "Microsoft.NETCore.App.Runtime.Mono.android-arm": { + "kind": "framework", + "version": "${PackageVersion}" + }, + "Microsoft.NETCore.App.Runtime.Mono.android-arm64": { + "kind": "framework", + "version": "${PackageVersion}" + }, + "Microsoft.NETCore.App.Runtime.Mono.android-x64": { + "kind": "framework", + "version": "${PackageVersion}" + }, + "Microsoft.NETCore.App.Runtime.Mono.android-x86": { + "kind": "framework", + "version": "${PackageVersion}" + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x86": { + "kind": "Sdk", + "version": "${PackageVersion}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-x64": { + "kind": "Sdk", + "version": "${PackageVersion}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm": { + "kind": "Sdk", + "version": "${PackageVersion}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.android-arm64": { + "kind": "Sdk", + "version": "${PackageVersion}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" + } + }, "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64": { "kind": "framework", "version": "${PackageVersion}", diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in index eb1257ea02afeb..2b17a34546f8b9 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net6.Manifest/WorkloadManifest.json.in @@ -14,6 +14,30 @@ "extends": [ "microsoft-net-runtime-mono-tooling-net6", "microsoft-net-sdk-emscripten-net6" ], "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] }, + "microsoft-net-runtime-android-net6": { + "abstract": true, + "description": "Android Mono Runtime", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm", + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64", + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net6" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-aot-net6": { + "abstract": true, + "description": "Android Mono AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64" + ], + "extends": [ "microsoft-net-runtime-android-net6" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, "microsoft-net-runtime-ios-net6": { "abstract": true, "description": "iOS Mono Runtime and AOT Workload", @@ -135,6 +159,78 @@ "any": "Microsoft.NET.Runtime.WebAssembly.Sdk" } }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm": { + "kind": "framework", + "version": "${PackageVersionNet6}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64": { + "kind": "framework", + "version": "${PackageVersionNet6}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64": { + "kind": "framework", + "version": "${PackageVersionNet6}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86": { + "kind": "framework", + "version": "${PackageVersionNet6}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86": { + "kind": "Sdk", + "version": "${PackageVersionNet6}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64": { + "kind": "Sdk", + "version": "${PackageVersionNet6}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm": { + "kind": "Sdk", + "version": "${PackageVersionNet6}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64": { + "kind": "Sdk", + "version": "${PackageVersionNet6}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" + } + }, "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-arm64": { "kind": "framework", "version": "${PackageVersionNet6}", diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in index 490ceaf48c4104..b4794fb2def53f 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.net7.Manifest/WorkloadManifest.json.in @@ -24,6 +24,30 @@ "extends": [ "wasm-tools-net7" ], "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] }, + "microsoft-net-runtime-android-net7": { + "abstract": true, + "description": "Android Mono Runtime", + "packs": [ + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm", + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64", + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64", + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86" + ], + "extends": [ "microsoft-net-runtime-mono-tooling-net7" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, + "microsoft-net-runtime-android-aot-net7": { + "abstract": true, + "description": "Android Mono AOT Workload", + "packs": [ + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm", + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64" + ], + "extends": [ "microsoft-net-runtime-android-net7" ], + "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ] + }, "microsoft-net-runtime-ios-net7": { "abstract": true, "description": "iOS Mono Runtime and AOT Workload", @@ -152,6 +176,78 @@ "any": "Microsoft.NET.Runtime.WebAssembly.Templates" } }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm": { + "kind": "framework", + "version": "${PackageVersionNet7}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64": { + "kind": "framework", + "version": "${PackageVersionNet7}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64": { + "kind": "framework", + "version": "${PackageVersionNet7}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86": { + "kind": "framework", + "version": "${PackageVersionNet7}", + "alias-to": { + "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86": { + "kind": "Sdk", + "version": "${PackageVersionNet7}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64": { + "kind": "Sdk", + "version": "${PackageVersionNet7}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm": { + "kind": "Sdk", + "version": "${PackageVersionNet7}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm" + } + }, + "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64": { + "kind": "Sdk", + "version": "${PackageVersionNet7}", + "alias-to": { + "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64", + "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64", + "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64", + "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64" + } + }, "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-arm64": { "kind": "framework", "version": "${PackageVersionNet7}", diff --git a/src/workloads/workloads.csproj b/src/workloads/workloads.csproj index 0d3d3129400449..3e81fe9ebca0d2 100644 --- a/src/workloads/workloads.csproj +++ b/src/workloads/workloads.csproj @@ -49,6 +49,10 @@ Description=".NET WebAssembly experimental tooling"/> <_ComponentResources Include="wasi-experimental" Title=".NET Wasi Experimental" Description=".NET Experimental SDK and tooling for WASI"/> + <_ComponentResources Include="microsoft-net-runtime-android" Title=".NET Android Build Tools" + Description="Build tools for Android compilation and native linking."/> + <_ComponentResources Include="microsoft-net-runtime-android-aot" Title=".NET Android Build Tools (AoT)" + Description="Build tools for Android ahead-of-time (AoT) compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-ios" Title=".NET iOS Build Tools" Description="Build tools for iOS compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-tvos" Title=".NET tvOS Build Tools" @@ -68,6 +72,10 @@ Description="Shared build tasks for mobile platform development."/> <_ComponentResources Include="wasm-tools-net7" Title=".NET 7.0 WebAssembly Build Tools" Description="Build tools for net6.0 WebAssembly ahead-of-time (AoT) compilation and native linking."/> + <_ComponentResources Include="microsoft-net-runtime-android-net7" Title=".NET 7.0 Android Build Tools" + Description="Build tools for net6.0 Android compilation and native linking."/> + <_ComponentResources Include="microsoft-net-runtime-android-aot-net7" Title=".NET 7.0 Android Build Tools (AoT)" + Description="Build tools for net6.0 Android ahead-of-time (AoT) compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-ios-net7" Title=".NET 7.0 iOS Build Tools" Description="Build tools for net7.0 iOS compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-tvos-net7" Title=".NET 7.0 tvOS Build Tools" @@ -87,6 +95,10 @@ Description="Shared build tasks for mobile platform development."/> <_ComponentResources Include="wasm-tools-net6" Title=".NET 6.0 WebAssembly Build Tools" Description="Build tools for net6.0 WebAssembly ahead-of-time (AoT) compilation and native linking."/> + <_ComponentResources Include="microsoft-net-runtime-android-net6" Title=".NET 6.0 Android Build Tools" + Description="Build tools for net6.0 Android compilation and native linking."/> + <_ComponentResources Include="microsoft-net-runtime-android-aot-net6" Title=".NET 6.0 Android Build Tools (AoT)" + Description="Build tools for net6.0 Android ahead-of-time (AoT) compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-ios-net6" Title=".NET 6.0 iOS Build Tools" Description="Build tools for net6.0 iOS compilation and native linking."/> <_ComponentResources Include="microsoft-net-runtime-tvos-net" Title=".NET 6.0 tvOS Build Tools" From e64e5cb4685dbe110c0136958dbbbb1c393a7cc0 Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 30 Jun 2023 16:08:22 -0400 Subject: [PATCH 54/55] Use .NET 8 channel LLVM 16 release --- NuGet.config | 1 - eng/Version.Details.xml | 104 ++++++++++++++++++++-------------------- eng/Versions.props | 52 ++++++++++---------- 3 files changed, 78 insertions(+), 79 deletions(-) diff --git a/NuGet.config b/NuGet.config index d80b718a97e4c6..fb8fca7e266512 100644 --- a/NuGet.config +++ b/NuGet.config @@ -23,7 +23,6 @@ - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b4977049193297..3ca5d77b2961eb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,69 +12,69 @@ https://github.com/dotnet/wcf 7f504aabb1988e9a093c1e74d8040bd52feb2f01 - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc https://github.com/dotnet/command-line-api @@ -238,45 +238,45 @@ https://github.com/dotnet/runtime-assets f8fb817328383c60534d11d57fd884d3b527d6c2 - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc - + https://github.com/dotnet/llvm-project - 23ed86eb60dfa49e4239e1c680df5a563788b651 + bd3acea90cae502d9a62164b863708d57d7993bc https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index b8b7b84c730ac7..95ca08ca62d1c9 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -105,14 +105,14 @@ 6.0.0 8.0.0-preview.7.23325.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 6.0.0 1.1.1 @@ -217,16 +217,16 @@ 2.1.7 8.0.0-alpha.1.23180.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 - 16.0.5-alpha.1.23326.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 + 16.0.5-alpha.1.23330.2 3.1.7 1.0.406601 From 85f927399bd41d6b67bb9c65217a675b35ee1daf Mon Sep 17 00:00:00 2001 From: Jo Shields Date: Fri, 30 Jun 2023 17:19:00 -0400 Subject: [PATCH 55/55] Shrink the min Dwarf warning limit. Looks like someone made LLVM too good, and broke the build --- src/tests/nativeaot/SmokeTests/DwarfDump/Program.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/nativeaot/SmokeTests/DwarfDump/Program.cs b/src/tests/nativeaot/SmokeTests/DwarfDump/Program.cs index fa57cd5cda297f..c6ef4640ba85d6 100644 --- a/src/tests/nativeaot/SmokeTests/DwarfDump/Program.cs +++ b/src/tests/nativeaot/SmokeTests/DwarfDump/Program.cs @@ -51,10 +51,10 @@ public static int Main(string[] args) // Just count the number of warnings and errors. There are so many right now that it's not worth enumerating the list #if DEBUG - const int MinWarnings = 12000; + const int MinWarnings = 11000; const int MaxWarnings = 22000; #else - const int MinWarnings = 12000; + const int MinWarnings = 11000; const int MaxWarnings = 13000; #endif int count = 0;