LLVM 19.x Release Third-Party Binaries

Thanks! I ll see if i can build an installer and post a patch for build_llvm_release.bat.

Maybe makes sense to do it after flang-new ā†’ flang refactor.

Testing for LLVM 19.1.1 on Linux PPC64LE is now complete. I did not find any regressions.

6578a0828ac6e041976635f4592f1bac4568b673  clang+llvm-19.1.1-powerpc64le-linux-rhel-8.8.tar.xz

The binaries can be found at Release LLVM 19.1.1 Ā· IBM/llvm-project Ā· GitHub.

19.1.1 x86/x64 Windows binaries are ready. Links and sha256 hashes below.

As discussed in the previous thread , Iā€™ve also added these to the github release page .

LLVM-19.1.1-win32.exe
afa2c594f74f9fd3a93db1e0fe7c9c92a76486482cf26458d0d36ab0d48453fd

LLVM-19.1.1-win64.exe
95f03b6a8a0049e29898b0fadf84a0ea252f2e7f1b36db15a81aae11e912f675

clang+llvm-19.1.1-x86_64-pc-windows-msvc.tar.xz
621fc299fceb1bbdae927e355d1073034c9a1bbdda5a46a27e217c56af72f72a

Will we have LLVM-19.1.1-Windows-X64.tar.xz binaries available with all llvm targets built in clang & llc? Just like for 19.1.0 release?

Iā€™m not sure I see point of clang+llvm-*-x86_64-pc-windows-msvc.tar.xz archive when LLVM-*-Windows-X64.tar.xz is much better, as that provides all targets, including commonly used wasm.

@mmozeiko The Windows binaries have been uploaded to the release page now.

1 Like

LLVM 19.1.1 Arm/AArch64 Linux and Windows on Arm binaries have been built and uploaded to
https://snapshots.linaro.org/llvm-toolchain/19/19.1.1/

āžœ sha256sum LLVM-19.1.1-woa64.exe
f256585b8e39cf95ce3191eb4002e269a755217f8492b240653c94c0ae077c8a

āžœ sha256sum clang+llvm-19.1.1-armv7a-linux-gnueabihf.tar.gz
bd1576bfed2f157f0ebc7033c8ee22467292ebad0c43b7fd69935d874cb2d43f

āžœ sha256sum clang+llvm-19.1.1-aarch64-linux-gnu.tar.xz
0549217747dab74103ec3e14cae1bbe09e3a070d0f6c1905b4c8c45d94d7c8cf

No regression since 19.1.0.

Iā€™ve completed release testing for LLVM 19.1.1 on AIX 7.2. No regressions were found.

275352f71e6b057e49f23bb078fb91c27c7d8f67  clang+llvm-19.1.1-powerpc64-ibm-aix-7.2.tar.xz

The binaries are found here: Release LLVM 19.1.1 Ā· IBM/llvm-project Ā· GitHub

LLVM-*-Windows-X64.tar.xz is created by a github action (.github/workflows/release-binaries.yml), which I think is new for the 19 release.

clang+llvm-*-x86_64-pc-windows-msvc.tar.xz is created by llvm/utils/release/build_llvm_release.bat which is what weā€™ve been using to build the official Windows release binaries so far. That also builds the installers (LLVM-19.1.1-win{32,64}.exe).

The situation is a bit confusing for everyone.

One concrete benefit of using the ā€œoriginal binariesā€ is that theyā€™re built with PGO, rpmalloc, etc. so the toolchain is much faster. That script is also a bit stricter about ensuring that (most) tests pass before creating the binaries.

We reduced the number of included targets due to limitations of the NSIS installer framework. I thought people normally used Emscripten for Wasm, but if itā€™s widely useful we can add it back.

Didnā€™t you evaluate an alternative to NSIS? What was the problem with that? Since even if we disable targets we are most likely going to hit that limit again soon.

Yes, that discussion was in Windows release packaging for 19.1.0-rc2 fails with `Internal compiler error #12345: error mmapping datablock to 5517122.` Ā· Issue #101994 Ā· llvm/llvm-project Ā· GitHub

We tried ā€œNSISBIā€ instead of regular NSIS, but apparently that produced an installer not compatible with 7zip, which some users rely on.

Maybe when we hit the limit again weā€™ll have to switch anyway, but we donā€™t know if that will be the next release or in a couple of years.

Thank you for keeping that in mind!
I find this acceptable, as long as we also provide a proper archive with Windows binaries alongside 7-zip-incompatible installer.

I am not trying to minimize this workflow - but to me it seems a bit backwards? Why not offer a installer that can be used as a installer and for the users that needs to unpack stuff with 7zip can dowload a .zip/tar.xz or something like that.

Based on @mstorsjoā€™s previous comment at LLVM 19.1.0-rc2 tagged - #7 by mstorsjo, maybe this limit can be fixed by Meta issue to track changes for adding plugin and LLVM_BUILD_LLVM_DYLIB support for Windows Ā· Issue #109483 Ā· llvm/llvm-project (github.com)

I donā€™t think BUILD_LLVM_DYLIB is an acceptable performance trade-off.

Maybe thatā€™s what weā€™ll end up having to do eventually, but so far the installer has served both purposes, which is convenient.

This is a tangent in this context - but Iā€™m not aware of BUILD_LLVM_DYLIB affecting performance of the built binaries significantly; I would be interested in seeing numbers to the contrary if thatā€™s the case. Sure, dynamic relocations may eat up a little startup time, but I would think that itā€™s negligible in the context of compiling things. (BUILD_SHARED_LIBS with many many sub libraries probably would have a different effect - but nobodyā€™s proposing distributing that.) And itā€™s an absolutely massive saver wrt file size. The main issue here of course is that itā€™s not possible to use in an MSVC style build yet.

LLVM Embedded Toolchain for Arm binaries based on LLVM 19.1.1 can be found here:

Testing for LLVM 19.1.2 on Linux PPC64LE is now complete. I did not find any regressions.

7bf705d3746e407c211a2938285ebcabdd27e49e  clang+llvm-19.1.2-powerpc64le-linux-rhel-8.8.tar.xz

The binaries can be found at Release LLVM 19.1.2 Ā· IBM/llvm-project Ā· GitHub.

1 Like

19.1.2 Intel Windows binaries are ready. Iā€™ve signed and uploaded them to Release LLVM 19.1.2 Ā· llvm/llvm-project Ā· GitHub

1 Like