Skip to content

Build corelib as part of libraries build. #34664

Merged
mangod9 merged 22 commits intodotnet:masterfrom
mangod9:master
Apr 11, 2020
Merged

Build corelib as part of libraries build. #34664
mangod9 merged 22 commits intodotnet:masterfrom
mangod9:master

Conversation

@mangod9
Copy link
Member

@mangod9 mangod9 commented Apr 7, 2020

Currently there is a separate job for Corelib, but trying to determine if we can just build corelib as part of libraries job

@ghost
Copy link

ghost commented Apr 7, 2020

Tagging @ViktorHofer as an area owner

@ViktorHofer
Copy link
Member

Why not just add a P2P here as a Target BeforeTargets="Build"? https://github.com/dotnet/runtime/blob/master/src/libraries/src.proj#L21

Do we know the exact places where we need CoreLib? I assume we want a P2P in runtime.depproj (or its callers) as well?

cc @safern @ericstj for opinions.

@safern
Copy link
Member

safern commented Apr 7, 2020

Do we know the exact places where we need CoreLib? I assume we want a P2P in runtime.depproj (or its callers) as well?

Corelib is special and doesn't go through the config system, do we want to do that? I rather use the subset feature to keep the change simple and minify risk of breaking people.

@ViktorHofer
Copy link
Member

Corelib is special and doesn't go through the config system, do we want to do that?

The config system shouldn't matter here as a) it isn't imported for System.Private.CoreLib and b) it doesn't do anything when a project doesn't multi-target.

@safern
Copy link
Member

safern commented Apr 8, 2020

The config system shouldn't matter here as a) it isn't imported for System.Private.CoreLib and b) it doesn't do anything when a project doesn't multi-target.

That's true.

Also, how would P2P work with different configurations? Runtime is usually built with different configurations, I know this is managed and just for building and not what we use to run tests or ship, but this could confuse people.

@ViktorHofer
Copy link
Member

@ericstj or @Anipik can answer to that

@mangod9 mangod9 added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Apr 8, 2020
@mangod9
Copy link
Member Author

mangod9 commented Apr 8, 2020

so the job is mostly green with current changes (except for special casing for webassembly). So based on what the recommendation is on how to build corelib we can proceed with this.

@safern
Copy link
Member

safern commented Apr 8, 2020

so the job is mostly green with current changes (except for special casing for webassembly)

I believe the wasm case is special because we don't have support to build System.Private.CoreLib for wasm (it might just work) and we were using the Linux_x64 corelib.

@mangod9 mangod9 removed the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Apr 10, 2020
@mangod9 mangod9 changed the title [WIP] Investigate building corelib as part of libraries build. Build corelib as part of libraries build. Apr 10, 2020
@mangod9
Copy link
Member Author

mangod9 commented Apr 10, 2020

this change is ready to merge. Havent seen an update on the discussion above, but that can be done as a separate change if required. @safern @ViktorHofer please review.

now that its dependent on the mono runtimeFlavor
Copy link
Member

@safern safern left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this nice improvement @mangod9

@safern safern mentioned this pull request Apr 11, 2020
@mangod9 mangod9 merged commit 38c2d55 into dotnet:master Apr 11, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 9, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants