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

Add conditional dependency on LLVM packages for Mono #2140

Merged
merged 15 commits into from
Feb 10, 2020

Conversation

directhex
Copy link
Contributor

These are only restored or used when /p:MonoEnableLLVM=true

Creating as draft for now - there's one breakage I want help with (the restore only copies LLVM to the staging tree the second time it's run)

@directhex
Copy link
Contributor Author

Oh, forgot to add it to CI, too. I'll do that...

@directhex directhex force-pushed the mono-llvm-enablement branch 3 times, most recently from 7821c22 to 5eec654 Compare January 24, 2020 18:50
@@ -150,5 +150,29 @@
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>4e8d82a2bdc31db2a3d392b4021b0c9ab19a4228</Sha>
</Dependency>
<Dependency Name="runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk" Version="6.0.1-alpha.1.20073.2">
Copy link
Member

Choose a reason for hiding this comment

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

I don't think we need to list all platforms/architectures here, the runtime.native.System.IO.Ports on line 19 doesn't do it either. We might need to change how we're producing that package.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

runtime.native.System.IO.Ports is a metapackage, and we don't have a metapackage for LLVM. We can add one, sure

Copy link
Member

Choose a reason for hiding this comment

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

Yeah I think we should do that.

Copy link
Contributor

Choose a reason for hiding this comment

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

We should as the same package will be used for AOT tooling packages

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We're going to use one metapackage to pull in AOT support (i.e. llc and opt binaries) for every single supported architecture in one go?

Copy link
Contributor

Choose a reason for hiding this comment

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

No, it will be RID driven for host (and possibly target) but the package should be identical to our internal dependency

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's the split already in place here - runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk contains LLVM for build-time (i.e. what we need internally to compile LLVM JIT Mono), runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools contains opt and llc, the two binaries needed for LLVM AOT support (i.e. end users would receive this, one way or another). If we want to rename things, I'm open to suggestions.

@directhex directhex force-pushed the mono-llvm-enablement branch 2 times, most recently from 67a6a44 to 7069651 Compare January 24, 2020 20:48
@directhex
Copy link
Contributor Author

Okay. We're green, and building LLVM Mono. I'm going to try and get LLVM metapackages generated today, for cleaner dependency handling, but will mark this PR as not-draft tomorrow regardless of status (the metapackage is a nice-to-have, but explicitly not a blocker on functional LLVM builds)

src/mono/mono.proj Outdated Show resolved Hide resolved
src/mono/mono.proj Outdated Show resolved Hide resolved
src/mono/llvm/llvm-init.proj Outdated Show resolved Hide resolved
src/mono/llvm/llvm-init.proj Show resolved Hide resolved
@directhex
Copy link
Contributor Author

Those aren't my failures, they're the usual infra breakage.

I'm trying & failing to figure out how to drive the metapackage ("lineup package") creation functionality in Arcade.

@directhex directhex marked this pull request as ready for review January 29, 2020 19:03
eng/pipelines/mono/templates/build-job.yml Outdated Show resolved Hide resolved
@directhex
Copy link
Contributor Author

The hell are some of these failures? I haven't touched CoreCLR Windows

@steveisok steveisok mentioned this pull request Feb 4, 2020
24 tasks
@directhex
Copy link
Contributor Author

I can't get Helix to give me the failure log from that run, I just get blob not found errors

@directhex
Copy link
Contributor Author

OK well I guess the failures I was getting were flakes

@steveisok steveisok merged commit 8504477 into dotnet:master Feb 10, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 11, 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.

7 participants