llvmPackages_{12,13,14,15,16,17}: drop#440273
Conversation
|
Sorry for the typo @niklaskorz 😅 |
niklaskorz
left a comment
There was a problem hiding this comment.
re shader-slang, I'll reference the discussion in #436961
TL;DR: the LLVM mode is in a weird (non-functional) state anyway, so we'll probably have to refactor or remove it. Upstream currently doesn't seem capable to keep up with recent LLVM versions, so removing withLLVM might even be preferred for now.
I'm fine with simply marking it broken here so we can defer that decision.
|
Cool, thank you for the pointer! That is one of the packages I was most worried about so it is good to hear it at least won't be getting any more broken. I think I did not spend too long seeing how much work it would be to get it building with newer LLVM versions, so it's possible that it might be an upstreamable patch away from working. But I lack the context to know whether it'd be worth the energy, beyond what they have written down in their docs. I suppose if it's like most use cases for shaders then CPU execution isn't a priority. |
da57f1d to
efabfc2
Compare
|
Thanks for the kind words :) I hope that we can drop old compilers at a more steady pace going forward now that the up‐front cost of catching up has been paid. I believe I have fixed most of the review comments; would appreciate reviewers double‐checking and marking resolved anything they think has been appropriately handled. |
There was a problem hiding this comment.
This can't be folded into the previous conditional in the LLVM 13 removal, but needs to be its own, unconditional list.
There was a problem hiding this comment.
Good catch, thank you. Will split this up between the two commits.
There was a problem hiding this comment.
Apparently not, since we’ve gone this long without it? It was added in 99eeff0 without explanation. I guess it was intended to resolve… an issue with Musl on PowerPC defining pt_regs?
I don’t know if the LLDB source would still run into this, but this Musl commit implies that it has not been an issue since 2019, regardless of LLVM version. In any case I think we would not accept a patch for an issue with PowerPC and Musl today without it being sent upstream to LLVM or Musl.
The i686 stuff in that patch, I don’t know. It’s not even related to the <sys/procfs.h> issue so I don’t know why it was added there in b4ee532, but I think LLDB on i686 is also marginal enough that any relevant fixes should go upstream, if they’re even still needed. cc @rrbutani who added it.
In any case it would cause a rebuild to port it forward here, of course.
pkgs/development/compilers/llvm/17/libclc/gnu-install-dirs.patch
Outdated
Show resolved
Hide resolved
I do appreciate the effort to get those unified with the rest of the LLVM builds :) But it also definitely exposed how much divergence there was across our wide version range, so I’m happy for the packaging to get a lot less tangled. (Though some of it could have been resolved by just eating rebuilds, of course, but there’s still essential stuff around build system differences and tons of patches that is satisfying to drop.)
You’re right. I think the whole patching machinery should probably be done differently. I have ideas for that, but I need a break from looking at this stuff first. |
3021a45 to
c0e02e5
Compare
Open issue from 2023 about supporting LLVM 15 with no progress, no activity in the repository in almost a year.
17c3d61 to
2dac87b
Compare
|
Everything required here has now been merged into |
|
@emilazy thank you for the awesome work in this PR! Regarding Slang, I agree with your and @niklaskorz's assessment that it's not a high priority:
In case someone does decide to try that in the future, though, shader-slang/slang#8038 should be a good starting point. Here are the upstream LLVM changes that accounts for:
As I mentioned in shader-slang/slang#8028 (comment), that PR did build successfully, but some of the tests did not pass, which is why it wasn't merged back then. |
We currently package ten stable versions of LLVM going back 4½ years. Older versions of LLVM don’t get upstream fixes, and require significant derivation complexity and patching to keep working, especially the further back we go. Dropping them eases the burden of LLVM maintenance and saves a bunch of expensive compiler builds on Hydra.
The packages marked broken or dropped here will be the only remaining users in the tree after the remaining in‐flight PRs are merged. I made varying degrees of effort to get all of them building with newer versions, as per the list of preceding PRs below, but was not successful in these cases. The upstreams have varying degrees of activity. If anyone can get them building with LLVM ≥ 18 then they can be removed from this PR or re‐added after it is merged. I’ve left some notes in the commit messages and code comments where applicable for anyone who wants to try. I do hope that we will drop old compilers more regularly going forward, though, so I wouldn’t recommend making a one‐off heroic effort if it’s expected that it will end up bitrotting again a couple releases down the line. In particular, I hope that we will be able to drop at least LLVM 18 for 26.05.
This concludes my work to drop old compilers for 25.11 – reviews of open PRs are appreciated:
CF_NOESCAPEbug #435148opt(1)#440271cc’ing maintainers of packages marked broken or dropped in this PR:
shader-slang(LLVM backend only) – @niklaskorzfpc(x86_64-darwinonly) – @7c6f434cmrustc-bootstrap– @progval @r-burnsspirv-llvm-translator(LLVM 14–17 versions only) – @gloamingbfc– @figsodaikos– @AtnNnoclgrind– @athascone– nobody 😢dale– @amiloradovskywavm– @ereslibreqrscan– @sayanarijithobbes– @kthielen @thmzltThings done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.