-
-
Notifications
You must be signed in to change notification settings - Fork 260
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
Please make ltsmaster build with recent LLVM #3138
Comments
Duplicate of #3109.
Then please don't use ltsmaster, but deploy a compiler built with itself (e.g., ltsmaster -> v1.17 -> v1.17). Some features like
Backporting support for newer LLVM is always a hassle and may easily cause some regressions not caught by CI. This approach of relying on ltsmaster generally isn't scalable; firstly, ltsmaster is on the verge of not being able to bootstrap latest master anymore (and already isn't on 32-bit hosts) - upstream already requires a 2.079 frontend and libs; we are able to still maintain 2.068 support with minor mods, but noone knows for how long. As soon as that point is reached, one would need a multi-step bootstrap (e.g., ltsmaster ->2.087 -> master), in which case we'd have to backport support for newer LLVM versions to ltsmaster and the intermediate versions... As for new platforms, that's the only reason we really need an ltsmaster right now, but that's an unsound approach too (adding compiler+libraries support in ltsmaster first, then porting that to master (with library changes going upstream, to further complicate matters)). We can already easily cross-compile the libs, we 'only' need to make the compiler itself cross-compilable too to overcome the bootstrapping issue on new platforms. |
We build LDC 4 times: Once the bootstrap compiler, then a regular LDC with the bootstrap compiler, and then once an LDC with static libraries and one with dynamic libraries built with the one from the previous step.
Building LDC with GDC would actually by perfect. That would solve a lot of problems for us. GDMD isn't available (yet) in Debian though, but that's way easier to package than anything else (like DMD itself). Would be super neat if LDC could build without the gdmd wrapper ^^ With that additional information I think it may be sensible to make LDC compile with itself on Debian and hope that it doesn't break like in the past (where LDC was segfaulting when compiling itself due to some LLVM bug, where the only way to get out of that was to re-bootstrap). |
All fine then. 👍
Well I surely wouldn't want all that command-line-normalization stuff replicated in CMake. ;) - A recent wrapper is required too, see #3087. |
Okay, so Debian bootstraps its LDC packages with GDC now :-) |
Nice! As it's a duplicate anyway, I'm going to close. |
Hi!
In Debian, we are always bootstrapping LDC from ltsmaster, in order to pick up new architectures and ensure the compiler is built correctly and consistently (there were issues with that in the bast).
Unfortunately, when switching to LLVM 8, the ltsmaster branch will fail to build the bootstrap compiler.
Can the bootstrap compiler be made to work with recent LLVM versions?
The text was updated successfully, but these errors were encountered: