-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Slotted LLVM ebuilds #3717
Slotted LLVM ebuilds #3717
Conversation
CC @nigoro |
5595686
to
0669038
Compare
Pull Request assignment Areas affected: ebuilds, eclasses, profiles app-vim/llvm-vim: @gentoo/proxy-maint (new package) |
So, good news everyone.
|
30c073a
to
11cbe66
Compare
Introduce a slotted variant of compiler-rt libraries with the slot matching the clang version. This will make it possible to install a new compiler-rt version before upgrading clang to the corresponding version, therefore preserving a working compiler through (even minor) clang upgrades. The alternative was to replace the complete version number with the major version in the runtime directory path. However, software (e.g. Mesa) hardcodes the default path and therefore breaks when it is changed.
Allow any newer version of libcxx & libomp since both those libraries are not slotted.
Support slotted LLVM versions correctly. Allow any version for 9999, limit to <5 for 17.0.0_rc2 as current git does not work anymore. For the older 13.0.4 branch, just force slot :0 since it does not support 4.0 (the oldest slotted version).
The idea is rather simple. LLVM & clang packages are slotted, and are installed in
/usr/lib/llvm/${SLOT}
prefix. All bindirs are added to PATH via env.d in reverse version order, so newest LLVM is always preferred. An eclass will be provided to make it possible to easily use specific version in revdeps.