Skip to content

Enable building allConfigurations for corefx in source-build #210

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

Closed
weshaggard opened this issue Oct 6, 2017 · 4 comments
Closed

Enable building allConfigurations for corefx in source-build #210

weshaggard opened this issue Oct 6, 2017 · 4 comments
Assignees
Labels
area-prebuilts Reducing the number of prebuilt packages in the tarball

Comments

@weshaggard
Copy link
Member

weshaggard commented Oct 6, 2017

We need to build all packages not just .NET Core app packages when we are in offline source-build mode. However the allconfigurations leg has never worked correctly on non-windows so we need to iterate on it in order to enable.

We need to essentially undo 617ebe0.

@weshaggard
Copy link
Member Author

When we enable this we need to take into account #184

@dseefeld dseefeld added the area-prebuilts Reducing the number of prebuilt packages in the tarball label May 25, 2018
@weshaggard weshaggard removed their assignment Nov 5, 2018
@weshaggard
Copy link
Member Author

@bartonjs this is likely something we will need to do at some point to fully build the packages people depend on upstack.

@dagood
Copy link
Member

dagood commented Jan 15, 2019

Status:

I worked on this for a while. I'm able to make CoreFX build AllConfigurations on linux after a few changes. WIP branch: master...dagood:corefx-all

Initially I tried to use a single command to build -allconfigurations and the vertical for the current platform within the same build context. That has complications (dotnet/corefx#34332 (review)) so I abandoned it and instead first execute a build command for -allconfigurations, then another build command for the vertical.

The build passes with AllConfigurations included, but it brings in a ton of new prebuilts: 68c0578. Main categories are:

  1. Old versions of CoreFX packages to harvest from.
  2. CoreCLR builds for other platforms (e.g. to compile against to build Windows assemblies on Linux).
  3. A CoreCLR build for the current platform. When I tried to use the source-built CoreCLR, it failed:
    • The locally built version doesn't necessarily line up with a Microsoft-built version for the other platforms.
    • Building AllConfigurations might make the coupling between CoreCLR and CoreFX more brittle than before with only one vertical. I don't know for sure if this caused the errors I was seeing, though. This might have been an issue with portable builds.
    • We could look into adding something like AllConfigurations to CoreCLR as well. ("AllPlatforms", "AllRuntimes"?) If CoreFX only needs CoreCLR's managed outputs, it might be feasible.
  4. A little extra build tooling. (I haven't investigated to see if we can source-build it.)

I experimented with forcing them to be treated as reference packages, but hit problems with resource files in the ILDasm/ILAsm round trip.

@dseefeld
Copy link
Contributor

Fixed with #1173

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-prebuilts Reducing the number of prebuilt packages in the tarball
Projects
None yet
Development

No branches or pull requests

4 participants