If you want to play around with some of the improved code generation features of Clang/LLVM 10 for various architectures (MIPS, ARM, RISC-V, etc), but don't want to take the time to set up a full cross compilation environment, you could use the master branch tarballs[1] of Zig, which already are based on LLVM/Clang 10.<p>I <i>just</i> published a blog post[2] about this. You can use `zig cc` in the place of `clang`, and it'll unlock cross compilation.<p>[1]: <a href="https://ziglang.org/download/" rel="nofollow">https://ziglang.org/download/</a><p>[2]: <a href="https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html" rel="nofollow">https://andrewkelley.me/post/zig-cc-powerful-drop-in-replace...</a>
I feel like LLVM 3.4 and GCC 4.8 were around for ages and now they increment major versions every time I reinstall Linux.<p>Is it just me? Why do compiler version numbers increase so faster now?<p>(I read these release notes, it seems quite nice but is it a major version?)
> Clang now defaults to .init_array on Linux. It used to use .ctors if the found GCC installation is older than 4.7.0<p>Oh man, I've seen that check somewhere..<p>namely, I've had to port the init-array-or-ctors decision code from clang to LDC, because LDC was just using LLVM defaults, and LLVM defaulted to ctors on FreeBSD/AArch64, which doesn't support ctors, but that was only noticeable with the LLD linker, because bfd and gold were quietly (!) converting ctors to init_array (!!) as a performance optimization (!!!)<p>ref: <a href="https://github.com/ldc-developers/druntime/pull/146#issuecomment-433229535" rel="nofollow">https://github.com/ldc-developers/druntime/pull/146#issuecom...</a>
Is it feasible to deliver a compiler as a standalone executable (e.g. * .appimage on linux or * .exe on windows)?<p>Edit: couldn't find how to use a raw * next to text without it changing the formatting in HN.