Skip to content

Commit 801ed4d

Browse files
authored
Merge branch 'main' into darc-main-21bb1e3f-96a4-44a7-a57b-17abf8806860
2 parents 345faee + c5d66ed commit 801ed4d

File tree

32 files changed

+967
-478
lines changed

32 files changed

+967
-478
lines changed

eng/Version.Details.xml

Lines changed: 224 additions & 224 deletions
Large diffs are not rendered by default.

eng/Versions.props

Lines changed: 90 additions & 90 deletions
Large diffs are not rendered by default.

eng/common/core-templates/job/source-index-stage1.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@ jobs:
3434
pool:
3535
${{ if eq(variables['System.TeamProject'], 'public') }}:
3636
name: $(DncEngPublicBuildPool)
37-
image: windows.vs2022.amd64.open
37+
image: 1es-windows-2022-open
38+
os: windows
3839
${{ if eq(variables['System.TeamProject'], 'internal') }}:
3940
name: $(DncEngInternalBuildPool)
40-
image: windows.vs2022.amd64
41+
image: 1es-windows-2022
42+
os: windows
4143

4244
steps:
4345
- ${{ if eq(parameters.is1ESPipeline, '') }}:

eng/common/cross/build-rootfs.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -605,34 +605,34 @@ elif [[ "$__CodeName" == "illumos" ]]; then
605605
fi
606606
echo "Building binutils. Please wait.."
607607
if [[ "$__hasWget" == 1 ]]; then
608-
wget -O- https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.bz2 | tar -xjf -
608+
wget -O- https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz | tar -xJf -
609609
else
610-
curl -SL https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.bz2 | tar -xjf -
610+
curl -SL https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz | tar -xJf -
611611
fi
612612
mkdir build-binutils && cd build-binutils
613-
../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir"
613+
../binutils-2.42/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.11" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir"
614614
make -j "$JOBS" && make install && cd ..
615615
echo "Building gcc. Please wait.."
616616
if [[ "$__hasWget" == 1 ]]; then
617-
wget -O- https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz | tar -xJf -
617+
wget -O- https://ftp.gnu.org/gnu/gcc/gcc-13.3.0/gcc-13.3.0.tar.xz | tar -xJf -
618618
else
619-
curl -SL https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz | tar -xJf -
619+
curl -SL https://ftp.gnu.org/gnu/gcc/gcc-13.3.0/gcc-13.3.0.tar.xz | tar -xJf -
620620
fi
621621
CFLAGS="-fPIC"
622622
CXXFLAGS="-fPIC"
623623
CXXFLAGS_FOR_TARGET="-fPIC"
624624
CFLAGS_FOR_TARGET="-fPIC"
625625
export CFLAGS CXXFLAGS CXXFLAGS_FOR_TARGET CFLAGS_FOR_TARGET
626626
mkdir build-gcc && cd build-gcc
627-
../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.10" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
627+
../gcc-13.3.0/configure --prefix="$__RootfsDir" --target="${__illumosArch}-sun-solaris2.11" --program-prefix="${__illumosArch}-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
628628
--with-gnu-ld --disable-nls --disable-libgomp --disable-libquadmath --disable-libssp --disable-libvtv --disable-libcilkrts --disable-libada --disable-libsanitizer \
629629
--disable-libquadmath-support --disable-shared --enable-tls
630630
make -j "$JOBS" && make install && cd ..
631631
BaseUrl=https://pkgsrc.smartos.org
632632
if [[ "$__UseMirror" == 1 ]]; then
633633
BaseUrl=https://pkgsrc.smartos.skylime.net
634634
fi
635-
BaseUrl="$BaseUrl/packages/SmartOS/trunk/${__illumosArch}/All"
635+
BaseUrl="$BaseUrl/packages/SmartOS/2019Q4/${__illumosArch}/All"
636636
echo "Downloading manifest"
637637
if [[ "$__hasWget" == 1 ]]; then
638638
wget "$BaseUrl"

eng/common/native/init-compiler.sh

Lines changed: 20 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ case "$compiler" in
1919
# clangx.y or clang-x.y
2020
version="$(echo "$compiler" | tr -d '[:alpha:]-=')"
2121
majorVersion="${version%%.*}"
22-
[ -z "${version##*.*}" ] && minorVersion="${version#*.}"
2322

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

3028
gcc*|-gcc*|--gcc*)
3129
# gccx.y or gcc-x.y
3230
version="$(echo "$compiler" | tr -d '[:alpha:]-=')"
3331
majorVersion="${version%%.*}"
34-
[ -z "${version##*.*}" ] && minorVersion="${version#*.}"
32+
33+
# GCC based on v14 released in early 2024, with one release per year
34+
maxVersion="$((14 + ((($(date +%Y) - 2024) * 12 + $(date +%m) - 3) / 12)))"
3535
compiler=gcc
3636
;;
3737
esac
@@ -49,12 +49,10 @@ check_version_exists() {
4949
desired_version=-1
5050

5151
# Set up the environment to be used for building with the desired compiler.
52-
if command -v "$compiler-$1.$2" > /dev/null; then
53-
desired_version="-$1.$2"
54-
elif command -v "$compiler$1$2" > /dev/null; then
55-
desired_version="$1$2"
56-
elif command -v "$compiler-$1$2" > /dev/null; then
57-
desired_version="-$1$2"
52+
if command -v "$compiler-$1" > /dev/null; then
53+
desired_version="-$1"
54+
elif command -v "$compiler$1" > /dev/null; then
55+
desired_version="$1"
5856
fi
5957

6058
echo "$desired_version"
@@ -75,7 +73,7 @@ set_compiler_version_from_CC() {
7573
fi
7674

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

8583
# Set default versions
8684
if [ -z "$majorVersion" ]; then
87-
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
88-
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"
89-
elif [ "$compiler" = "gcc" ]; then versions="14 13 12 11 10 9 8 7 6 5 4.9"; fi
90-
91-
for version in $versions; do
92-
_major="${version%%.*}"
93-
[ -z "${version##*.*}" ] && _minor="${version#*.}"
94-
desired_version="$(check_version_exists "$_major" "$_minor")"
95-
if [ "$desired_version" != "-1" ]; then majorVersion="$_major"; break; fi
85+
minVersion=8
86+
maxVersion="$((maxVersion + 1))" # +1 for headspace
87+
i="$maxVersion"
88+
while [ "$i" -ge $minVersion ]; do
89+
desired_version="$(check_version_exists "$i")"
90+
if [ "$desired_version" != "-1" ]; then majorVersion="$i"; break; fi
91+
i=$((i - 1))
9692
done
9793

9894
if [ -z "$majorVersion" ]; then
9995
if ! command -v "$compiler" > /dev/null; then
100-
echo "Error: No usable version of $compiler found."
96+
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."
10197
exit 1
10298
fi
10399

104100
CC="$(command -v "$compiler" 2> /dev/null)"
105101
CXX="$(command -v "$cxxCompiler" 2> /dev/null)"
106102
set_compiler_version_from_CC
107-
else
108-
if [ "$compiler" = "clang" ] && [ "$majorVersion" -lt 5 ] && { [ "$build_arch" = "arm" ] || [ "$build_arch" = "armel" ]; }; then
109-
# If a major version was provided explicitly, and it was too old, find a newer compiler instead
110-
if ! command -v "$compiler" > /dev/null; then
111-
echo "Error: Found clang version $majorVersion which is not supported on arm/armel architectures, and there is no clang in PATH."
112-
exit 1
113-
fi
114-
115-
CC="$(command -v "$compiler" 2> /dev/null)"
116-
CXX="$(command -v "$cxxCompiler" 2> /dev/null)"
117-
set_compiler_version_from_CC
118-
fi
119103
fi
120104
else
121-
desired_version="$(check_version_exists "$majorVersion" "$minorVersion")"
105+
desired_version="$(check_version_exists "$majorVersion")"
122106
if [ "$desired_version" = "-1" ]; then
123-
echo "Error: Could not find specific version of $compiler: $majorVersion $minorVersion."
107+
echo "Error: Could not find specific version of $compiler: $majorVersion."
124108
exit 1
125109
fi
126110
fi

global.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
"cmake": "latest"
1818
},
1919
"msbuild-sdks": {
20-
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24368.9",
21-
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24368.9",
20+
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24375.3",
21+
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24375.3",
2222
"Microsoft.Build.NoTargets": "3.7.0",
2323
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1"
2424
}

src/Installer/redist-installer/targets/GenerateBundledVersions.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1277,7 +1277,7 @@ Copyright (c) .NET Foundation. All rights reserved.
12771277
<MinimumMSBuildVersion>$(MinimumMSBuildVersion)</MinimumMSBuildVersion>
12781278
<BundledMSBuildVersion>$(BundledMSBuildVersion)</BundledMSBuildVersion>
12791279
<_MSBuildVersionMajorMinor>%24([System.Version]::Parse('%24(MSBuildVersion)').ToString(2))</_MSBuildVersionMajorMinor>
1280-
<_IsDisjointMSBuildVersion>%24([MSBuild]::VersionNotEquals('%24(_MSBuildVersionMajorMinor)', '$(_BundledMSBuildVersionMajorMinor)'))</_IsDisjointMSBuildVersion>
1280+
<_IsDisjointMSBuildVersion>%24([MSBuild]::VersionLessThan('%24(_MSBuildVersionMajorMinor)', '$(_BundledMSBuildVersionMajorMinor)'))</_IsDisjointMSBuildVersion>
12811281
</PropertyGroup>
12821282
</Project>
12831283
]]>

src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.cs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -181,31 +181,28 @@ bool TryGetWorkloadSet(string workloadSetVersion, out WorkloadSet? workloadSet)
181181
}
182182
}
183183

184+
_installStateFilePath = Path.Combine(WorkloadInstallType.GetInstallStateFolder(_sdkVersionBand, _sdkOrUserLocalPath), "default.json");
185+
var installState = InstallStateContents.FromPath(_installStateFilePath);
184186
if (workloadSet is null)
185187
{
186-
var installStateFilePath = Path.Combine(WorkloadInstallType.GetInstallStateFolder(_sdkVersionBand, _sdkOrUserLocalPath), "default.json");
187-
if (File.Exists(installStateFilePath))
188+
if (!string.IsNullOrEmpty(installState.WorkloadVersion))
188189
{
189-
var installState = InstallStateContents.FromPath(installStateFilePath);
190-
if (!string.IsNullOrEmpty(installState.WorkloadVersion))
190+
if (!TryGetWorkloadSet(installState.WorkloadVersion!, out workloadSet))
191191
{
192-
if (!TryGetWorkloadSet(installState.WorkloadVersion!, out workloadSet))
193-
{
194-
throw new FileNotFoundException(string.Format(Strings.WorkloadVersionFromInstallStateNotFound, installState.WorkloadVersion, installStateFilePath));
195-
}
192+
throw new FileNotFoundException(string.Format(Strings.WorkloadVersionFromInstallStateNotFound, installState.WorkloadVersion, _installStateFilePath));
196193
}
197-
198-
// Note: It is possible here to have both a workload set and loose manifests listed in the install state. This might happen if there is a
199-
// third-party workload manifest installed that's not part of the workload set
200-
_manifestsFromInstallState = installState.Manifests is null ? null : WorkloadSet.FromDictionaryForJson(installState.Manifests!, _sdkVersionBand);
201-
_installStateFilePath = installStateFilePath;
202194
}
195+
196+
// Note: It is possible here to have both a workload set and loose manifests listed in the install state. This might happen if there is a
197+
// third-party workload manifest installed that's not part of the workload set
198+
_manifestsFromInstallState = installState.Manifests is null ? null : WorkloadSet.FromDictionaryForJson(installState.Manifests!, _sdkVersionBand);
203199
}
204200

205-
if (workloadSet == null && availableWorkloadSets.Any())
201+
if (workloadSet == null && installState.UseWorkloadSets == true && availableWorkloadSets.Any())
206202
{
207203
var maxWorkloadSetVersion = availableWorkloadSets.Keys.Aggregate((s1, s2) => VersionCompare(s1, s2) >= 0 ? s1 : s2);
208204
workloadSet = availableWorkloadSets[maxWorkloadSetVersion.ToString()];
205+
_useManifestsFromInstallState = false;
209206
}
210207

211208
_workloadSet = workloadSet;

src/SourceBuild/content/eng/allowed-sb-binaries.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ src/aspnetcore/src/**/Samples/**/*.woff*
3838
src/aspnetcore/src/Components/benchmarkapps/BlazingPizza.Server/wwwroot/css/font/quicksand-v8-latin-*.woff*
3939
src/aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js # JavaScript files with a null bytes
4040
src/aspnetcore/src/ProjectTemplates/Web.ProjectTemplates/**/app.db
41-
src/aspnetcore/src/submodules/Node-Externals/cache/**/* # https://github.com/dotnet/source-build/issues/4161
4241

4342
# fsharp
4443
src/fsharp/src/fsi/fsi.res # Icon

src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/WriteSbrpUsageReport.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private void GenerateUsageReport()
6262
{
6363
PackageInfo[] existingSbrps = [.. _sbrpPackages.Values.OrderBy(pkg => pkg.Id)];
6464
PurgeNonReferencedReferences();
65-
IEnumerable<string> unreferencedSbrps = GetUnreferencedSbrps().Select(pkg => pkg.Id).OrderBy(id => id);
65+
IEnumerable<string> unreferencedSbrps = GetUnreferencedSbrps().Select(pkg => pkg.Path).OrderBy(id => id);
6666
Report report = new(existingSbrps, unreferencedSbrps);
6767

6868
string reportFilePath = Path.Combine(OutputPath, "sbrpPackageUsage.json");
@@ -151,7 +151,7 @@ private void ScanProjectReferences()
151151
LockFile lockFile = new LockFileFormat().Read(projectJsonFile);
152152
foreach (LockFileTargetLibrary lib in lockFile.Targets.SelectMany(t => t.Libraries))
153153
{
154-
if (!_sbrpPackages.TryGetValue($"{lib.Name}/{lib.Version}", out PackageInfo? info))
154+
if (!_sbrpPackages.TryGetValue(PackageInfo.GetId(lib.Name, lib.Version?.ToString()), out PackageInfo? info))
155155
{
156156
continue;
157157
}
@@ -175,10 +175,12 @@ private void ScanProjectReferences()
175175

176176
private record PackageInfo(string Name, string Version, string Path, HashSet<string>? Tfms = default)
177177
{
178-
public string Id => $"{Name}/{Version}";
178+
public string Id => GetId(Name, Version);
179179

180180
// Dictionary of projects referencing the SBRP and the TFMs referenced by each project
181181
public Dictionary<string, HashSet<string>> References { get; } = [];
182+
183+
public static string GetId(string? Name, string? Version) => $"{Name?.ToLowerInvariant()}/{Version}";
182184
}
183185

184186
private record Report(IEnumerable<PackageInfo> Sbrps, IEnumerable<string> UnreferencedSbrps);

0 commit comments

Comments
 (0)