Skip to content

cross build runtime with mono for ppc64le#1

Open
Sapana-Khemkar wants to merge 3897 commits into
power_porting_devfrom
sapana_v6.0.2
Open

cross build runtime with mono for ppc64le#1
Sapana-Khemkar wants to merge 3897 commits into
power_porting_devfrom
sapana_v6.0.2

Conversation

@Sapana-Khemkar
Copy link
Copy Markdown
Owner

No description provided.

@Sapana-Khemkar Sapana-Khemkar self-assigned this Mar 2, 2022
@vikasgupta8 vikasgupta8 requested a review from zl-wang March 17, 2022 04:49
ericstj and others added 25 commits March 23, 2022 09:13
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
* [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>
SingleAccretion and others added 30 commits April 2, 2022 20:23
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
* [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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.