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

NativeAOT: Removed LLVM ObjWriter and LLVM dependency #99733

Merged
merged 1 commit into from
Mar 14, 2024

Conversation

TIHan
Copy link
Contributor

@TIHan TIHan commented Mar 13, 2024

Now that C# ObjWriter has had a few months to bake, it's time to get rid of the LLVM ObjWriter completely. Briefly talked to @filipnavara about removing the LLVM ObjWriter and he is feeling confident with the C# implementation.

This totally removes the LLVM ObjWriter from the repo. This includes removing the package dependencies and any mention of LLVM ObjWriter in the docs. NativeAOT will not rely on LLVM anymore, with the exception of using coredistools for dev work.

…. Removed all LLVM ObjWriter package references.
Copy link
Contributor

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

@TIHan
Copy link
Contributor Author

TIHan commented Mar 13, 2024

@MichalPetryka
Copy link
Contributor

Does this also remove the dependency of StripSymbols on LLVM?

@TIHan
Copy link
Contributor Author

TIHan commented Mar 14, 2024

Does this also remove the dependency of StripSymbols on LLVM?

It only removes the LLVM ObjWriter dependency. What is StripSymbols in this context? I saw there is iOSStripSymbols - are we using LLVM for this?

@MichalStrehovsky
Copy link
Member

Resolves #74505
Resolves #75636

Does this also remove the dependency of StripSymbols on LLVM?

StripSymbols doesn't depends on LLVM. It depends on some stripping tool, be it from binutils or LLVM. This doesn't affect that. The binary we're stripping is produced by the native linker, not object writer, and we still run the native linker and have no plans to replace that.

@MichalStrehovsky
Copy link
Member

What's the plan for the object writer in the LLVM repo? Do we need to delete it, or will it be dropped next time LLVM is upgraded?

Copy link
Member

@MichalStrehovsky MichalStrehovsky left a comment

Choose a reason for hiding this comment

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

🎈🎈 🥳

@am11
Copy link
Member

am11 commented Mar 14, 2024

Congrats! Huge kudos to @filipnavara. 🎉

cc @shushanhf, @clamp03, @gbalykov, new platforms can skip the llvm objwriter and directly implement it in C#.

@shushanhf
Copy link
Contributor

Congrats! Huge kudos to @filipnavara. 🎉

cc @shushanhf, @clamp03, @gbalykov, new platforms can skip the llvm objwriter and directly implement it in C#.

@am11 Thanks very much.
We had an initial version Native-AOT for LoongArch64 within our local runtime.

@filipnavara
Copy link
Member

@am11 Thanks very much. We had an initial version Native-AOT for LoongArch64 within our local runtime.

Would be something nice to share. I already looked into RV64 support and how more code sharing can be achieved between platforms and NativeAOT/CoreCLR.

@shushanhf
Copy link
Contributor

shushanhf commented Mar 14, 2024

@am11 Thanks very much. We had an initial version Native-AOT for LoongArch64 within our local runtime.

Would be something nice to share. I already looked into RV64 support and how more code sharing can be achieved between platforms and NativeAOT/CoreCLR.

I plan to push a PR after half a year as waiting LLVM amending some LA64's features and we also amend the Native-AOT.

@TIHan
Copy link
Contributor Author

TIHan commented Mar 14, 2024

What's the plan for the object writer in the LLVM repo? Do we need to delete it, or will it be dropped next time LLVM is upgraded?

We should keep the branch, but not update it any further.

@am11
Copy link
Member

am11 commented Mar 14, 2024

We should keep the branch

It was merged to dotnet/llvm-project's main. Even if we delete it from main, it will stay in git history forever. imo, it's better to clean it up and remove the associated packaging infra from that repo's main to avoid confusions.

@TIHan
Copy link
Contributor Author

TIHan commented Mar 14, 2024

It was merged to dotnet/llvm-project's main.

Oh, interesting. That's kind of a bummer. I guess we will remove it.

@TIHan
Copy link
Contributor Author

TIHan commented Mar 14, 2024

Failures are #99725 and unrelated to this PR. Merging.

Thank you again everyone, especially @filipnavara for putting so much effort and thought into this work!

@TIHan TIHan merged commit 5961ee1 into dotnet:main Mar 14, 2024
184 of 190 checks passed
@TIHan TIHan deleted the remove-llvm-objwriter branch March 14, 2024 19:35
@github-actions github-actions bot locked and limited conversation to collaborators Apr 14, 2024
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