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

Split AOT cross compilers from iOS/Android runtime packs #36758

Closed
akoeplinger opened this issue May 20, 2020 · 3 comments
Closed

Split AOT cross compilers from iOS/Android runtime packs #36758

akoeplinger opened this issue May 20, 2020 · 3 comments
Milestone

Comments

@akoeplinger
Copy link
Member

akoeplinger commented May 20, 2020

Right now we package the Mono AOT compiler inside the Microsoft.NETCore.App runtime pack.

However we don't always need the AOT compiler e.g. for iOS simulator builds where JIT is available and on Android we only use AOT as an optimization.

We should figure out a way to split the AOT compiler off into a separate package.

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label May 20, 2020
@Dotnet-GitSync-Bot
Copy link
Collaborator

I couldn't figure out the best area label to add to this issue. Please help me learn by adding exactly one area label.

@akoeplinger akoeplinger added area-Build-mono and removed untriaged New issue has not been triaged by the area owner labels May 20, 2020
@akoeplinger akoeplinger added this to the 5.0 milestone May 20, 2020
@marek-safar marek-safar modified the milestones: 5.0, 6.0 Jun 12, 2020
jonpryor pushed a commit to dotnet/android that referenced this issue Aug 7, 2020
*Invert* the MSBuild unit tests & One .NET Relationship: previously,
we would selectively *enable* our MSBuild tests to run under .NET 5+.
Now, run *all* tests under .NET 5+, *except* for the categories:

  * `AOT` and `MonoSymbolicate`: requires Mono AOT support in .NET 5
    and packaging of required tooling; see also, but not limited to,
    <dotnet/runtime#35852>
    <dotnet/runtime#36758>

  * `FSharp`: [Xamarin.Android.FSharp.ResourceProvider][0] support
    is needed to run on .NET 5.

  * `LibraryProjectZip`, `StaticProject`: Require future support
    within Xamarin.Android, but don't need to be done *before*
    inverting the unit test regime.

  * `MkBundle`: `mkbundle.exe` might not make it to .NET 5 -- see
    also dotnet/runtime#35852 -- and it may be moot with d236af5.

  * `PackagesConfig`: .NET 5+ won't support `packages.config` files.

Also rework our build pipeline to run the MSBuild tests across 12
CI machines:

  * Windows - Node 1 - Legacy
  * Windows - Node 2 - Legacy
  * Windows - Node 3 - Legacy
  * Windows - Node 1 - One .NET
  * Windows - Node 2 - One .NET
  * Windows - Node 3 - One .NET
  * macOS - Node 1 - Legacy
  * macOS - Node 2 - Legacy
  * macOS - Node 3 - Legacy
  * macOS - Node 1 - One .NET
  * macOS - Node 2 - One .NET
  * macOS - Node 3 - One .NET

Since this is a lot of machines:

 1. I moved all the `One .NET` tests to their own phase.
 2. The phase only runs when `RunAllTests=true`.  This means the
    `One .NET` tests will run on master, release branches, and
    Mono bumps.

    You can manually queue a build to enable `RunAllTests` on a PR.

To be completed in another PR, there are still more test assemblies
that need to be run under a `dotnet` context:

  * `Xamarin.Android.Build.Tests.Commercial.dll`
  * `MSBuildDeviceIntegration.dll`

[0]: https://github.com/xamarin/Xamarin.Android.FSharp.ResourceProvider
@lambdageek
Copy link
Member

I think this is done now, right @directhex ?

@steveisok
Copy link
Member

Yes, we package the aot compilers separate and they were removed from being in the runtime packs via #51782

@ghost ghost locked as resolved and limited conversation to collaborators Jul 28, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants