Skip to content

Commit 839e74b

Browse files
committed
Merge branch 'main' into darc-main-c0fa493e-0f71-482f-9bfb-b414e75226e6
2 parents 30833a0 + 1c54b48 commit 839e74b

File tree

663 files changed

+18402
-7389
lines changed

Some content is hidden

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

663 files changed

+18402
-7389
lines changed

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
]
1616
},
1717
"microsoft.dotnet.xharness.cli": {
18-
"version": "10.0.0-prerelease.24524.9",
18+
"version": "10.0.0-prerelease.24564.1",
1919
"commands": [
2020
"xharness"
2121
]

.devcontainer/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
99
&& apt-get -y install --no-install-recommends \
1010
clang \
1111
cmake \
12+
cpio \
1213
build-essential \
1314
python3 \
1415
curl \

.devcontainer/android/Dockerfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ FROM mcr.microsoft.com/devcontainers/dotnet:${VARIANT}
44
# Set up machine requirements to build the repo
55
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
66
&& apt-get -y install --no-install-recommends \
7-
cmake \
8-
llvm \
97
clang \
8+
cmake \
9+
cpio \
1010
build-essential \
1111
python3 \
1212
curl \
1313
git \
1414
lldb \
15+
llvm \
1516
liblldb-dev \
1617
libunwind8 \
1718
libunwind8-dev \
@@ -22,6 +23,8 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
2223
libkrb5-dev \
2324
zlib1g-dev \
2425
ninja-build \
26+
zlib1g-dev \
27+
ninja-build \
2528
openjdk-17-jdk \
2629
pulseaudio
2730

.devcontainer/wasm-multiThreaded/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
99
&& apt-get -y install --no-install-recommends \
1010
clang \
1111
cmake \
12+
cpio \
1213
build-essential \
1314
python3 \
1415
curl \

.devcontainer/wasm/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
88
&& apt-get -y install --no-install-recommends \
99
clang \
1010
cmake \
11+
cpio \
1112
build-essential \
1213
python3 \
1314
curl \

Directory.Build.props

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,17 @@
192192
<WasmCommonTargetsPath>$([MSBuild]::NormalizeDirectory($(WasmProjectRoot), 'build'))</WasmCommonTargetsPath>
193193
</PropertyGroup>
194194

195+
<PropertyGroup Condition="'$(DotNetBuildRuntimeNativeAOTRuntimePack)' == 'true'">
196+
<BuildNativeAOTRuntimePack>true</BuildNativeAOTRuntimePack>
197+
<SkipLibrariesNativeRuntimePackages>true</SkipLibrariesNativeRuntimePackages>
198+
</PropertyGroup>
199+
200+
<PropertyGroup Condition="'$(DotNetBuildMonoCrossAOT)' == 'true'">
201+
<BuildMonoAOTCrossCompilerOnly>true</BuildMonoAOTCrossCompilerOnly>
202+
<MonoCrossAOTTargetOS>android+browser+wasi</MonoCrossAOTTargetOS>
203+
<MonoCrossAOTTargetOS Condition="'$(TargetOS)' == 'osx'">$(MonoCrossAOTTargetOS)+tvos+ios+maccatalyst</MonoCrossAOTTargetOS>
204+
</PropertyGroup>
205+
195206
<PropertyGroup Label="CalculatePortableBuild">
196207
<PortableBuild Condition="'$(PortableBuild)' == '' and '$(DotNetBuildSourceOnly)' == 'true'">false</PortableBuild>
197208
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>

Directory.Build.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
unconditionally in Microsoft.NETCoreSdk.BundledVersions.props.
4242
-->
4343
<NETCoreAppMaximumVersion>$(NetCoreAppCurrentVersion)</NETCoreAppMaximumVersion>
44+
<UnsupportedTargetFrameworkVersion>$([MSBuild]::Add('$(NETCoreAppMaximumVersion.Split('.')[0])', '1')).0</UnsupportedTargetFrameworkVersion>
4445
<!-- SDK sets product to assembly but we want it to be our product name -->
4546
<Product>Microsoft%AE .NET</Product>
4647
<!-- Use the .NET product branding version for informational version description -->

docs/design/coreclr/botr/guide-for-porting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ Here is an annotated list of the stubs implemented for Unix on Arm64.
398398
methods). These work in tandem with the logic in virtualcallstubcpu.h to
399399
implement the logic described in [Virtual Stub Dispatch](virtual-stub-dispatch.md)
400400

401-
14. `ProfileEnter`/ `ProfileeLeave`/ `ProfileTailcall` – Used to call function
401+
14. `ProfileEnter`/ `ProfileLeave`/ `ProfileTailcall` – Used to call function
402402
entry/exit profile functions acquired through the ICorProfiler
403403
interface. Used in VERY rare circumstances. It is reasonable to wait to
404404
implement these until the final stages of productization. Most profilers

docs/design/coreclr/botr/threading.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ Hijacking for GC suspension is done by Thread::SysSuspendForGC. This method atte
104104
3. Check again if the thread is in cooperative mode, as it may have already left cooperative mode before it could be suspended. If so, the thread is in dangerous territory: the thread may be executing arbitrary native code, and must be resumed immediately to avoid deadlocks.
105105
4. Check if the thread is running managed code. It is possible that it is executing native VM code in cooperative mode (see Synchronization, below), in which case the thread must be immediately resumed as in the previous step.
106106
5. Now the thread is suspended in managed code. Depending on whether that code is fully- or partially-interruptible, one of the following is performed:
107-
* If fully interruptible, it is safe to perform a GC at any point, since the thread is, by definition, at a safe point. It is reasonable to leave the thread suspended at this point (because it's safe) but various historical OS bugs prevent this from working, because the CONTEXT retrieved earlier may be corrupt). Instead, the thread's instruction pointer is overwritten, redirecting it to a stub that will capture a more complete CONTEXT, leave cooperative mode, wait for the GC to complete, reenter cooperative mode, and restore the thread to its previous state.
107+
* If fully interruptible, it is safe to perform a GC at any point, since the thread is, by definition, at a safe point. It is reasonable to leave the thread suspended at this point (because it's safe) but various historical OS bugs prevent this from working, because the CONTEXT retrieved earlier may be corrupt. Instead, the thread's instruction pointer is overwritten, redirecting it to a stub that will capture a more complete CONTEXT, leave cooperative mode, wait for the GC to complete, reenter cooperative mode, and restore the thread to its previous state.
108108
* If partially-interruptible, the thread is, by definition, not at a safe point. However, the caller will be at a safe point (method transition). Using that knowledge, the CLR "hijacks" the top-most stack frame's return address (physically overwrite that location on the stack) with a stub similar to the one used for fully-interruptible code. When the method returns, it will no longer return to its actual caller, but rather to the stub (the method may also perform a GC poll, inserted by the JIT, before that point, which will cause it to leave cooperative mode and undo the hijack).
109109

110110
ThreadAbort / AppDomain-Unload

0 commit comments

Comments
 (0)