From 5b8ce63f7396c9103f5beeaa28779a7df509de84 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Tue, 14 Sep 2021 16:15:21 -0700 Subject: [PATCH] Update DllImportGenerator to the latest version (#59117) --- eng/Versions.props | 2 +- eng/generators.targets | 11 +- .../Unix/System.Native/Interop.ReadLink.cs | 2 +- .../Unix/System.Native/Interop.Stat.Span.cs | 2 +- .../Interop.EvpPkey.Rsa.cs | 6 +- .../Interop.EvpPkey.cs | 10 +- .../Interop.Ssl.cs | 2 +- .../InteropServices/ArrayMarshaller.cs | 225 ++++++++++++++++++ .../System.Console/src/System.Console.csproj | 1 + .../System.Diagnostics.FileVersionInfo.csproj | 2 + .../src/System.Diagnostics.Process.csproj | 1 + ...ConfigureTerminalForChildProcesses.Unix.cs | 6 +- .../src/System.IO.Compression.Brotli.csproj | 1 + .../src/System.IO.Compression.ZipFile.csproj | 2 + .../src/System.IO.Compression.csproj | 1 + .../src/System.IO.FileSystem.DriveInfo.csproj | 1 + .../src/System.IO.FileSystem.Watcher.csproj | 1 + .../src/System.IO.MemoryMappedFiles.csproj | 2 + .../src/System.IO.Pipes.csproj | 1 + .../src/System.Net.Http.csproj | 1 + .../src/System.Net.Mail.csproj | 1 + .../src/System.Net.NameResolution.csproj | 1 + .../src/System.Net.Ping.csproj | 1 + .../src/System.Net.Quic.csproj | 1 + .../src/System.Net.Security.csproj | 1 + .../System/TimeZoneInfo.Unix.NonAndroid.cs | 2 +- ....InteropServices.RuntimeInformation.csproj | 1 + ...stem.Security.Cryptography.Encoding.csproj | 1 + ...ystem.Security.Cryptography.OpenSsl.csproj | 1 + ...urity.Cryptography.X509Certificates.csproj | 1 + 30 files changed, 274 insertions(+), 17 deletions(-) create mode 100644 src/libraries/Common/src/System/Runtime/InteropServices/ArrayMarshaller.cs diff --git a/eng/Versions.props b/eng/Versions.props index 4f2c2bb97eb50..0d289d789d9fc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -189,6 +189,6 @@ 3.14.0-dotnet 6.0.0-preview.5.21275.7 - 1.0.0-alpha.21301.2 + 1.0.0-alpha.21464.1 diff --git a/eng/generators.targets b/eng/generators.targets index 8764a592d3647..301df026dbbfa 100644 --- a/eng/generators.targets +++ b/eng/generators.targets @@ -8,6 +8,11 @@ true + + true + $(DefineConstants);DLLIMPORTGENERATOR_INTERNALUNSAFE + @@ -15,6 +20,7 @@ This is mimicking the case where the source generator always generates the attributes. --> + @@ -28,7 +34,10 @@ true - true + true true diff --git a/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ReadLink.cs b/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ReadLink.cs index 3f89554e5838d..ce3b064881371 100644 --- a/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ReadLink.cs +++ b/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ReadLink.cs @@ -21,7 +21,7 @@ internal static partial class Sys /// Returns the number of bytes placed into the buffer on success; bufferSize if the buffer is too small; and -1 on error. /// [GeneratedDllImport(Libraries.SystemNative, EntryPoint = "SystemNative_ReadLink", SetLastError = true)] - private static extern int ReadLink(ref byte path, byte[] buffer, int bufferSize); + private static partial int ReadLink(ref byte path, byte[] buffer, int bufferSize); /// /// Takes a path to a symbolic link and returns the link target path. diff --git a/src/libraries/Common/src/Interop/Unix/System.Native/Interop.Stat.Span.cs b/src/libraries/Common/src/Interop/Unix/System.Native/Interop.Stat.Span.cs index 9e47577fcc42b..094fa66a0dfa5 100644 --- a/src/libraries/Common/src/Interop/Unix/System.Native/Interop.Stat.Span.cs +++ b/src/libraries/Common/src/Interop/Unix/System.Native/Interop.Stat.Span.cs @@ -10,7 +10,7 @@ internal static partial class Interop internal static partial class Sys { [GeneratedDllImport(Libraries.SystemNative, EntryPoint = "SystemNative_Stat", SetLastError = true)] - internal static extern int Stat(ref byte path, out FileStatus output); + internal static partial int Stat(ref byte path, out FileStatus output); internal static int Stat(ReadOnlySpan path, out FileStatus output) { diff --git a/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.Rsa.cs b/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.Rsa.cs index c95e239f3b5b2..523d3f33882c4 100644 --- a/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.Rsa.cs +++ b/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.Rsa.cs @@ -12,7 +12,7 @@ internal static partial class Interop internal static partial class Crypto { [GeneratedDllImport(Libraries.CryptoNative)] - private static extern SafeEvpPKeyHandle CryptoNative_EvpPKeyCreateRsa(IntPtr rsa); + private static partial SafeEvpPKeyHandle CryptoNative_EvpPKeyCreateRsa(IntPtr rsa); internal static SafeEvpPKeyHandle EvpPKeyCreateRsa(IntPtr rsa) { @@ -29,8 +29,8 @@ internal static SafeEvpPKeyHandle EvpPKeyCreateRsa(IntPtr rsa) return pkey; } - [DllImport(Libraries.CryptoNative)] - private static extern SafeEvpPKeyHandle CryptoNative_RsaGenerateKey(int keySize); + [GeneratedDllImport(Libraries.CryptoNative)] + private static partial SafeEvpPKeyHandle CryptoNative_RsaGenerateKey(int keySize); internal static SafeEvpPKeyHandle RsaGenerateKey(int keySize) { diff --git a/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs b/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs index 2aeb855db1a8f..0cea642fcf90b 100644 --- a/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs +++ b/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EvpPkey.cs @@ -44,16 +44,16 @@ internal static SafeEvpPKeyHandle EvpPKeyDuplicate( internal static partial int EvpPKeySize(SafeEvpPKeyHandle pkey); [GeneratedDllImport(Libraries.CryptoNative, EntryPoint = "CryptoNative_UpRefEvpPkey")] - internal static extern int UpRefEvpPkey(SafeEvpPKeyHandle handle); + internal static partial int UpRefEvpPkey(SafeEvpPKeyHandle handle); - [DllImport(Libraries.CryptoNative)] - private static extern unsafe SafeEvpPKeyHandle CryptoNative_DecodeSubjectPublicKeyInfo( + [GeneratedDllImport(Libraries.CryptoNative)] + private static unsafe partial SafeEvpPKeyHandle CryptoNative_DecodeSubjectPublicKeyInfo( byte* buf, int len, int algId); - [DllImport(Libraries.CryptoNative)] - private static extern unsafe SafeEvpPKeyHandle CryptoNative_DecodePkcs8PrivateKey( + [GeneratedDllImport(Libraries.CryptoNative)] + private static unsafe partial SafeEvpPKeyHandle CryptoNative_DecodePkcs8PrivateKey( byte* buf, int len, int algId); diff --git a/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.Ssl.cs b/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.Ssl.cs index b5d34ee979008..c31d402047add 100644 --- a/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.Ssl.cs +++ b/src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.Ssl.cs @@ -75,7 +75,7 @@ internal static partial class Ssl internal static partial int SslRead(SafeSslHandle ssl, ref byte buf, int num); [GeneratedDllImport(Libraries.CryptoNative, EntryPoint = "CryptoNative_SslRenegotiate")] - internal static extern int SslRenegotiate(SafeSslHandle ssl); + internal static partial int SslRenegotiate(SafeSslHandle ssl); [GeneratedDllImport(Libraries.CryptoNative, EntryPoint = "CryptoNative_IsSslRenegotiatePending")] [return: MarshalAs(UnmanagedType.Bool)] diff --git a/src/libraries/Common/src/System/Runtime/InteropServices/ArrayMarshaller.cs b/src/libraries/Common/src/System/Runtime/InteropServices/ArrayMarshaller.cs new file mode 100644 index 0000000000000..5c72173ead8e0 --- /dev/null +++ b/src/libraries/Common/src/System/Runtime/InteropServices/ArrayMarshaller.cs @@ -0,0 +1,225 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +// +// Types in this file are used for generated p/invokes (docs/design/features/source-generator-pinvokes.md). +// See the DllImportGenerator experiment in https://github.com/dotnet/runtimelab. +// +#if DLLIMPORTGENERATOR_INTERNALUNSAFE +using Internal.Runtime.CompilerServices; +#else +using System.Runtime.CompilerServices; +#endif +using System.Diagnostics; + +namespace System.Runtime.InteropServices.GeneratedMarshalling +{ + internal unsafe ref struct ArrayMarshaller + { + private T[]? _managedArray; + private readonly int _sizeOfNativeElement; + private IntPtr _allocatedMemory; + + public ArrayMarshaller(int sizeOfNativeElement) + :this() + { + _sizeOfNativeElement = sizeOfNativeElement; + } + + public ArrayMarshaller(T[]? managed, int sizeOfNativeElement) + { + _allocatedMemory = default; + _sizeOfNativeElement = sizeOfNativeElement; + if (managed is null) + { + _managedArray = null; + NativeValueStorage = default; + return; + } + _managedArray = managed; + // Always allocate at least one byte when the array is zero-length. + int spaceToAllocate = Math.Max(managed.Length * _sizeOfNativeElement, 1); + _allocatedMemory = Marshal.AllocCoTaskMem(spaceToAllocate); + NativeValueStorage = new Span((void*)_allocatedMemory, spaceToAllocate); + } + + public ArrayMarshaller(T[]? managed, Span stackSpace, int sizeOfNativeElement) + { + _allocatedMemory = default; + _sizeOfNativeElement = sizeOfNativeElement; + if (managed is null) + { + _managedArray = null; + NativeValueStorage = default; + return; + } + _managedArray = managed; + // Always allocate at least one byte when the array is zero-length. + int spaceToAllocate = Math.Max(managed.Length * _sizeOfNativeElement, 1); + if (spaceToAllocate <= stackSpace.Length) + { + NativeValueStorage = stackSpace[0..spaceToAllocate]; + } + else + { + _allocatedMemory = Marshal.AllocCoTaskMem(spaceToAllocate); + NativeValueStorage = new Span((void*)_allocatedMemory, spaceToAllocate); + } + } + + /// + /// Stack-alloc threshold set to 256 bytes to enable small arrays to be passed on the stack. + /// Number kept small to ensure that P/Invokes with a lot of array parameters doesn't + /// blow the stack since this is a new optimization in the code-generated interop. + /// + public const int StackBufferSize = 0x200; + + public Span ManagedValues => _managedArray; + + public Span NativeValueStorage { get; private set; } + + public ref byte GetPinnableReference() => ref MemoryMarshal.GetReference(NativeValueStorage); + + public void SetUnmarshalledCollectionLength(int length) + { + _managedArray = new T[length]; + } + + public byte* Value + { + get + { + Debug.Assert(_managedArray is null || _allocatedMemory != IntPtr.Zero); + return (byte*)_allocatedMemory; + } + set + { + if (value == null) + { + _managedArray = null; + NativeValueStorage = default; + } + else + { + _allocatedMemory = (IntPtr)value; + NativeValueStorage = new Span(value, (_managedArray?.Length ?? 0) * _sizeOfNativeElement); + } + } + } + + public T[]? ToManaged() => _managedArray; + + public void FreeNative() + { + if (_allocatedMemory != IntPtr.Zero) + { + Marshal.FreeCoTaskMem(_allocatedMemory); + } + } + } + + internal unsafe ref struct PtrArrayMarshaller where T : unmanaged + { + private T*[]? _managedArray; + private readonly int _sizeOfNativeElement; + private IntPtr _allocatedMemory; + + public PtrArrayMarshaller(int sizeOfNativeElement) + : this() + { + _sizeOfNativeElement = sizeOfNativeElement; + } + + public PtrArrayMarshaller(T*[]? managed, int sizeOfNativeElement) + { + _allocatedMemory = default; + _sizeOfNativeElement = sizeOfNativeElement; + if (managed is null) + { + _managedArray = null; + NativeValueStorage = default; + return; + } + _managedArray = managed; + // Always allocate at least one byte when the array is zero-length. + int spaceToAllocate = Math.Max(managed.Length * _sizeOfNativeElement, 1); + _allocatedMemory = Marshal.AllocCoTaskMem(spaceToAllocate); + NativeValueStorage = new Span((void*)_allocatedMemory, spaceToAllocate); + } + + public PtrArrayMarshaller(T*[]? managed, Span stackSpace, int sizeOfNativeElement) + { + _allocatedMemory = default; + _sizeOfNativeElement = sizeOfNativeElement; + if (managed is null) + { + _managedArray = null; + NativeValueStorage = default; + return; + } + _managedArray = managed; + // Always allocate at least one byte when the array is zero-length. + int spaceToAllocate = Math.Max(managed.Length * _sizeOfNativeElement, 1); + if (spaceToAllocate <= stackSpace.Length) + { + NativeValueStorage = stackSpace[0..spaceToAllocate]; + } + else + { + _allocatedMemory = Marshal.AllocCoTaskMem(spaceToAllocate); + NativeValueStorage = new Span((void*)_allocatedMemory, spaceToAllocate); + } + } + + /// + /// Stack-alloc threshold set to 256 bytes to enable small arrays to be passed on the stack. + /// Number kept small to ensure that P/Invokes with a lot of array parameters doesn't + /// blow the stack since this is a new optimization in the code-generated interop. + /// + public const int StackBufferSize = 0x200; + + public Span ManagedValues => Unsafe.As(_managedArray); + + public Span NativeValueStorage { get; private set; } + + public ref byte GetPinnableReference() => ref MemoryMarshal.GetReference(NativeValueStorage); + + public void SetUnmarshalledCollectionLength(int length) + { + _managedArray = new T*[length]; + } + + public byte* Value + { + get + { + Debug.Assert(_managedArray is null || _allocatedMemory != IntPtr.Zero); + return (byte*)_allocatedMemory; + } + set + { + if (value == null) + { + _managedArray = null; + NativeValueStorage = default; + } + else + { + _allocatedMemory = (IntPtr)value; + NativeValueStorage = new Span(value, (_managedArray?.Length ?? 0) * _sizeOfNativeElement); + } + + } + } + + public T*[]? ToManaged() => _managedArray; + + public void FreeNative() + { + if (_allocatedMemory != IntPtr.Zero) + { + Marshal.FreeCoTaskMem(_allocatedMemory); + } + } + } +} \ No newline at end of file diff --git a/src/libraries/System.Console/src/System.Console.csproj b/src/libraries/System.Console/src/System.Console.csproj index c464007dc95e9..c315a2a837d92 100644 --- a/src/libraries/System.Console/src/System.Console.csproj +++ b/src/libraries/System.Console/src/System.Console.csproj @@ -219,6 +219,7 @@ + diff --git a/src/libraries/System.Diagnostics.FileVersionInfo/src/System.Diagnostics.FileVersionInfo.csproj b/src/libraries/System.Diagnostics.FileVersionInfo/src/System.Diagnostics.FileVersionInfo.csproj index 564f2f435945f..918384304526b 100644 --- a/src/libraries/System.Diagnostics.FileVersionInfo/src/System.Diagnostics.FileVersionInfo.csproj +++ b/src/libraries/System.Diagnostics.FileVersionInfo/src/System.Diagnostics.FileVersionInfo.csproj @@ -41,7 +41,9 @@ + + diff --git a/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj b/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj index 1bf0c43270e42..30080797fddbd 100644 --- a/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj +++ b/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj @@ -364,6 +364,7 @@ + diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.ConfigureTerminalForChildProcesses.Unix.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.ConfigureTerminalForChildProcesses.Unix.cs index b51957fb881bf..57e1361e28b73 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.ConfigureTerminalForChildProcesses.Unix.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.ConfigureTerminalForChildProcesses.Unix.cs @@ -21,7 +21,7 @@ internal static void ConfigureTerminalForChildProcesses(int increment, bool conf Debug.Assert(configureConsole); // At least one child is using the terminal. - Interop.Sys.ConfigureTerminalForChildProcess(childUsesTerminal: true); + Interop.Sys.ConfigureTerminalForChildProcess(childUsesTerminal: 1); } else { @@ -30,7 +30,7 @@ internal static void ConfigureTerminalForChildProcesses(int increment, bool conf if (childrenUsingTerminalRemaining == 0 && configureConsole) { // No more children are using the terminal. - Interop.Sys.ConfigureTerminalForChildProcess(childUsesTerminal: false); + Interop.Sys.ConfigureTerminalForChildProcess(childUsesTerminal: 0); } } } @@ -50,7 +50,7 @@ private static void DelayedSigChildConsoleConfiguration() if (s_childrenUsingTerminalCount == 0) { // No more children are using the terminal. - Interop.Sys.ConfigureTerminalForChildProcess(childUsesTerminal: false); + Interop.Sys.ConfigureTerminalForChildProcess(childUsesTerminal: 0); } } finally diff --git a/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj b/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj index 9fdcecf8f5e1e..b8db87b7160be 100644 --- a/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj +++ b/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj @@ -42,6 +42,7 @@ + diff --git a/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj b/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj index 2110ae810ea63..1e825eda0cb98 100644 --- a/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj +++ b/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj @@ -32,7 +32,9 @@ + + diff --git a/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj b/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj index 0ffa0044e2a16..0d59f3971d180 100644 --- a/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj +++ b/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj @@ -60,6 +60,7 @@ + diff --git a/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj b/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj index d07e89ec979be..9fa9a464a5f1b 100644 --- a/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj +++ b/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj @@ -77,6 +77,7 @@ + diff --git a/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj b/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj index b6b0579e63026..075c19e17667c 100644 --- a/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj +++ b/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj @@ -114,6 +114,7 @@ + diff --git a/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj b/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj index bd15c52faebb1..b473091e6ed1b 100644 --- a/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj +++ b/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj @@ -115,7 +115,9 @@ + + diff --git a/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj b/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj index d92b0433d943f..77de961323315 100644 --- a/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj +++ b/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj @@ -173,6 +173,7 @@ + diff --git a/src/libraries/System.Net.Http/src/System.Net.Http.csproj b/src/libraries/System.Net.Http/src/System.Net.Http.csproj index 77ed5b9c436c6..99855727c14da 100644 --- a/src/libraries/System.Net.Http/src/System.Net.Http.csproj +++ b/src/libraries/System.Net.Http/src/System.Net.Http.csproj @@ -652,6 +652,7 @@ + diff --git a/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj b/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj index d1d9176a5e879..0fa2b09742513 100644 --- a/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj +++ b/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj @@ -268,6 +268,7 @@ + diff --git a/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj b/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj index 1642f1fff33dd..7626f207fa6fe 100644 --- a/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj +++ b/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj @@ -120,6 +120,7 @@ + diff --git a/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj b/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj index 571583be6c379..63e45d7e1cbd8 100644 --- a/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj +++ b/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj @@ -111,6 +111,7 @@ + diff --git a/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj b/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj index 4549842ee8e68..a8cbb4f40e607 100644 --- a/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj +++ b/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj @@ -114,6 +114,7 @@ + diff --git a/src/libraries/System.Net.Security/src/System.Net.Security.csproj b/src/libraries/System.Net.Security/src/System.Net.Security.csproj index 60c21f69a2cfd..4b46aa7b63ea0 100644 --- a/src/libraries/System.Net.Security/src/System.Net.Security.csproj +++ b/src/libraries/System.Net.Security/src/System.Net.Security.csproj @@ -422,6 +422,7 @@ + diff --git a/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.NonAndroid.cs b/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.NonAndroid.cs index d7e54e1ebab2e..0c3e38566825c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.NonAndroid.cs +++ b/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.NonAndroid.cs @@ -200,7 +200,7 @@ private static unsafe void EnumerateFilesRecursively(string path, Predicate + diff --git a/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj b/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj index ea5329594dcfb..c957f51337e5c 100644 --- a/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj +++ b/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj @@ -124,6 +124,7 @@ + diff --git a/src/libraries/System.Security.Cryptography.OpenSsl/src/System.Security.Cryptography.OpenSsl.csproj b/src/libraries/System.Security.Cryptography.OpenSsl/src/System.Security.Cryptography.OpenSsl.csproj index f28aa959878e3..9acc1264b43d4 100644 --- a/src/libraries/System.Security.Cryptography.OpenSsl/src/System.Security.Cryptography.OpenSsl.csproj +++ b/src/libraries/System.Security.Cryptography.OpenSsl/src/System.Security.Cryptography.OpenSsl.csproj @@ -158,6 +158,7 @@ + diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj b/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj index 3b1071dd9124b..d14f8c74f6a88 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj +++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj @@ -781,6 +781,7 @@ +