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

[RFC] Package multiple versions of llvm tool-chain #48222

Closed
Calandracas606 opened this issue Jan 15, 2024 · 4 comments
Closed

[RFC] Package multiple versions of llvm tool-chain #48222

Calandracas606 opened this issue Jan 15, 2024 · 4 comments
Labels

Comments

@Calandracas606
Copy link

Major llvm releases introduce breaking changes, and it can take a while for software that depends on llvm to adapt.

Debian packages versioned llvm packages, as does llvm's own deb repository to allow multiple versions of the tool-chain to be installed simultaneously

Void already provides multiple versions of libllvm (12 and 15), I propose doing something similar but with more components of the tool-chain, such as clang and libclang.

For example, this would allow Void to build mesa with llvm17, but zig with llvm15 (zig does not support llvm17 yet)

This would also allow void to package new llvm versions, before setting one as the "default" versions. Similar to how void has "linux" and "linux-mainline" packages, void could add llvm17, but keep the llvm meta-package depending on llvm15. This would also require creating new meta-packages for other components of the tool-chain such as clang, and having the meta-package "clang" depend on a new package, "clang15".

llvm's cmake has support for building and installing in this way. /usr/bin/clang is already a symlink to /usr/bin/clang-15

If this seems reasonable, I propose adding these changes to my WIP llvm17 package, #46935

@classabbyamp
Copy link
Member

seems reasonable

@jonpikum
Copy link

Would this open the door to LLVM forks - e.g. ROCm?
Not sure how muddy that might get.
Or would the goal be mainline only?

@Calandracas606
Copy link
Author

Calandracas606 commented Jan 17, 2024

Would this open the door to LLVM forks - e.g. ROCm? Not sure how muddy that might get. Or would the goal be mainline only?

ROCm is already possible, it has no dependancies on system llvm, and can be installed to a directory such as /usr/lib/rocm

I have a working template (x86_64 glibc only) but it is quite messy. I don't think it's a good fit for a void package though.

Copy link

Issues become stale 90 days after last activity and are closed 14 days after that. If this issue is still relevant bump it or assign it.

@github-actions github-actions bot added the Stale label Apr 17, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale May 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants