Skip to content

Install LLVM via pinned tarball - #171

Merged
jwinarske merged 10 commits into
v2.0from
fix/pin-llvm
Jun 4, 2026
Merged

Install LLVM via pinned tarball#171
jwinarske merged 10 commits into
v2.0from
fix/pin-llvm

Conversation

@kerberjg

@kerberjg kerberjg commented May 20, 2026

Copy link
Copy Markdown
Collaborator

Features

Build matrix behavior:

  • Builds only with LLVM 18 by default
  • Always builds with LLVM 14+18 on ubuntu-legacy
  • Builds other LLVM versions when the config for that version or the relevant OS have changed

*workaround: in the following cases there are no compatible LLVM tarballs available, so LLVM is installed from the system package manager instead:

  • Ubuntu 20.04 w/ LLVM >= 18
  • Ubuntu 22.04 x86_64 w/ LLVM 14
  • macOS x86_64 w/ LLVM 16, 17, 18
  • macOS arm64 w/ LLVM 16

Build matrix

v OS - LLVM > 14 15 16 17 18 19 20 21 22
Ubuntu (legacy, 20 - x86_64 only)
Ubuntu (22, 24 - x86_64, aarch64)
Fedora (41,42,43 - x86_64 only) - - - -
macOS (14,15) - arm64

^ see reviewer notes at the bottom

Windows has been excluded because it doesn't use LLVM, and is thus unaffected


Takeaways:

  • Fedora seems to be consistently 30% faster than Ubuntu
  • Fedora 41 is past EOL (should we still support it?)
  • macOS standa out because they don't try to compile anything with the toolchain (AFAIK)
  • macOS doesn't check against latest OS version
  • macOS doesn't check against x86_64 arch
  • RHEL is mentioned in some support arrays but not explicitly tested against
  • Often jobs fail due to:
    • Download timeout (we should have a timeout/retry mechanism for this)
    • GHA Runner running out of disk space (shouldn't be happening, but we could still account for this)

Requires #170 to land first - refactor before merging.

TODO:

@kerberjg

Copy link
Copy Markdown
Collaborator Author

Currently features a workaround for ubuntu-legacy (20.04) - in absence of Ubuntu 20 (older glibc) -specialized builds of LLVM (see meta-flutter/llvm-toolchains#1), it will install LLVM from its official APT repository. This might prevent proper version pinning, but hasn't been a problem when testing (also - it's temporary)

@kerberjg kerberjg changed the title Install LLVM via pinned tarball (WIP) Install LLVM via pinned tarball Jun 3, 2026
@kerberjg
kerberjg marked this pull request as ready for review June 3, 2026 16:26
@kerberjg
kerberjg requested a review from jwinarske June 3, 2026 16:27

@jwinarske jwinarske left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop Fedora 41; EOL

@jwinarske

Copy link
Copy Markdown
Contributor

Also on a change this large don’t skip anything; ensure everything is green.

@kerberjg

kerberjg commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator Author

@jwinarske Would it work if I drop Fedora 41 in #173 ? Since that one adds 44 support (and is otherwise ready to go)

@kerberjg

kerberjg commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator Author

@jwinarske CI green on everything

@jwinarske
jwinarske merged commit 3a7e260 into v2.0 Jun 4, 2026
95 of 96 checks passed
@jwinarske
jwinarske deleted the fix/pin-llvm branch June 4, 2026 04:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ubuntu 24.04 LLVM installation fails

2 participants