Skip to content

Commit fb323df

Browse files
authored
Merge pull request #104929 from carlossanlop/release/8.0-staging
[manual] Merge release/8.0-staging into release/8.0
2 parents d869bd0 + b7d4ee8 commit fb323df

File tree

115 files changed

+926
-12735
lines changed

Some content is hidden

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

115 files changed

+926
-12735
lines changed

NuGet.config

+2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
<clear />
1010
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
1111
<!-- Begin: Package sources from dotnet-emsdk -->
12+
<add key="darc-pub-dotnet-emsdk-be13dab" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-be13dabf/nuget/v3/index.json" />
1213
<add key="darc-pub-dotnet-emsdk-e92f92e" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-e92f92ef/nuget/v3/index.json" />
14+
<add key="darc-pub-dotnet-emsdk-abd5b69" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-abd5b69d/nuget/v3/index.json" />
1315
<!-- End: Package sources from dotnet-emsdk -->
1416
<!-- Begin: Package sources from dotnet-sdk -->
1517
<!-- End: Package sources from dotnet-sdk -->

docs/design/features/dotnet-pgo.md

+3-11
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
# dotnet-pgo Spec
22
Utilize trace data for improving application performance
33

4-
NOTE: This documentation page contains information on some features that are still work-in-progress.
5-
64
## Intro
75

86
The dotnet-pgo tool is a cross-platform CLI global tool that enables conversion of traces of .NET Core applications collected via dotnet-trace, ETW, perfview, perfcollect, LTTNG to be used to improve the performance of an application or library.
97

108
## Installing dotnet-pgo
119

12-
The first step is to install the dotnet-pgo CLI global tool.
13-
14-
```cmd
15-
$ dotnet tool install --global dotnet-pgo
16-
You can invoke the tool using the following command: dotnet-pgo
17-
Tool 'dotnet-pgo' (version '6.0.47001') was successfully installed.
18-
```
10+
The only way to use dotnet-pgo is to build it in the runtime repo. To learn how to build the runtime, consult the [how to build](https://github.com/dotnet/runtime/tree/main/docs/workflow/building/coreclr) docs for Windows, macOS, or Linux.
1911

2012
## Using dotnet-pgo to optimize an application
2113

@@ -37,14 +29,14 @@ set DOTNET_TC_QuickJitForLoops=1
3729
set DOTNET_TC_CallCountThreshold=10000
3830
set DOTNET_ReadyToRun=0
3931
40-
dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:0x1E000080018:4 -- bin\Release\net6.0\pgotest.exe
32+
dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:0x1E000080018:4 -- bin\Release\net{version-number-goes-here}.0\pgotest.exe
4133
4234
set DOTNET_TieredPGO=
4335
set DOTNET_TC_QuickJitForLoops=
4436
set DOTNET_TC_CallCountThreshold=
4537
set DOTNET_ReadyToRun=
4638
47-
dotnet-pgo create-mibc --trace trace.nettrace --output trace.mibc
39+
${YOUR-REPO-ROOT}\artifacts\bin\coreclr\{OS}.{ARCHITECTURE}.{CONFIGURATION}\dotnet-pgo create-mibc --trace trace.nettrace --output trace.mibc
4840
4941
dotnet publish --runtime win-x64 -p:PublishReadyToRun=true -p:ReadyToRunOptimizationData=trace.mibc
5042
```

eng/Version.Details.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -354,9 +354,9 @@
354354
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
355355
<Sha>67613417f5e1af250e6ddfba79f8f2885d8e90fb</Sha>
356356
</Dependency>
357-
<Dependency Name="Microsoft.DotNet.HotReload.Utils.Generator.BuildTool" Version="8.0.0-alpha.0.24271.1">
357+
<Dependency Name="Microsoft.DotNet.HotReload.Utils.Generator.BuildTool" Version="8.0.0-alpha.0.24365.1">
358358
<Uri>https://github.com/dotnet/hotreload-utils</Uri>
359-
<Sha>c804541158619aae93105f54698ca7f149d28232</Sha>
359+
<Sha>9fd9805b21b21e16d1c81f0ffabd6ee81fe3e8a2</Sha>
360360
</Dependency>
361361
<Dependency Name="System.Runtime.Numerics.TestData" Version="8.0.0-beta.24270.1">
362362
<Uri>https://github.com/dotnet/runtime-assets</Uri>

eng/Versions.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@
188188
<MicrosoftDotNetXHarnessTestRunnersCommonVersion>8.0.0-prerelease.24229.2</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
189189
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>8.0.0-prerelease.24229.2</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
190190
<MicrosoftDotNetXHarnessCLIVersion>8.0.0-prerelease.24229.2</MicrosoftDotNetXHarnessCLIVersion>
191-
<MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>8.0.0-alpha.0.24271.1</MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>
191+
<MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>8.0.0-alpha.0.24365.1</MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>
192192
<XUnitVersion>2.4.2</XUnitVersion>
193193
<XUnitAnalyzersVersion>1.0.0</XUnitAnalyzersVersion>
194194
<XUnitRunnerVisualStudioVersion>2.4.5</XUnitRunnerVisualStudioVersion>

eng/docker/libraries-sdk.linux.Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ FROM $SDK_BASE_IMAGE as target
1414

1515
ARG VERSION=8.0
1616
ARG CONFIGURATION=Release
17-
ENV _DOTNET_INSTALL_CHANNEL="$VERSION.1xx"
17+
ENV _DOTNET_INSTALL_CHANNEL=$VERSION
1818

1919
# Install latest daily SDK:
2020
RUN wget https://dot.net/v1/dotnet-install.sh
@@ -52,4 +52,4 @@ COPY --from=corefxbuild \
5252
ENV _ASPNETCORE_SOURCE="/usr/share/dotnet/shared/Microsoft.AspNetCore.App/$VERSION*"
5353
ENV _ASPNETCORE_DEST="/live-runtime-artifacts/testhost/net$VERSION-linux-$CONFIGURATION-x64/shared/Microsoft.AspNetCore.App"
5454
RUN mkdir -p $_ASPNETCORE_DEST
55-
RUN cp -r $_ASPNETCORE_SOURCE $_ASPNETCORE_DEST
55+
RUN cp -r $_ASPNETCORE_SOURCE $_ASPNETCORE_DEST

eng/docker/libraries-sdk.windows.Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ FROM $SDK_BASE_IMAGE as target
66
SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
77

88
ARG VERSION=8.0
9-
ENV _DOTNET_INSTALL_CHANNEL="$VERSION.1xx"
9+
ENV _DOTNET_INSTALL_CHANNEL=$VERSION
1010
ARG CONFIGURATION=Release
1111

1212
USER ContainerAdministrator
@@ -22,4 +22,4 @@ COPY . /live-runtime-artifacts
2222
ENV _ASPNETCORE_SOURCE="C:/Program Files/dotnet/shared/Microsoft.AspNetCore.App/$VERSION*"
2323
ENV _ASPNETCORE_DEST="C:/live-runtime-artifacts/testhost/net$VERSION-windows-$CONFIGURATION-x64/shared/Microsoft.AspNetCore.App"
2424
RUN & New-Item -ItemType Directory -Path $env:_ASPNETCORE_DEST
25-
RUN Copy-Item -Recurse -Path $env:_ASPNETCORE_SOURCE -Destination $env:_ASPNETCORE_DEST
25+
RUN Copy-Item -Recurse -Path $env:_ASPNETCORE_SOURCE -Destination $env:_ASPNETCORE_DEST

eng/pipelines/common/macos-sign-with-entitlements.yml

+7-2
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,15 @@ steps:
2828
includeRootFolder: true
2929
replaceExistingArchive: true
3030

31-
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
31+
- task: EsrpCodeSigning@5
3232
displayName: 'ESRP CodeSigning'
3333
inputs:
34-
ConnectedServiceName: 'ESRP CodeSigning'
34+
ConnectedServiceName: 'DotNet-Engineering-Services_KeyVault'
35+
AppRegistrationClientId: '28ec6507-2167-4eaa-a294-34408cf5dd0e'
36+
AppRegistrationTenantId: '72f988bf-86f1-41af-91ab-2d7cd011db47'
37+
AuthAKVName: 'EngKeyVault'
38+
AuthCertName: 'DotNetCore-ESRP-AuthCert'
39+
AuthSignCertName: 'DotNetCore-ESRP-AuthSignCert'
3540
FolderPath: '$(Build.ArtifactStagingDirectory)/'
3641
Pattern: 'mac_entitled_to_sign.zip'
3742
UseMinimatch: true

src/coreclr/System.Private.CoreLib/CompatibilitySuppressions.xml

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids -->
23
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4+
<Suppression>
5+
<DiagnosticId>CP0002</DiagnosticId>
6+
<Target>M:System.Reflection.Assembly.SetEntryAssembly(System.Reflection.Assembly)</Target>
7+
<Left>ref/net8.0/System.Private.CoreLib.dll</Left>
8+
<Right>lib/net8.0/System.Private.CoreLib.dll</Right>
9+
</Suppression>
310
<Suppression>
411
<DiagnosticId>CP0015</DiagnosticId>
512
<Target>M:System.Diagnostics.Tracing.EventSource.Write``1(System.String,``0):[T:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute]</Target>

src/coreclr/jit/block.h

+6
Original file line numberDiff line numberDiff line change
@@ -1883,6 +1883,12 @@ class AllSuccessorEnumerator
18831883
return m_block;
18841884
}
18851885

1886+
// True if NextSuccessor will return the first successor or null
1887+
bool AtStart() const
1888+
{
1889+
return m_curSucc == UINT_MAX;
1890+
}
1891+
18861892
// Returns the next available successor or `nullptr` if there are no more successors.
18871893
BasicBlock* NextSuccessor(Compiler* comp)
18881894
{

src/coreclr/jit/compiler.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6334,7 +6334,7 @@ class Compiler
63346334
PhaseStatus optCloneLoops();
63356335
void optCloneLoop(unsigned loopInd, LoopCloneContext* context);
63366336
PhaseStatus optUnrollLoops(); // Unrolls loops (needs to have cost info)
6337-
void optRemoveRedundantZeroInits();
6337+
void optRemoveRedundantZeroInits(bool hasCycle);
63386338
PhaseStatus optIfConversion(); // If conversion
63396339

63406340
protected:

src/coreclr/jit/optimizer.cpp

+38-12
Original file line numberDiff line numberDiff line change
@@ -9007,6 +9007,9 @@ typedef JitHashTable<unsigned, JitSmallPrimitiveKeyFuncs<unsigned>, unsigned> Lc
90079007
//------------------------------------------------------------------------------------------
90089008
// optRemoveRedundantZeroInits: Remove redundant zero initializations.
90099009
//
9010+
// Arguments:
9011+
// hasCycle -- true if SSA's topological sort detected a cycle in the flowgraph
9012+
//
90109013
// Notes:
90119014
// This phase iterates over basic blocks starting with the first basic block until there is no unique
90129015
// basic block successor or until it detects a loop. It keeps track of local nodes it encounters.
@@ -9024,8 +9027,10 @@ typedef JitHashTable<unsigned, JitSmallPrimitiveKeyFuncs<unsigned>, unsigned> Lc
90249027
// either the local has no gc pointers or there are no gc-safe points between the prolog and the assignment,
90259028
// then the local is marked with lvHasExplicitInit which tells the codegen not to insert zero initialization
90269029
// for this local in the prolog.
9027-
9028-
void Compiler::optRemoveRedundantZeroInits()
9030+
//
9031+
// It depends on pre/post order numbers set by TopologicalSort.
9032+
//
9033+
void Compiler::optRemoveRedundantZeroInits(bool hasCycle)
90299034
{
90309035
#ifdef DEBUG
90319036
if (verbose)
@@ -9043,10 +9048,37 @@ void Compiler::optRemoveRedundantZeroInits()
90439048

90449049
assert(fgNodeThreading == NodeThreading::AllTrees);
90459050

9046-
for (BasicBlock* block = fgFirstBB; (block != nullptr) && ((block->bbFlags & BBF_MARKED) == 0);
9047-
block = block->GetUniqueSucc())
9051+
for (BasicBlock* block = fgFirstBB; (block != nullptr); block = block->GetUniqueSucc())
90489052
{
9049-
block->bbFlags |= BBF_MARKED;
9053+
if (hasCycle)
9054+
{
9055+
// See if this block is a cycle entry
9056+
//
9057+
bool stop = false;
9058+
for (FlowEdge* predEdge = BlockPredsWithEH(block); predEdge != nullptr;
9059+
predEdge = predEdge->getNextPredEdge())
9060+
{
9061+
BasicBlock* const predBlock = predEdge->getSourceBlock();
9062+
9063+
if ((block->bbPreorderNum <= predBlock->bbPreorderNum) &&
9064+
(predBlock->bbPostorderNum <= block->bbPostorderNum))
9065+
{
9066+
JITDUMP(FMT_BB " is part of a cycle, stopping the block scan\n", block->bbNum);
9067+
stop = true;
9068+
break;
9069+
}
9070+
}
9071+
9072+
// If so, stop looking for redundant zero inits
9073+
//
9074+
if (stop)
9075+
{
9076+
break;
9077+
}
9078+
}
9079+
9080+
JITDUMP("Analyzing " FMT_BB "\n", block->bbNum);
9081+
90509082
CompAllocator allocator(getAllocator(CMK_ZeroInit));
90519083
LclVarRefCounts defsInBlock(allocator);
90529084
bool removedTrackedDefs = false;
@@ -9167,7 +9199,7 @@ void Compiler::optRemoveRedundantZeroInits()
91679199

91689200
if (tree->Data()->IsIntegralConst(0))
91699201
{
9170-
bool bbInALoop = (block->bbFlags & BBF_BACKWARD_JUMP) != 0;
9202+
bool bbInALoop = false;
91719203
bool bbIsReturn = block->bbJumpKind == BBJ_RETURN;
91729204

91739205
if (!bbInALoop || bbIsReturn)
@@ -9244,12 +9276,6 @@ void Compiler::optRemoveRedundantZeroInits()
92449276
}
92459277
}
92469278
}
9247-
9248-
for (BasicBlock* block = fgFirstBB; (block != nullptr) && ((block->bbFlags & BBF_MARKED) != 0);
9249-
block = block->GetUniqueSucc())
9250-
{
9251-
block->bbFlags &= ~BBF_MARKED;
9252-
}
92539279
}
92549280

92559281
//------------------------------------------------------------------------

src/coreclr/jit/ssabuilder.cpp

+20-3
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ SsaBuilder::SsaBuilder(Compiler* pCompiler)
131131
, m_allocator(pCompiler->getAllocator(CMK_SSA))
132132
, m_visitedTraits(0, pCompiler) // at this point we do not know the size, SetupBBRoot can add a block
133133
, m_renameStack(m_allocator, pCompiler->lvaCount)
134+
, m_hasCycle(false)
134135
{
135136
}
136137

@@ -179,6 +180,7 @@ int SsaBuilder::TopologicalSort(BasicBlock** postOrder, int count)
179180
};
180181

181182
// Compute order.
183+
int preIndex = 0;
182184
int postIndex = 0;
183185
BasicBlock* block = comp->fgFirstBB;
184186
BitVecOps::AddElemD(&m_visitedTraits, m_visited, block->bbNum);
@@ -189,11 +191,26 @@ int SsaBuilder::TopologicalSort(BasicBlock** postOrder, int count)
189191

190192
while (!blocks.Empty())
191193
{
192-
BasicBlock* block = blocks.TopRef().Block();
193-
BasicBlock* succ = blocks.TopRef().NextSuccessor(comp);
194+
AllSuccessorEnumerator& e = blocks.TopRef();
195+
BasicBlock* block = e.Block();
196+
197+
if (e.AtStart())
198+
{
199+
DBG_SSA_JITDUMP("[SsaBuilder::TopologicalSort] preOrder[%d] = " FMT_BB "\n", preIndex, block->bbNum);
200+
block->bbPreorderNum = preIndex;
201+
block->bbPostorderNum = UINT_MAX;
202+
preIndex++;
203+
}
204+
205+
BasicBlock* succ = e.NextSuccessor(comp);
194206

195207
if (succ != nullptr)
196208
{
209+
if ((succ->bbPreorderNum <= block->bbPreorderNum) && (succ->bbPostorderNum == UINT_MAX))
210+
{
211+
m_hasCycle = true;
212+
}
213+
197214
// if the block on TOS still has unreached successors, visit them
198215
if (BitVecOps::TryAddElemD(&m_visitedTraits, m_visited, succ->bbNum))
199216
{
@@ -1541,7 +1558,7 @@ void SsaBuilder::Build()
15411558
m_pCompiler->fgLocalVarLiveness();
15421559
EndPhase(PHASE_BUILD_SSA_LIVENESS);
15431560

1544-
m_pCompiler->optRemoveRedundantZeroInits();
1561+
m_pCompiler->optRemoveRedundantZeroInits(m_hasCycle);
15451562
EndPhase(PHASE_ZERO_INITS);
15461563

15471564
// Mark all variables that will be tracked by SSA

src/coreclr/jit/ssabuilder.h

+2
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,6 @@ class SsaBuilder
101101
BitVec m_visited;
102102

103103
SsaRenameState m_renameStack;
104+
105+
bool m_hasCycle;
104106
};

src/coreclr/nativeaot/System.Private.CoreLib/src/CompatibilitySuppressions.xml

+7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids -->
23
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
34
<Suppression>
45
<DiagnosticId>CP0001</DiagnosticId>
@@ -960,6 +961,12 @@
960961
<DiagnosticId>CP0002</DiagnosticId>
961962
<Target>M:System.TypedReference.get_IsNull</Target>
962963
</Suppression>
964+
<Suppression>
965+
<DiagnosticId>CP0002</DiagnosticId>
966+
<Target>M:System.Reflection.Assembly.SetEntryAssembly(System.Reflection.Assembly)</Target>
967+
<Left>ref/net8.0/System.Private.CoreLib.dll</Left>
968+
<Right>lib/net8.0/System.Private.CoreLib.dll</Right>
969+
</Suppression>
963970
<Suppression>
964971
<DiagnosticId>CP0014</DiagnosticId>
965972
<Target>M:System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(System.Object)-&gt;object?:[T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute]</Target>

src/coreclr/pal/src/exception/machexception.cpp

+15-6
Original file line numberDiff line numberDiff line change
@@ -681,8 +681,8 @@ HijackFaultingThread(
681681
BuildExceptionRecord(exceptionInfo, &exceptionRecord);
682682

683683
#if defined(HOST_AMD64)
684-
threadContext.ContextFlags = CONTEXT_FLOATING_POINT;
685-
CONTEXT_GetThreadContextFromThreadState(x86_FLOAT_STATE, (thread_state_t)&exceptionInfo.FloatState, &threadContext);
684+
threadContext.ContextFlags = CONTEXT_FLOATING_POINT | CONTEXT_XSTATE;
685+
CONTEXT_GetThreadContextFromThreadState(x86_AVX512_STATE, (thread_state_t)&exceptionInfo.FloatState, &threadContext);
686686

687687
threadContext.ContextFlags |= CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS;
688688
CONTEXT_GetThreadContextFromThreadState(x86_THREAD_STATE, (thread_state_t)&exceptionInfo.ThreadState, &threadContext);
@@ -1265,10 +1265,19 @@ MachExceptionInfo::MachExceptionInfo(mach_port_t thread, MachMessage& message)
12651265
machret = thread_get_state(thread, x86_THREAD_STATE, (thread_state_t)&ThreadState, &count);
12661266
CHECK_MACH("thread_get_state", machret);
12671267

1268-
count = x86_FLOAT_STATE_COUNT;
1269-
machret = thread_get_state(thread, x86_FLOAT_STATE, (thread_state_t)&FloatState, &count);
1270-
CHECK_MACH("thread_get_state(float)", machret);
1271-
1268+
count = x86_AVX512_STATE_COUNT;
1269+
machret = thread_get_state(thread, x86_AVX512_STATE, (thread_state_t)&FloatState, &count);
1270+
if (machret != KERN_SUCCESS)
1271+
{
1272+
count = x86_AVX_STATE_COUNT;
1273+
machret = thread_get_state(thread, x86_AVX_STATE, (thread_state_t)&FloatState, &count);
1274+
if (machret != KERN_SUCCESS)
1275+
{
1276+
count = x86_FLOAT_STATE_COUNT;
1277+
machret = thread_get_state(thread, x86_FLOAT_STATE, (thread_state_t)&FloatState, &count);
1278+
CHECK_MACH("thread_get_state(float)", machret);
1279+
}
1280+
}
12721281
count = x86_DEBUG_STATE_COUNT;
12731282
machret = thread_get_state(thread, x86_DEBUG_STATE, (thread_state_t)&DebugState, &count);
12741283
CHECK_MACH("thread_get_state(debug)", machret);

src/coreclr/pal/src/exception/machmessage.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ struct MachExceptionInfo
8484
mach_exception_data_type_t Subcodes[2];
8585
#if defined(HOST_AMD64)
8686
x86_thread_state_t ThreadState;
87-
x86_float_state_t FloatState;
87+
x86_avx512_state_t FloatState;
8888
x86_debug_state_t DebugState;
8989
#elif defined(HOST_ARM64)
9090
arm_thread_state64_t ThreadState;

src/coreclr/pal/src/thread/context.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -1513,6 +1513,18 @@ CONTEXT_GetThreadContextFromThreadState(
15131513
CONTEXT_GetThreadContextFromThreadState((thread_state_flavor_t)pState->fsh.flavor, (thread_state_t)&pState->ufs, lpContext);
15141514
}
15151515
break;
1516+
case x86_AVX_STATE:
1517+
{
1518+
x86_avx_state_t *pState = (x86_avx_state_t *)threadState;
1519+
CONTEXT_GetThreadContextFromThreadState((thread_state_flavor_t)pState->ash.flavor, (thread_state_t)&pState->ufs, lpContext);
1520+
}
1521+
break;
1522+
case x86_AVX512_STATE:
1523+
{
1524+
x86_avx512_state_t *pState = (x86_avx512_state_t *)threadState;
1525+
CONTEXT_GetThreadContextFromThreadState((thread_state_flavor_t)pState->ash.flavor, (thread_state_t)&pState->ufs, lpContext);
1526+
}
1527+
break;
15161528
#elif defined(HOST_ARM64)
15171529
case ARM_THREAD_STATE64:
15181530
if (lpContext->ContextFlags & (CONTEXT_CONTROL | CONTEXT_INTEGER) & CONTEXT_AREA_MASK)

src/libraries/Microsoft.Extensions.Configuration.Binder/src/Microsoft.Extensions.Configuration.Binder.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFrameworks>$(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum)</TargetFrameworks>
55
<EnableDefaultItems>true</EnableDefaultItems>
66
<IsPackable>true</IsPackable>
7-
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
7+
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
88
<ServicingVersion>2</ServicingVersion>
99
<PackageDescription>Provides the functionality to bind an object to data in configuration providers for Microsoft.Extensions.Configuration. This package enables you to represent the configuration data as strongly-typed classes defined in the application code. To bind a configuration, use the Microsoft.Extensions.Configuration.ConfigurationBinder.Get extension method on the IConfiguration object. To use this package, you also need to install a package for the configuration provider, for example, Microsoft.Extensions.Configuration.Json for the JSON provider.</PackageDescription>
1010
</PropertyGroup>

0 commit comments

Comments
 (0)