Skip to content

Commit 7a40438

Browse files
committed
Merge remote-tracking branch 'origin/main' into dev/rolf/inline-dlfcn
2 parents d4762a7 + 5dc7df4 commit 7a40438

93 files changed

Lines changed: 1647 additions & 282 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/linux-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
name: Linux Build Verification
33
on:
44
pull_request:
5+
workflow_dispatch:
56

67
permissions:
78
contents: read

Make.config

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,15 @@ DOTNET_DIR=$(abspath $(TOP)/builds/downloads/$(DOTNET_INSTALL_NAME))
403403
export DOTNET_ROOT=$(DOTNET_DIR)
404404
# dotnet now is being looked up in the PATH
405405
export PATH := $(DOTNET_DIR):$(PATH)
406+
407+
# Disable build servers to prevent parallel make from hanging.
408+
# Build servers (MSBuild server, Roslyn/VBCSCompiler) inherit jobserver file
409+
# descriptors from make, and don't close them when daemonizing. This prevents
410+
# make from detecting that all jobs have finished, causing it to hang
411+
# indefinitely at the end of the build.
412+
export DOTNET_CLI_USE_MSBUILD_SERVER=0
413+
export UseSharedCompilation=false
414+
export MSBUILDDISABLENODEREUSE=1
406415
DOTNET=$(DOTNET_DIR)/dotnet
407416
DOTNET_BCL_DIR:=$(abspath $(TOP)/packages/microsoft.netcore.app.ref/$(DOTNET_BCL_VERSION)/ref/$(DOTNET_TFM))
408417
# when bumping to a new .NET version, there may be a period when some parts of .NET is still on the old .NET version, so handle that here for DOTNET_BCL_DIR

Makefile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ world: check-system
3232
@$(MAKE) reset-versions
3333
@$(MAKE) all -j8
3434
@$(MAKE) install -j8
35+
@echo "Build is done, the following workloads were built:"
36+
@$(DOTNET) workload list
3537

3638
.PHONY: check-system
3739
check-system:
@@ -68,9 +70,6 @@ install-hook::
6870
exit 1; \
6971
fi
7072

71-
all-hook install-hook::
72-
$(Q) $(MAKE) -C dotnet shutdown-build-server
73-
7473
dotnet-install-system:
7574
$(Q) $(MAKE) -C dotnet install-system
7675

dotnet/Makefile

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -536,23 +536,3 @@ clean-local::
536536
$(Q) $(DOTNET) restore package/workaround-for-maccore-issue-2427/restore.csproj /bl:package/workaround-for-maccore-issue-2427/restore.binlog $(MSBUILD_VERBOSITY)
537537
$(Q) touch $@
538538

539-
# We need to shut down the builder server, because:
540-
# We're using parallel make, and parallel make will start a jobserver, managed by file descriptors, where these file descriptors must be closed in all subprocesses for make to realize it's done.
541-
# 'dotnet pack' might have started a build server
542-
# The build server does not close any file descriptors it may have inherited when daemonizing itself.
543-
# Thus the build server (which will still be alive after we're done building here) might have a file descriptor open which make is waiting for.
544-
# The proper fix is to fix the build server to close its file descriptors.
545-
# The intermediate working is to shut down the build server instead. An alternative solution would be to pass /p:UseSharedCompilation=false to 'dotnet pack' to disable the usage of the build server.
546-
#
547-
# The 'shutdown-build-server' is executed in a sub-make (and not as a dependency to the all-hook target),
548-
# to make sure it's executed after everything else is built in this file.
549-
all-hook::
550-
$(Q) $(MAKE) shutdown-build-server
551-
552-
shutdown-build-server:
553-
$(Q) echo "Shutting down build servers:"
554-
$(Q) $(DOTNET) build-server shutdown | sed 's/^/ /' || true
555-
$(Q) echo "Listing .NET processes still alive:"
556-
$(Q) pgrep -lf "^$(DOTNET)" | sed 's/^/ /' || true
557-
$(Q) echo "Killing the above mentioned processes."
558-
$(Q) pkill -9 -f "^$(DOTNET)" | sed 's/^/ /' || true

dotnet/targets/Microsoft.Sdk.Desktop.targets

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,38 @@
33
<Target
44
Name="_PrepareRunDesktop"
55
BeforeTargets="ComputeRunArguments"
6+
DependsOnTargets="_ValidateHotReloadConfiguration"
67
Condition="'$(_PlatformName)' == 'macOS' Or '$(_PlatformName)' == 'MacCatalyst'">
78

9+
<!--
10+
If we're running under 'dotnet watch', change a few defaults to:
11+
* Open in a new instance: enabled
12+
* Wait for exit: enabled
13+
* stdout/stderr: send to the current terminal
14+
-->
15+
<ItemGroup>
16+
<_DotNetWatchVariable Include="@(RuntimeEnvironmentVariable)" Condition="'%(Identity)' == 'DOTNET_WATCH' And '%(Value)' == '1'" />
17+
</ItemGroup>
18+
<PropertyGroup Condition="'$(RunWithOpen)' != 'false' And '@(_DotNetWatchVariable->Count())' == '1'">
19+
<_IsDotNetWatch>true</_IsDotNetWatch>
20+
<OpenNewInstance Condition="'$(OpenNewInstance)' == ''">true</OpenNewInstance>
21+
<OpenWaitForExit Condition="'$(OpenWaitForExit)' == ''">true</OpenWaitForExit>
22+
</PropertyGroup>
23+
<Exec
24+
Command="tty"
25+
Condition="'$(StandardOutputPath)' == '' Or '$(StandardErrorPath)' == ''"
26+
ConsoleToMSBuild="true"
27+
IgnoreStandardErrorWarningFormat="true"
28+
IgnoreExitCode="true"
29+
>
30+
<Output TaskParameter="ConsoleOutput" ItemName="_TtyOutput" />
31+
</Exec>
32+
<PropertyGroup Condition="'$(_IsDotNetWatch)' == 'true'">
33+
<_TtyPath>@(_TtyOutput)</_TtyPath>
34+
<StandardOutputPath Condition="'$(StandardOutputPath)' == '' And Exists('$(_TtyPath)')">$(_TtyPath)</StandardOutputPath>
35+
<StandardErrorPath Condition="'$(StandardErrorPath)' == '' And Exists('$(_TtyPath)')">$(_TtyPath)</StandardErrorPath>
36+
</PropertyGroup>
37+
838
<PropertyGroup Condition="'$(RunWithOpen)' != 'false'">
939
<_OpenArguments Condition="'$(XamarinDebugMode)' != ''">$(_OpenArguments) --env __XAMARIN_DEBUG_MODE__=$(XamarinDebugMode)</_OpenArguments>
1040
<_OpenArguments Condition="'$(XamarinDebugPort)' != ''">$(_OpenArguments) --env __XAMARIN_DEBUG_PORT__=$(XamarinDebugPort)</_OpenArguments>

dotnet/targets/Microsoft.Sdk.Mobile.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
<Target
139139
Name="_PrepareRunMobile"
140140
BeforeTargets="ComputeRunArguments"
141-
DependsOnTargets="_InstallMobile;ComputeMlaunchRunArguments"
141+
DependsOnTargets="_ValidateHotReloadConfiguration;_InstallMobile;ComputeMlaunchRunArguments"
142142
Condition="'$(_PlatformName)' != 'macOS' And '$(_PlatformName)' != 'MacCatalyst'">
143143
</Target>
144144

dotnet/targets/Xamarin.Shared.Sdk.targets

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@
7474
<ProjectCapability Include="Apple" />
7575
<ProjectCapability Include="Mobile" />
7676
<ProjectCapability Include="RuntimeEnvironmentVariableSupport" />
77+
<!-- We have to use a network connection (web sockets) to connect hot reload / dotnet watch when running on device, so enable that. Since this also works locally (simulator/desktop), just enable it always -->
78+
<ProjectCapability Include="HotReloadWebSockets" />
7779

7880
<ProjectCapability Include="IOSApplication" Condition="'$(_ProjectType)' == 'iOSExecutableProject'" />
7981
<ProjectCapability Include="IOSAppExtension" Condition="'$(_ProjectType)' == 'iOSAppExtensionProject'" />
@@ -471,7 +473,7 @@
471473
</ItemGroup>
472474
</Target>
473475

474-
<Target Name="_ComputeMonoLibraries" Condition="'$(UseMonoRuntime)' == 'true'" DependsOnTargets="_ComputeMonoComponents;_MonoSelectRuntimeComponents">
476+
<Target Name="_ComputeMonoLibraries" Condition="'$(UseMonoRuntime)' == 'true' And '$(RuntimeIdentifiers)' == ''" DependsOnTargets="_ComputeMonoComponents;_MonoSelectRuntimeComponents">
475477
<!-- We only include any mono components when linking with mono statically. The components are already included in the dynamic versions of Mono (both the dylib and the framework) -->
476478
<ItemGroup Condition="'$(_LibMonoLinkMode)' == 'static'">
477479
<!-- Remove files mono told us not to link with -->
@@ -2672,8 +2674,38 @@ global using nfloat = global::System.Runtime.InteropServices.NFloat%3B
26722674
</ItemGroup>
26732675
</Target>
26742676

2677+
<!--
2678+
Validate that the build configuration will work for Hot Reload.
2679+
This target is executed when doing 'dotnet run'
2680+
-->
2681+
<Target Name="_ValidateHotReloadConfiguration">
2682+
<ItemGroup>
2683+
<_HotReloadVariable Include="@(RuntimeEnvironmentVariable)" Condition="'%(Identity)' == 'DOTNET_WATCH' And '%(Value)' == '1'" />
2684+
</ItemGroup>
2685+
<PropertyGroup Condition="@(_HotReloadVariable->Count()) &gt; 0">
2686+
<_IsHotReloadLaunch>true</_IsHotReloadLaunch>
2687+
</PropertyGroup>
2688+
2689+
<Error
2690+
Condition="'$(_IsHotReloadLaunch)' == 'true' And '$(UseMonoRuntime)' == 'true' And '$(MtouchInterpreter)' == ''"
2691+
Text="Can't use Hot Reload or 'dotnet watch' unless the interpreter is enabled. Set 'UseInterpreter=true' in the project file to use the interpreter."
2692+
/>
2693+
<Error
2694+
Condition="'$(_IsHotReloadLaunch)' == 'true' And '$(_AreAnyAssembliesTrimmed)' == 'true'"
2695+
Text="Can't use Hot Reload or 'dotnet watch' if any assemblies are trimmed. Set 'MtouchLink=None' in the project file to disable trimming."
2696+
/>
2697+
</Target>
2698+
26752699
<!-- Import existing targets -->
26762700

2701+
<!-- Make sure post-processing only includes dynamic frameworks that will actually be in the app bundle. Ref: https://github.com/dotnet/macios/issues/24840 -->
2702+
<PropertyGroup>
2703+
<_CollectItemsForPostProcessingDependsOn>
2704+
_ComputeFrameworkFilesToPublish;
2705+
$(_CollectItemsForPostProcessingDependsOn);
2706+
</_CollectItemsForPostProcessingDependsOn>
2707+
</PropertyGroup>
2708+
26772709
<PropertyGroup>
26782710
<_ProjectLanguage>$(Language)</_ProjectLanguage>
26792711
<_ProjectLanguage Condition="'$(_ProjectLanguage)' == '' Or '$(_ProjectLanguage)' == 'C#' ">CSharp</_ProjectLanguage>

eng/Version.Details.props

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ This file should be imported by eng/Versions.props
66
<Project>
77
<PropertyGroup>
88
<!-- dotnet-dotnet dependencies -->
9-
<MicrosoftDotNetArcadeSdkPackageVersion>10.0.0-beta.26160.113</MicrosoftDotNetArcadeSdkPackageVersion>
10-
<MicrosoftDotNetBuildTasksFeedPackageVersion>10.0.0-beta.26160.113</MicrosoftDotNetBuildTasksFeedPackageVersion>
9+
<MicrosoftDotNetArcadeSdkPackageVersion>10.0.0-beta.26167.111</MicrosoftDotNetArcadeSdkPackageVersion>
10+
<MicrosoftDotNetBuildTasksFeedPackageVersion>10.0.0-beta.26167.111</MicrosoftDotNetBuildTasksFeedPackageVersion>
1111
<MicrosoftDotNetCecilPackageVersion>0.11.5-alpha.26070.104</MicrosoftDotNetCecilPackageVersion>
12-
<MicrosoftDotNetSharedFrameworkSdkPackageVersion>10.0.0-beta.26160.113</MicrosoftDotNetSharedFrameworkSdkPackageVersion>
12+
<MicrosoftDotNetSharedFrameworkSdkPackageVersion>10.0.0-beta.26167.111</MicrosoftDotNetSharedFrameworkSdkPackageVersion>
1313
<MicrosoftNETILLinkPackageVersion>10.0.3-servicing.26070.104</MicrosoftNETILLinkPackageVersion>
1414
<MicrosoftNETILLinkTasksPackageVersion>10.0.3</MicrosoftNETILLinkTasksPackageVersion>
1515
<MicrosoftNETRuntimeMonoTargetsSdkPackageVersion>10.0.3</MicrosoftNETRuntimeMonoTargetsSdkPackageVersion>
16-
<MicrosoftNETSdkPackageVersion>10.0.300-preview.26160.113</MicrosoftNETSdkPackageVersion>
16+
<MicrosoftNETSdkPackageVersion>10.0.300-preview.0.26167.111</MicrosoftNETSdkPackageVersion>
1717
<MicrosoftNETCoreAppRefPackageVersion>10.0.3</MicrosoftNETCoreAppRefPackageVersion>
18-
<MicrosoftTemplateEngineAuthoringTasksPackageVersion>10.0.300-preview.26160.113</MicrosoftTemplateEngineAuthoringTasksPackageVersion>
18+
<MicrosoftTemplateEngineAuthoringTasksPackageVersion>10.0.300-preview.26167.111</MicrosoftTemplateEngineAuthoringTasksPackageVersion>
1919
<!-- dotnet-macios dependencies -->
2020
<MicrosoftiOSSdknet100_260PackageVersion>26.0.11017</MicrosoftiOSSdknet100_260PackageVersion>
2121
<MicrosoftiOSSdknet90_185PackageVersion>18.5.9227</MicrosoftiOSSdknet90_185PackageVersion>
@@ -30,7 +30,7 @@ This file should be imported by eng/Versions.props
3030
<MicrosofttvOSSdknet90_185PackageVersion>18.5.9227</MicrosofttvOSSdknet90_185PackageVersion>
3131
<MicrosofttvOSSdknet90_262PackageVersion>26.2.9002</MicrosofttvOSSdknet90_262PackageVersion>
3232
<!-- dotnet-xharness dependencies -->
33-
<MicrosoftDotNetXHarnessiOSSharedPackageVersion>11.0.0-prerelease.26160.2</MicrosoftDotNetXHarnessiOSSharedPackageVersion>
33+
<MicrosoftDotNetXHarnessiOSSharedPackageVersion>11.0.0-prerelease.26166.1</MicrosoftDotNetXHarnessiOSSharedPackageVersion>
3434
<!-- xamarin-xamarin-macios dependencies -->
3535
<MicrosoftiOSSdknet90_180PackageVersion>18.0.9617</MicrosoftiOSSdknet90_180PackageVersion>
3636
<MicrosoftMacCatalystSdknet90_180PackageVersion>18.0.9617</MicrosoftMacCatalystSdknet90_180PackageVersion>

eng/Version.Details.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<Dependencies>
22
<ProductDependencies>
3-
<Dependency Name="Microsoft.NET.Sdk" Version="10.0.300-preview.26160.113">
3+
<Dependency Name="Microsoft.NET.Sdk" Version="10.0.300-preview.0.26167.111">
44
<Uri>https://github.com/dotnet/dotnet</Uri>
5-
<Sha>37ac471dd9cf9b9b784497fa71dcce9045eb1a78</Sha>
5+
<Sha>853c0311d71c9991dbf3ec6e7324c0ff349700da</Sha>
66
</Dependency>
77
<Dependency Name="Microsoft.NET.ILLink" Version="10.0.3-servicing.26070.104">
88
<Uri>https://github.com/dotnet/dotnet</Uri>
@@ -95,25 +95,25 @@
9595
</Dependency>
9696
</ProductDependencies>
9797
<ToolsetDependencies>
98-
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="10.0.0-beta.26160.113">
98+
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="10.0.0-beta.26167.111">
9999
<Uri>https://github.com/dotnet/dotnet</Uri>
100-
<Sha>37ac471dd9cf9b9b784497fa71dcce9045eb1a78</Sha>
100+
<Sha>853c0311d71c9991dbf3ec6e7324c0ff349700da</Sha>
101101
</Dependency>
102-
<Dependency Name="Microsoft.DotNet.SharedFramework.Sdk" Version="10.0.0-beta.26160.113">
102+
<Dependency Name="Microsoft.DotNet.SharedFramework.Sdk" Version="10.0.0-beta.26167.111">
103103
<Uri>https://github.com/dotnet/dotnet</Uri>
104-
<Sha>37ac471dd9cf9b9b784497fa71dcce9045eb1a78</Sha>
104+
<Sha>853c0311d71c9991dbf3ec6e7324c0ff349700da</Sha>
105105
</Dependency>
106-
<Dependency Name="Microsoft.TemplateEngine.Authoring.Tasks" Version="10.0.300-preview.26160.113">
106+
<Dependency Name="Microsoft.TemplateEngine.Authoring.Tasks" Version="10.0.300-preview.26167.111">
107107
<Uri>https://github.com/dotnet/dotnet</Uri>
108-
<Sha>37ac471dd9cf9b9b784497fa71dcce9045eb1a78</Sha>
108+
<Sha>853c0311d71c9991dbf3ec6e7324c0ff349700da</Sha>
109109
</Dependency>
110-
<Dependency Name="Microsoft.DotNet.XHarness.iOS.Shared" Version="11.0.0-prerelease.26160.2">
110+
<Dependency Name="Microsoft.DotNet.XHarness.iOS.Shared" Version="11.0.0-prerelease.26166.1">
111111
<Uri>https://github.com/dotnet/xharness</Uri>
112-
<Sha>c32a7777a0f8f7a4fc8d9920d445f5f4b5658d38</Sha>
112+
<Sha>581c6a9cd9ad947ab638bd1c81557e5eb9f0b89d</Sha>
113113
</Dependency>
114-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.26160.113">
114+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.26167.111">
115115
<Uri>https://github.com/dotnet/dotnet</Uri>
116-
<Sha>37ac471dd9cf9b9b784497fa71dcce9045eb1a78</Sha>
116+
<Sha>853c0311d71c9991dbf3ec6e7324c0ff349700da</Sha>
117117
<SourceBuild RepoName="arcade" ManagedOnly="true" />
118118
</Dependency>
119119
</ToolsetDependencies>

global.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{
22
"sdk": {
3-
"version": "10.0.300-preview.26160.113",
3+
"version": "10.0.300-preview.0.26167.111",
44
"paths": [
55
"builds/downloads/dotnet",
66
"$host$"
77
],
88
"errorMessage": "The .NET SDK could not be found, please run 'make dotnet -C builds'."
99
},
1010
"tools": {
11-
"dotnet": "10.0.300-preview.26160.113"
11+
"dotnet": "10.0.300-preview.0.26167.111"
1212
},
1313
"msbuild-sdks": {
14-
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26160.113"
14+
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26167.111"
1515
}
1616
}

0 commit comments

Comments
 (0)