Skip to content

Need OS-specific mscorlib.dll/etc. builds #1072

Closed

Description

@jonpryor

As part of continuing corefx/etc. code merges into Mono, mscorlib.dll and System.Data.dll (and others?) are going to be OS-specific. As such, we will need to rebuild the BCL for each supported platform (Android, macOS, Windows), instead of using the same binary assemblies on all platforms.

Activity

  1. jonpryor commented on Dec 5, 2017

    @jonpryor
    ContributorAuthor

    How do we build?

    We need to change our configure invocations for each OS to not disable the BCL build.
    Then, between each OS build, we need to rename mono/mcs/class/lib/monodroid so that when we rebuild the BCL we don't nuke the previous output.

    Mono currently uses deterministic builds, so after building the BCL for all assemblies, we can just diff(1) them to see if they're OS-specific or not. If they're identical, don't copy to the OS-specific install dir (below). If they're unique, copy them.

    Install Structure?

    xbuild-frameworks/MonoAndroid/v1.0 will continue to be for Android-OS assemblies.

    Platform-specific mscorlib.dll/etc. will be placed into xbuild/Xamarin/Android/host-$(OSName), e.g. xbuild/Xamarin/Android/lib/host-Darwin/mscorlib.dll.

    Integrations?

    We'll need to allow the Android Designer to "know" where the OS-specific files are, so that they're copied in preference to the default Android-OS files.

  2. added this to the d15-7 milestone on Dec 6, 2017
  3. modified the milestones: d15-7, d15-8 on Mar 19, 2018
  4. modified the milestones: d15-8, d15-9 on Apr 30, 2018
  5. modified the milestones: d15-9, d16-0 on Dec 15, 2018
  6. modified the milestones: d16-0, d16-1 on Jan 28, 2019
  7. jonpryor commented on May 30, 2019

    @jonpryor
    ContributorAuthor

    This was resolved in commit d5e002e.

  8. ghost locked as resolved and limited conversation to collaborators on Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions