cross build runtime with mono for ppc64le#1
Open
Sapana-Khemkar wants to merge 3897 commits into
Open
Conversation
zl-wang
approved these changes
Mar 17, 2022
…nt build dependency (#67018)
…ify marshaller types (#65591)
Fedora 37 has now started development, and the distribution now identifies itself as Fedora 37 instead of Fedora 36: https://fedorapeople.org/groups/schedule/f-37/f-37-key-tasks.html This is a forward-port of dotnet/runtime#65392
Both the un-altered and colon-normalized prefixes now match environment variables in either the __ or colon formats. The change includes minor refactors to the EnvironmentVariablesConfigurationProvider to make the code easier to follow and reduce the likelihood of future regressions. Test naming has been made clearer, and a comprehensive test has been added. Fix #65756
…ug (#66999) It seems there is a linker bug related to control-flow guard that is causing #66969. In eb8460f a thunktemplates.asm file was added that has a LEAF_END_MARKED at the end of the file. This creates two symbols for the same upcoming address. Normally that should be fine, but in this case it causes the linker to place the same address twice in a CFG table in the PE file. This causes the kernel to fail while loading the image. A simple workaround would be to add a nop at the end of thunktemplates.asm, but @janvorli suggested giving these symbols their own address in all cases for goodness when debugging. We already do so for Windows x64 it looks like. Fix #66969
* BeginScope can return a null IDisposable. And TState is not nullable.
…mentNode if the ISA is unsupported (#66853) * Ensure that fgMorphFieldToSimdGetElement doesn't call gtNewSimdGetElementNode if the ISA is unsupported * Ensure fgMorphFieldToSimdGetElement is correctly checking for AdvSimd support on Arm64 * Ensure impExpandHalfConstEqualsSIMD checks for baseline simd support
…#55121) * implement divide-and-conquer method for parsing digits * fix argument order in Assert when x equals to 0 * Apply format fix Co-authored-by: Stephen Toub <stoub@microsoft.com> * add test for non-naive algorithm * add description for naiveThreshold * fix trivial part * add check for boundary condition * add assertions and descriptions * change variable name * remove inappropreate use of var * to use ArrayPool<int>.Shared.Rent for newBuffer allocation * move both algorithms to separate methods * add and fix comments * trivial fix Co-authored-by: Stephen Toub <stoub@microsoft.com>
…ng.EventSource` (#66802) * Annotate src * Annotate ref * Make internal parameters non-nullable if they never receive null
…ssElement/Attribute (#67045)
* [mono] Optimize generic sharing for generic methods. Previously, rgctx entries where stored either in the class rgctx or the method rgctx in linked structures, and accessed using rgctx trampolines (for non-llvmonly configuration), or inline code and fallback C code (for llvmonly configuration). However, if a method has an mrgctx parameter, all the rgctx entries can be stored as an array in the mrgctx and accessed using a simple load. One complication is that the mrgctx might need to be allocated before the method is compiled/loaded, so the rgctx entries need to be stored in a separate array, and the array needs to be initialized on demand. * Add an 'entries' field to MonoMethodRuntimeGenericContext which stores the rgctx entries. * Add a MonoGSharedMethodInfo structure which stores the information needed to initialize a MonoMethodRuntimeGenericContext, i.e. the number of rgctx entries and their contents. * Add a MONO_PATCH_INFO_GSHARED_METHOD_INFO patch type to refer to the previous structure. * Add a mini_init_method_rgctx () JIT icall, which initializes an mrgctx if needed and generate code in the prolog of gshared methods to call it. * [mono] Pass an mrgctx to static/valuetype gshared methods. Previously, these methods were passed a vtable. Passing the mrgctx instead simplifies some runtime code and allows smaller/faster access to rgctx entries. * Add rgctx trampolines in get_ftnptr_for_method (). * [mono][wasm] Avoid AOTing Microsoft.CodeAnalysis.dll as well.
…#66712) We can safely ignore cancellation exceptions due to WaitAsync being canceled. They do not represent work that was started and interrupted, and we know exactly the source of the exception (as compared to if the exception emerged from either MoveNextAsync or the loop body).
…… (#67024) * Add a --aot-lazy-assembly-load command line option to load assemblies referenced by AOT images lazily. Note that this requires the assemblies used at AOT time to exactly match the assemblies loaded at runtime, otherwise the runtime will abort when it loads the mismatching reference. * Handle the options added by options.h in mono_jit_parse_options ().
* Update coding-style to include target-typed new guideline Similar to `var` usage, `new()` usage is only allowed when the Type can be understood from the same line. Fix #53369 * Fix coding style violations
* Update dependencies from https://github.com/dotnet/arcade build 20220317.4 Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk From Version 2.5.1-beta.22166.1 -> To Version 2.5.1-beta.22167.4 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20220317.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 7.0.0-preview1.22166.1 -> To Version 7.0.0-preview1.22167.1 * Update dependencies from https://github.com/dotnet/arcade build 20220318.2 Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk From Version 2.5.1-beta.22166.1 -> To Version 2.5.1-beta.22168.2 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20220318.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 7.0.0-preview1.22166.1 -> To Version 7.0.0-preview1.22168.1 * Update dependencies from https://github.com/dotnet/runtime build 20220321.1 runtime.native.System.IO.Ports , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.ILAsm , Microsoft.NETCore.DotNetHostPolicy , System.Text.Json , Microsoft.NET.Sdk.IL From Version 7.0.0-preview.3.22163.2 -> To Version 7.0.0-preview.3.22171.1 * Update dependencies from https://github.com/dotnet/arcade build 20220321.2 Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk From Version 2.5.1-beta.22166.1 -> To Version 2.5.1-beta.22171.2 * Update dependencies from https://github.com/dotnet/icu build 20220321.4 Microsoft.NETCore.Runtime.ICU.Transport From Version 7.0.0-preview.3.22157.1 -> To Version 7.0.0-preview.4.22171.4 * Update dependencies from https://github.com/dotnet/runtime-assets build 20220321.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 7.0.0-beta.22166.2 -> To Version 7.0.0-beta.22171.1 * Update dependencies from https://github.com/dotnet/emsdk build 20220321.3 Microsoft.NET.Workload.Emscripten.Manifest-7.0.100 From Version 7.0.0-preview.3.22167.1 -> To Version 7.0.0-preview.4.22171.3 * Update dependencies from https://github.com/dotnet/hotreload-utils build 20220321.1 Microsoft.DotNet.HotReload.Utils.Generator.BuildTool From Version 1.0.2-alpha.0.22164.2 -> To Version 1.0.2-alpha.0.22171.1 * Update dependencies from https://github.com/dotnet/llvm-project build 20220321.2 runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools From Version 11.1.0-alpha.1.22164.2 -> To Version 11.1.0-alpha.1.22171.2 * Update dependencies from https://github.com/dotnet/emsdk build 20220322.1 Microsoft.NET.Workload.Emscripten.Manifest-7.0.100 From Version 7.0.0-preview.3.22121.1 -> To Version 7.0.0-preview.4.22172.1 * Update dependencies from https://github.com/dotnet/icu build 20220322.1 Microsoft.NETCore.Runtime.ICU.Transport From Version 7.0.0-preview.3.22121.1 -> To Version 7.0.0-preview.4.22172.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20220322.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 7.0.0-preview1.22166.1 -> To Version 7.0.0-preview1.22172.1 * Revert changes from Roslyn-Analyzers Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Larry Ewing <lewing@microsoft.com> Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
Fixed and enabled CoreCLR runtime tests running on Mono Windows x64.
* Add Expiry timestamp on SafeFreeCredentials handle * Recalculate expiration timestamp based on CertificateContext * Fix case when user provides CertificateContext
Co-authored-by: Trayan Zapryanov <Traian.Zaprianov@docuware.com>
We can sometimes see trees like "ARR_ADDR(long 0)" that are the result of morph's folding logic. In general it does not seem great to allow folding of BYREFs into LONGs like that, but it is also not incorrect per-se.
Loop cloning needs to parse what morph creates from GT_INDEX nodes to determine if there are array accesses with bounds checks that could potentially be optimized. For jagged array access, this can be a "comma chain" of bounds checks and array element address expressions. For a case where an array of structs had a struct field, such as `ValueTuple<int[], int>[]`, cloning was confusing the expression `a[i].Item1[j]` for the jagged array access `a[i][j]`. The fix here is to keep track of the type of the `GT_INDEX` node that is being morphed, in the `GT_BOUNDS_CHECK` node that is created for it. (This is the only thing cloning parses, to avoid the need to parse the very complex trees morph can create.) This type is then checked when parsing the "comma chain" trees. If a non-`TYP_REF` is found (such as a `TYP_STRUCT` in the above example), no more levels of array indexing are considered. (`TYP_REF` is what an array object would have, for a jagged array.) Fixes #66254.
* Update dependencies from https://github.com/dotnet/linker build 20220330.1 Microsoft.NET.ILLink.Tasks From Version 7.0.100-1.22178.1 -> To Version 7.0.100-1.22180.1 * Update dependencies from https://github.com/dotnet/linker build 20220331.1 Microsoft.NET.ILLink.Tasks From Version 7.0.100-1.22178.1 -> To Version 7.0.100-1.22181.1 * Update dependencies from https://github.com/dotnet/linker build 20220401.3 Microsoft.NET.ILLink.Tasks From Version 7.0.100-1.22178.1 -> To Version 7.0.100-1.22201.3 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Replace Marshal.PtrToStructure and similar methods with unmanaged pointers. Fixes a few AOT compatibility warnings.
- Fix Null ref on non-existing reference. This is in line with how the old code worked, it returned false on CheckSignature but didn't throw on load.
Before this change the execution script generator arbitrarily referred to "InputAssemblyName", "AssemblyName" and "MSBuildProjectName" w.r.t. names of the scripts and the executables. This is unfortunate because for merged ILPROJ projects we need to adjust the assembly name during build. This simple change makes the scripts consistently refer to AssemblyName everywhere. Thanks Tomas
Co-authored-by: Jan Kotas <jkotas@microsoft.com> Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
…unk (#67210) * Avoid pre-allocating large arrays in some scenarios for Enumerable.Chunk(). Fix #67132 * Switch Chunk() to use List-based implementation. See discussion here: dotnet/runtime#67210 (comment) * Address feedback from https://github.com/dotnet/runtime/pull/67210/files
* Fix handling of makeref/refvalue in generic code Found in Pri0 tests. We didn't have any coverage for TypedReference in smoke tests. * Update Generics.cs
* Call `EnsureLoadableMethod` from scanner, same as we do in JitInterface. * Make scan/compile diffing less sensitive to differences caused by invalid IL.
* Concatenate cookies with semicolon * Restore tests that run on .NET Framework * Change Cookie header to Custom * PR feedback
This reverts commit a0f7927. It broke wasm builds: dotnet/runtime#67381
* [wasm] Bump timeout for debugger tests to 30mins, to accomodate EvaluateOnCallFrameTests * [wasm][debugger] statically init App.static_method_table `debugger-driver.html` has a `App.init` function (called from `onDotnetReady`) that init's `App.static_method_table`. But this function can race with a test, which might call `invoke_static_method`, and that would fail because `App.static_method_table` is not defined yet. * Improve logging slightly to help debug random failures * Update line numbers in tests
… (#67453) * Create INumberBase and allow Complex to implement it * Move DivRem to only be available for IBinaryInteger * Split apart various floating-point interfaces for better extensibility * Annotate the generic math interfaces to implement on BigInteger and Complex * Moving various generic math interfaces into the System.Numerics namespace * Split various generic math interfaces into their own file for easier discoverability * IParseable -> IParsable * Update ISignedNumber and IUnsignedNumber to be "marker" interfaces * PI -> Pi and IEEERemainder -> Ieee754Remainder * Removing the various TInteger constraints in favor of using int where feasible * Moving IDivisionOperators and ISpanFormattable down to INumberBase * Moving CopySign, IsNegative, MaxMagnitude, and MinMagnitude down to INumber * Create<TOther> -> CreateChecked<TOther> * Updating various generic math tests * Update src/libraries/System.Private.CoreLib/src/System/Numerics/INumber.cs Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr> * Fixing the reference assembly for System.Numerics.Complex * Removing generic math support from System.Numerics.Complex until the trimming issue can be resolved Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr>
…550) * Disable `Microsoft.Extensions.Hosting.WindowsServices.Tests` for .. non-windows platforms. * UseWindowsServiceTests: Mark the test as windows only * Fix build
Use whatever flags already are baked into the SuperPMI collection.
* Don't pass --minimize to Xcode 13.3 dsymutil Fixes dotnet/runtime#66770 New xcode command line tools dropped support for the `--minimize` option (which is now the default). The related LLVM change is llvm/llvm-project@5d07dc8 * fix build with older Xcodes use a list of options, not a single option with a space in it Co-authored-by: Kevin Jones <vcsjones@github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.