Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backout https://github.com/Unity-Technologies/bdwgc/pull/52 #1308

Draft
wants to merge 914 commits into
base: unity-main
Choose a base branch
from

Conversation

jechter
Copy link

@jechter jechter commented Jun 17, 2020

No description provided.

joshpeterson and others added 30 commits March 11, 2019 13:02
Update to latest bee (be3d27e00f2f)
Use bokken runner for windows builds
The `IDataContractSurrogate` interface is part of the public API of
.NET 4.7.1. In has a method named `ProcessImportedType`, which was not
compiled into the unityaot profile.

The `ProcessImportedType` method uses types `CodeTypeDeclaration` and
`CodeCompileUnit` as parameters. Both of these types are pretty large,
and we don't want to compile them into the unityaot profile.

So in order to compile the `ProcessImportedType` method method, add
empty `CodeTypeDeclaration` and `CodeCompileUnit` types in unityaot (the
profile stubber will fill these in properly). This change allows the
unstripped unityaot profile work correctly with IL2CPP.

It is difficult for the profile stubber to handle this case, because
the code in `SurrogateProviderAdapter` is in a facade assembly, which
the profile stubber currently ignores.
…nityaot

Compile ProcessImportedType in IDataContractSurrogate for unityaot
Specifically, this picks up changes from:

https://github.cds.internal.unity3d.com/unity/il2cpp/pull/287

although there are earlier changes that were not synced here as well.
…l2cpp-2

Sync the debugger agent code from IL2CPP
Use actual stack fault address rather than relying on the
SP of the current frame. If we try to enter a method with a
large prolog (many locals) we may try to allocate more stack
than is available, however the SP has not been updated. This
means the stack overflow heuristic to free up enough space
may fail, as the used stack may be smaller than the amount
of stack that was attempted to be unwound.
ashwinimurt and others added 27 commits May 18, 2020 13:55
…1280

mono debugger remove some asserts and fixing an error for async debug of a generic (fixes case 1241280)
…1344

Adding check to avoid processing pdbs that have zero sequence points …
…rrays. Fixes gh mono#6266 (mono#7038)

Add System.Collections.Generic include to objects.cs
…5903

[runtime] Magic interfaces requires the complex stelemref to handle a…
* update bdwgc

* Expose mono_gc_start_incremental_collection API

* switch bdwgc repo back to unity-master branch
…-array-marking-stack-limit

Avoid exceeding the mark stack limit (case 1235202)
…ng 32bit so we don't want to do this by default anymore.
…sx-buildserver-only

only build 32bit osx on build server. Catalina doesn't support buildi…
When we have the following sequence:

    ldloc n
    ldfld valuetype [Unity.Mathematics]Unity.Mathematics.int2 Foo::bar

and local n is a reference to value, when walking the instructions in
mono_method_to_ir, we generally try to avoid loading a whole value
type just to load one of the fields.  I believe this is an
optimization.

The test here is not quite complete, though, as we have ref valuetypes
where the object stored at the location is actually an address, in
which case we still need to treat it as we would a normal reference.

This optimization isn't present in the ldloc.n coded forms and is
written in a slightly more robust way in ldloc.s, so no changes are
necessary there.

As an alternative to this commit, we might adopt the ldloc.s test for
ldloc as well, or merge in
mono@29428d9/mono/mini/method-to-ir.c
from master which encapsulates much the same intent.
Same method that ldloc.s uses, which incorporates the byref test.
…ono_unity_gc_disable`/`mono_unity_gc_is_disabled` (#1302)
…-x64jit-fix

Valuetype ref return x64jit fix
…null-ip

Gather callstack even if instruction pointer is null.
…3373)

* [debugger] Fixing two crashes while debugging an Android app.

-> Doing stepping into in VSM in some situation the frame saved in TLS is not synchronised with what is really been executed in the main thread. This makes the debugger-agent crashes because it tries to get variable info in some memory that is not available anymore.
	-> To fix it I forced the update of stack when CMD_THREAD_GET_FRAME_INFO is called.

-> Doing step over in Visual Studio for Windows, if you have the threads debugger window enabled, VSW calls frame_commands for each thread that is showed, and if the thread is not really_suspended it tries to get variable info from a memory that is not available anymore because the thread is not suspended yet.
	-> To fix it I don't send variable info of a frame if the thread is not really_suspended and doesn't have an async_state valid.

Cherry-picked with some light massaging by Alex Thibodeau (case 1249172)
…9172

[debugger] Fixing two crashes while debugging an Android app. (mono#13373) (unity case 1249172)
This change applies a similar fix for exFAT partitions as was applied
for FAT32 partitions earlier. For exFAT partitions, the invalid inode
value seems to be 1 though.
Correct file sharing for exFAT partitions on macOS (case 1253812)
@jechter jechter marked this pull request as draft June 17, 2020 14:30
@unity-cla-assistant
Copy link
Collaborator

unity-cla-assistant commented May 19, 2022

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 4 committers have signed the CLA.

✅ ashwinimurt
❌ thaystg
❌ kumpera
❌ Joe Valenzuela


Joe Valenzuela seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet