LLVM 7.0.0 Release

I am pleased to announce that LLVM 7 is now available.

Get it here: https://llvm.org/releases/download.html#7.0.0

The release contains the work on trunk up to SVN revision 338536 plus
work on the release branch. It is the result of the community's work
over the past six months, including: function multiversioning in Clang
with the 'target' attribute for ELF-based x86/x86_64 targets, improved
PCH support in clang-cl, preliminary DWARF v5 support, basic support
for OpenMP 4.5 offloading to NVPTX, OpenCL C++ support, MSan, X-Ray
and libFuzzer support for FreeBSD, early UBSan, X-Ray and libFuzzer
support for OpenBSD, UBSan checks for implicit conversions, many
long-tail compatibility issues fixed in lld which is now production
ready for ELF, COFF and MinGW, new tools llvm-exegesis, llvm-mca and
diagtool. And as usual, many optimizations, improved diagnostics, and
bug fixes.

For more details, see the release notes:
https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html
https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html
https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html
https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html

Thanks to everyone who helped with filing, fixing, and code reviewing
for the release-blocking bugs!

Special thanks to the release testers and packagers: Bero
Rosenkränzer, Brian Cain, Dimitry Andric, Jonas Hahnfeld, Lei Huang
Michał Górny, Sylvestre Ledru, Takumi Nakamura, and Vedant Kumar.

For questions or comments about the release, please contact the
community on the mailing lists. Onwards to LLVM 8!

Cheers,
Hans

Hi Hans,

Thanks a lot for the effort.
I'm curious if binaries for other systems will appear there (Ubuntu, macOS)?

Also, more general question:
I see that different releases have different sets of pre-built binaries,
so I'm curious what are the reasons behind?

Cheers,
Alex.

Looks like the apt repos for ubuntu are not available yet:


W: The repository '[http://apt.llvm.org/trusty](http://apt.llvm.org/trusty) llvm-toolchain-trusty-7.0 Release' does not have a Release file.
W: [http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg](http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg): Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
E: Failed to fetch [http://apt.llvm.org/trusty/dists/llvm-toolchain-trusty-7.0/main/binary-amd64/Packages](http://apt.llvm.org/trusty/dists/llvm-toolchain-trusty-7.0/main/binary-amd64/Packages)  404  Not Found
E: Failed to fetch [http://apt.llvm.org/trusty/dists/llvm-toolchain-trusty-7.0/main/binary-i386/Packages](http://apt.llvm.org/trusty/dists/llvm-toolchain-trusty-7.0/main/binary-i386/Packages)  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

My mistake. Right after I sent this, I noticed that the URLs have changed to drop the “.0”.

Alex,

I have built ubuntu binaries for the last couple of releases. I apologize – I haven’t built those new binaries yet, I only have uploaded the SLES ones.

I have an ubuntu 14 tarball that I’ll upload today. I will work on getting ubuntu 16 or 17 next. The dpkg/APT repos might be a good substitute, though.

Hans, apologies – I should’ve asked to hold the 7.0.0 release for those ubuntu tarballs, I suppose they’re one of the more popular downloads.

Hi Hans,

Thanks a lot for the effort.
I’m curious if binaries for other systems will appear there (Ubuntu, macOS)?

Sorry for the delay with the macOS binaries. I’ve just uploaded these. They should be available from the downloads page soon.

best,
vedant

I'm a bit curious as well. I would expect this to be an automated process but since every single release of LLVM has binaries for different platforms or versions available compared to the previous release I looks like a manual process.

No problem, just let me know when they're ready and I'll add them.

Thanks,
Hans

Yes, it's a manual process. The binaries are build and tested by
volunteers, and the set of folks who volunteers differs a little
between releases.

The pre-built binaries are really mostly for users who want to try out
the release quickly. We expect most users to get the compiler through
their distro (except on Windows where these are the official
binaries).

Yes, it's a manual process. The binaries are build and tested by
volunteers, and the set of folks who volunteers differs a little
between releases.

I would assume LLVM has some kind of CI infrastructure. That should be able to build the release binaries.

The pre-built binaries are really mostly for users who want to try out
the release quickly. We expect most users to get the compiler through
their distro (except on Windows where these are the official
binaries).

The problem is, depending on which operating system and version you use you might not get updates. For example, Travis CI is stuck at an ancient version of Ubuntu and only provides LLVM 5.0, as far as I can see.

Yes, it’s a manual process. The binaries are build and tested by
volunteers, and the set of folks who volunteers differs a little
between releases.

I would assume LLVM has some kind of CI infrastructure. That should be
able to build the release binaries.

The pre-built binaries are really mostly for users who want to try out
the release quickly. We expect most users to get the compiler through
their distro (except on Windows where these are the official
binaries).

The problem is, depending on which operating system and version you use
you might not get updates. For example, Travis CI is stuck at an ancient
version of Ubuntu and only provides LLVM 5.0, as far as I can see.

apt.llvm.org works fine for travis. See for example https://github.com/ziglang/zig/blob/073f7ebb0e2168d04212fd855235c3543f86a2be/ci/travis_linux_before_install

That requires "sudo" which is not supported in containers. The virtual machines are slower and requires more resources.

I think you can probably just do the command without sudo if you’re in a container.

Uploaded ubuntu 14:

dec5ca53043c80c1c6e90c0473df84f0182d80af clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz

Ubuntu 16:

a2a2768b04e1d561e6f9a1a2d525eda7aae18624 clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz

Thanks! I've added these to the release page, but it can take an hour
or so before it shows up because of the CDN cache.

Hi Hans,

we have uploaded tarballs for ARM and AArch64 targets:

a20ea3fe482e754a61ccb37c67456ad1 clang+llvm-6.0.1-aarch64-linux-gnu.tar.xz
f37b132c3dfb3b776524980be5af3a76 clang+llvm-6.0.1-armv7a-linux-gnueabihf.tar.xz

and

47a9a9bb02d41581e6804b98918188f6 clang+llvm-7.0.0-aarch64-linux-gnu.tar.xz
e639d8f5dc58be5cf44d017fd5eefd6c clang+llvm-7.0.0-armv7a-linux-gnueabihf.tar.xz

Yvan

Thanks! I've added these. They should be visible on the web page once
the CDN cache clears.

Thanks - I tested both versions 6.0.1 and 7.0.0 on armv7a (odroid) and aarch64 (HiKey 960 from 96Boards) - works fine!

By the way, for those who use Collective Knowledge framework, I also added two related CK packages to automate installation of these versions on different platforms (on Linux, Windows and MacOS with x86 or Arm). You can check them as follows:

$ ck pull repo:ck-env
$ ck pull repo:ctuning-programs

$ ck install package:compiler-llvm-6.0.1-universal
$ ck install package:compiler-llvm-7.0.0-universal

$ ck virtual env --tags=compiler,llvm

$ ck compile program:cbench-automotive-susan
$ ck run program:cbench-automotive-susan

Cheers,
Grigori