llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.69k stars 11.87k forks source link

Platforms for release archives are not consistent across releases #60201

Open varungandhi-src opened 1 year ago

varungandhi-src commented 1 year ago

From the Releases page:

LLVM 15.0.7

clang+llvm-15.0.7-arm64-apple-darwin22.0.tar.xz
clang+llvm-15.0.7-powerpc64le-linux-rhel-8.4.tar.xz
clang+llvm-15.0.7-powerpc64le-linux-ubuntu-18.04.tar.xz
clang+llvm-15.0.7-x86_64-apple-darwin21.0.tar.xz 

LLVM 15.0.6

clang+llvm-15.0.6-aarch64-linux-gnu.tar.xz
clang+llvm-15.0.6-arm64-apple-darwin21.0.tar.xz
clang+llvm-15.0.6-armv7a-linux-gnueabihf.tar.xz
clang+llvm-15.0.6-powerpc64-ibm-aix-7.2.tar.xz
clang+llvm-15.0.6-powerpc64le-linux-rhel-8.4.tar.xz
clang+llvm-15.0.6-powerpc64le-linux-ubuntu-18.04.tar.xz
clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz 

LLVM 15.0.5

clang+llvm-15.0.5-arm64-apple-darwin21.0.tar.xz
clang+llvm-15.0.5-powerpc64-ibm-aix-7.2.tar.xz
clang+llvm-15.0.5-powerpc64le-linux-rhel-8.4.tar.xz
clang+llvm-15.0.5-powerpc64le-linux-ubuntu-18.04.5.tar.xz
clang+llvm-15.0.5-x86_64-linux-gnu-ubuntu-18.04.tar.xz 

LLVM 15.0.0

clang+llvm-15.0.0-aarch64-linux-gnu.tar.xz
clang+llvm-15.0.0-amd64-pc-solaris2.11.tar.xz
clang+llvm-15.0.0-arm64-apple-darwin21.0.tar.xz
clang+llvm-15.0.0-armv7a-linux-gnueabihf.tar.xz
clang+llvm-15.0.0-powerpc64-ibm-aix-7.2.tar.xz
clang+llvm-15.0.0-powerpc64le-linux-rhel-8.4.tar.xz
clang+llvm-15.0.0-powerpc64le-linux-ubuntu-18.04.6.tar.xz
clang+llvm-15.0.0-sparc64-unknown-linux-gnu.tar.xz
clang+llvm-15.0.0-sparcv9-sun-solaris2.11.tar.xz
clang+llvm-15.0.0-x86_64-apple-darwin.tar.xz
clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz 

Some weird things:

These kinds of factors make consuming pre-built archives from other projects difficult. For example, when consuming LLVM via Bazel in https://github.com/grailbio/bazel-toolchain/blob/master/toolchain/internal/llvm_distributions.bzl, you get seemingly odd errors with certain versions due to the LLVM version x OS version matrix being so inconsistently filled.

I understand Bazel is not officially supported, but it seems any downstream consumer of the archives would run into the same problem.

asl commented 1 year ago

@varungandhi-src These binaries are built by volunteers on best-effort manner, therefore there is no guarantees which binaries are available for which release, etc. In general you should not rely on their presence for any particular version.

Tagging @tstellar

royjacobson commented 1 year ago

If you want to use up to date LLVM with bazel, maybe also take a look at https://github.com/eomii/rules_ll

varungandhi-src commented 1 year ago

These binaries are built by volunteers on best-effort manner

Understood. Is this due to a limitation of appropriate infrastructure not being available? Or is the problem that infrastructure is available but nobody has yet implemented the packaging code which runs on every release?

asl commented 1 year ago

These binaries are built by volunteers on best-effort manner

Understood. Is this due to a limitation of appropriate infrastructure not being available? Or is the problem that infrastructure is available but nobody has yet implemented the packaging code which runs on every release?

Actually, both. See e.g. https://discourse.llvm.org/t/using-github-actions-for-releasing/67666/1