Skip to content
84 changes: 42 additions & 42 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -88,87 +88,87 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.GenAPI" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.GenAPI" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.GenFacades" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.GenFacades" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitAssert" Version="2.9.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.XUnitAssert" Version="2.9.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitConsoleRunner" Version="2.9.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.XUnitConsoleRunner" Version="2.9.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Archives" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Archives" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Packaging" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Packaging" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Workloads" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Workloads" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.TargetFramework" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.TargetFramework" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.VersionTools.Tasks" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.VersionTools.Tasks" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.SharedFramework.Sdk" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.SharedFramework.Sdk" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="System.ComponentModel.TypeConverter.TestData" Version="9.0.0-beta.24379.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
Expand Down Expand Up @@ -328,9 +328,9 @@
<Uri>https://github.com/dotnet/xharness</Uri>
<Sha>65d0584b517952962b7a79195b5d7606b52fcbfe</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.PackageTesting" Version="9.0.0-beta.24379.1">
<Dependency Name="Microsoft.DotNet.PackageTesting" Version="9.0.0-beta.24408.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>4f5a4ad88d27b56ceeaa43ced670999c33bd2598</Sha>
<Sha>610e251fc34686333b98188320ca1eecd7e6af6c</Sha>
</Dependency>
<Dependency Name="optimization.windows_nt-x64.MIBC.Runtime" Version="1.0.0-prerelease.24376.4">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
Expand Down
32 changes: 16 additions & 16 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -83,22 +83,22 @@
<!-- SDK dependencies (also used in wasm build tests -->
<MicrosoftDotNetApiCompatTaskVersion>9.0.100-rc.1.24378.3</MicrosoftDotNetApiCompatTaskVersion>
<!-- Arcade dependencies -->
<MicrosoftDotNetBuildTasksFeedVersion>9.0.0-beta.24379.1</MicrosoftDotNetBuildTasksFeedVersion>
<MicrosoftDotNetCodeAnalysisVersion>9.0.0-beta.24379.1</MicrosoftDotNetCodeAnalysisVersion>
<MicrosoftDotNetGenAPIVersion>9.0.0-beta.24379.1</MicrosoftDotNetGenAPIVersion>
<MicrosoftDotNetGenFacadesVersion>9.0.0-beta.24379.1</MicrosoftDotNetGenFacadesVersion>
<MicrosoftDotNetXUnitAssertVersion>2.9.0-beta.24379.1</MicrosoftDotNetXUnitAssertVersion>
<MicrosoftDotNetXUnitExtensionsVersion>9.0.0-beta.24379.1</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftDotNetXUnitConsoleRunnerVersion>2.9.0-beta.24379.1</MicrosoftDotNetXUnitConsoleRunnerVersion>
<MicrosoftDotNetBuildTasksArchivesVersion>9.0.0-beta.24379.1</MicrosoftDotNetBuildTasksArchivesVersion>
<MicrosoftDotNetBuildTasksInstallersVersion>9.0.0-beta.24379.1</MicrosoftDotNetBuildTasksInstallersVersion>
<MicrosoftDotNetBuildTasksPackagingVersion>9.0.0-beta.24379.1</MicrosoftDotNetBuildTasksPackagingVersion>
<MicrosoftDotNetBuildTasksTargetFrameworkVersion>9.0.0-beta.24379.1</MicrosoftDotNetBuildTasksTargetFrameworkVersion>
<MicrosoftDotNetBuildTasksTemplatingVersion>9.0.0-beta.24379.1</MicrosoftDotNetBuildTasksTemplatingVersion>
<MicrosoftDotNetBuildTasksWorkloadsPackageVersion>9.0.0-beta.24379.1</MicrosoftDotNetBuildTasksWorkloadsPackageVersion>
<MicrosoftDotNetRemoteExecutorVersion>9.0.0-beta.24379.1</MicrosoftDotNetRemoteExecutorVersion>
<MicrosoftDotNetVersionToolsTasksVersion>9.0.0-beta.24379.1</MicrosoftDotNetVersionToolsTasksVersion>
<MicrosoftDotNetPackageTestingVersion>9.0.0-beta.24379.1</MicrosoftDotNetPackageTestingVersion>
<MicrosoftDotNetBuildTasksFeedVersion>9.0.0-beta.24408.1</MicrosoftDotNetBuildTasksFeedVersion>
<MicrosoftDotNetCodeAnalysisVersion>9.0.0-beta.24408.1</MicrosoftDotNetCodeAnalysisVersion>
<MicrosoftDotNetGenAPIVersion>9.0.0-beta.24408.1</MicrosoftDotNetGenAPIVersion>
<MicrosoftDotNetGenFacadesVersion>9.0.0-beta.24408.1</MicrosoftDotNetGenFacadesVersion>
<MicrosoftDotNetXUnitAssertVersion>2.9.0-beta.24408.1</MicrosoftDotNetXUnitAssertVersion>
<MicrosoftDotNetXUnitExtensionsVersion>9.0.0-beta.24408.1</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftDotNetXUnitConsoleRunnerVersion>2.9.0-beta.24408.1</MicrosoftDotNetXUnitConsoleRunnerVersion>
<MicrosoftDotNetBuildTasksArchivesVersion>9.0.0-beta.24408.1</MicrosoftDotNetBuildTasksArchivesVersion>
<MicrosoftDotNetBuildTasksInstallersVersion>9.0.0-beta.24408.1</MicrosoftDotNetBuildTasksInstallersVersion>
<MicrosoftDotNetBuildTasksPackagingVersion>9.0.0-beta.24408.1</MicrosoftDotNetBuildTasksPackagingVersion>
<MicrosoftDotNetBuildTasksTargetFrameworkVersion>9.0.0-beta.24408.1</MicrosoftDotNetBuildTasksTargetFrameworkVersion>
<MicrosoftDotNetBuildTasksTemplatingVersion>9.0.0-beta.24408.1</MicrosoftDotNetBuildTasksTemplatingVersion>
<MicrosoftDotNetBuildTasksWorkloadsPackageVersion>9.0.0-beta.24408.1</MicrosoftDotNetBuildTasksWorkloadsPackageVersion>
<MicrosoftDotNetRemoteExecutorVersion>9.0.0-beta.24408.1</MicrosoftDotNetRemoteExecutorVersion>
<MicrosoftDotNetVersionToolsTasksVersion>9.0.0-beta.24408.1</MicrosoftDotNetVersionToolsTasksVersion>
<MicrosoftDotNetPackageTestingVersion>9.0.0-beta.24408.1</MicrosoftDotNetPackageTestingVersion>
<!-- TODO: Remove pinned xunit.analyzers version: https://github.com/dotnet/runtime/issues/97088 -->
<XUnitAnalyzersVersion>1.4.0</XUnitAnalyzersVersion>
<!-- NuGet dependencies -->
Expand Down
56 changes: 20 additions & 36 deletions eng/common/native/init-compiler.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ case "$compiler" in
# clangx.y or clang-x.y
version="$(echo "$compiler" | tr -d '[:alpha:]-=')"
majorVersion="${version%%.*}"
[ -z "${version##*.*}" ] && minorVersion="${version#*.}"

if [ -z "$minorVersion" ] && [ -n "$majorVersion" ] && [ "$majorVersion" -le 6 ]; then
minorVersion=0;
fi
# LLVM based on v18 released in early 2024, with two releases per year
maxVersion="$((18 + ((($(date +%Y) - 2024) * 12 + $(date +%-m) - 3) / 6)))"
compiler=clang
;;

gcc*|-gcc*|--gcc*)
# gccx.y or gcc-x.y
version="$(echo "$compiler" | tr -d '[:alpha:]-=')"
majorVersion="${version%%.*}"
[ -z "${version##*.*}" ] && minorVersion="${version#*.}"

# GCC based on v14 released in early 2024, with one release per year
maxVersion="$((14 + ((($(date +%Y) - 2024) * 12 + $(date +%-m) - 3) / 12)))"
compiler=gcc
;;
esac
Expand All @@ -49,12 +49,10 @@ check_version_exists() {
desired_version=-1

# Set up the environment to be used for building with the desired compiler.
if command -v "$compiler-$1.$2" > /dev/null; then
desired_version="-$1.$2"
elif command -v "$compiler$1$2" > /dev/null; then
desired_version="$1$2"
elif command -v "$compiler-$1$2" > /dev/null; then
desired_version="-$1$2"
if command -v "$compiler-$1" > /dev/null; then
desired_version="-$1"
elif command -v "$compiler$1" > /dev/null; then
desired_version="$1"
fi

echo "$desired_version"
Expand All @@ -75,7 +73,7 @@ set_compiler_version_from_CC() {
fi

# gcc and clang often display 3 part versions. However, gcc can show only 1 part in some environments.
IFS=. read -r majorVersion minorVersion _ <<EOF
IFS=. read -r majorVersion _ <<EOF
$version
EOF
}
Expand All @@ -84,43 +82,29 @@ if [ -z "$CLR_CC" ]; then

# Set default versions
if [ -z "$majorVersion" ]; then
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
if [ "$compiler" = "clang" ]; then versions="18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5"
elif [ "$compiler" = "gcc" ]; then versions="14 13 12 11 10 9 8 7 6 5 4.9"; fi

for version in $versions; do
_major="${version%%.*}"
[ -z "${version##*.*}" ] && _minor="${version#*.}"
desired_version="$(check_version_exists "$_major" "$_minor")"
if [ "$desired_version" != "-1" ]; then majorVersion="$_major"; break; fi
minVersion=8
maxVersion="$((maxVersion + 1))" # +1 for headspace
i="$maxVersion"
while [ "$i" -ge $minVersion ]; do
desired_version="$(check_version_exists "$i")"
if [ "$desired_version" != "-1" ]; then majorVersion="$i"; break; fi
i=$((i - 1))
done

if [ -z "$majorVersion" ]; then
if ! command -v "$compiler" > /dev/null; then
echo "Error: No usable version of $compiler found."
echo "Error: No compatible version of $compiler was found within the range of $minVersion to $maxVersion. Please upgrade your toolchain or specify the compiler explicitly using CLR_CC and CLR_CXX environment variables."
exit 1
fi

CC="$(command -v "$compiler" 2> /dev/null)"
CXX="$(command -v "$cxxCompiler" 2> /dev/null)"
set_compiler_version_from_CC
else
if [ "$compiler" = "clang" ] && [ "$majorVersion" -lt 5 ] && { [ "$build_arch" = "arm" ] || [ "$build_arch" = "armel" ]; }; then
# If a major version was provided explicitly, and it was too old, find a newer compiler instead
if ! command -v "$compiler" > /dev/null; then
echo "Error: Found clang version $majorVersion which is not supported on arm/armel architectures, and there is no clang in PATH."
exit 1
fi

CC="$(command -v "$compiler" 2> /dev/null)"
CXX="$(command -v "$cxxCompiler" 2> /dev/null)"
set_compiler_version_from_CC
fi
fi
else
desired_version="$(check_version_exists "$majorVersion" "$minorVersion")"
desired_version="$(check_version_exists "$majorVersion")"
if [ "$desired_version" = "-1" ]; then
echo "Error: Could not find specific version of $compiler: $majorVersion $minorVersion."
echo "Error: Could not find specific version of $compiler: $majorVersion."
exit 1
fi
fi
Expand Down
6 changes: 3 additions & 3 deletions global.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
"dotnet": "9.0.100-preview.6.24328.19"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24379.1",
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24379.1",
"Microsoft.DotNet.SharedFramework.Sdk": "9.0.0-beta.24379.1",
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24408.1",
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24408.1",
"Microsoft.DotNet.SharedFramework.Sdk": "9.0.0-beta.24408.1",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.Build.Traversal": "3.4.0",
"Microsoft.NET.Sdk.IL": "9.0.0-rc.1.24378.5"
Expand Down