[Bug 2075477] Re: SRU: Backport LLVM 18.1.8 to Ubuntu LTS

Zixing Liu 2075477 at bugs.launchpad.net
Mon Nov 25 17:41:50 UTC 2024


Asked for a review and sponsorship from the Security team.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/2075477

Title:
  SRU: Backport LLVM 18.1.8 to Ubuntu LTS

Status in llvm-toolchain-18 package in Ubuntu:
  Confirmed
Status in llvm-toolchain-18 source package in Focal:
  Confirmed
Status in llvm-toolchain-18 source package in Jammy:
  Confirmed
Status in llvm-toolchain-18 source package in Noble:
  Fix Committed

Bug description:
  SRU: Backport LLVM 18.1.8 to Ubuntu 24.04 LTS

  [ Impact ]

   * A newer Clang/LLVM version will be available for older releases as
  a non-default LLVM selection. This is particularly requested for
  building Firefox.

   * On newer releases which had an older LLVM 18 release: some general
  bug fixes and improvements that release note may or may not mention:
  https://discourse.llvm.org/t/18-1-8-released/79725 (and mostly about
  PowerPC fixes in 18.1.7).

  [ Test Plan ]

   * Run autopkgtests on reverse dependencies.

   * On LTS releases which don't currently have LLVM 18, we can just
  examine the builtin unittest results, the unit tests don't need to
  have a 100% pass rate because that's impossible even for the upstream
  sometimes.

  [ Where problems could occur ]

   * LLVM is a very large piece of software with a lot of moving parts.
  A lot could go wrong even in a minor release: optimizer
  misoptimizations, Clang behavior changes, library linkage changes,
  C/C++ UB (undefined behavior) handling changes, on-disk IR format
  change (maybe compatible/upgradable), change of "internal" C++ API
  parameters, and change of C API behaviors.

   * In the backport, since we will need to apply extra patches for LLVM
  to compile in an older LTS, more LLVM breakages may happen unnoticed
  as we don't really care about unittests provided by LLVM (because a
  lot of them don't function correctly on non-amd64 and non-arm64
  platforms; a lot of LIT tests may require the build system to have the
  same environment as the upstream CI, which is by itself a moving
  target.).

   * In Focal backport, a RISC-V patch was added to fix LLVM code
  generation and internal linker behavior when targeting RISC-V. This is
  needed because LLVM is by default a cross-compiler that could generate
  any supported machine code on any supported platform (we also enabled
  LLVM Orc JIT remoting functionality, which allows LLVM JIT to
  transform LLVM IR into machine code over the network). This may pose
  extra risks since our binutils on Focal only supports RISC-V ABI v2.0
  while LLVM 18 speaks RISC-V ABI v2.1 (whose linker identity string is
  incompatible with v2.0, which is quite counter-intuitive). The patch
  is needed for older binutils to correctly link the RISC-V binaries
  when the RISC-V targets contains these RISC-V standard CPU extensions:
  +I (i2p0) +M (i2p0) +A (i2p0) +F (i2p0) +D (i2p0) +Zicsr (i2p0 when
  using +G with binutils in 20.04, otherwise not understood with i2p1)
  +Zifencei +Zipause

  [ Other Info ]

   * [Noble-only] A test rebuild using these packages was done as
  described in LP: #2076024.

   * [Noble-only] The llvm-18 testsuite run during the build doesn't
  show regressions.

   * [Noble-only] The update exposes an underlinking of bpftrace, which
  should be SRUed at the same time. See LP: #2081848

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-18/+bug/2075477/+subscriptions




More information about the Ubuntu-sponsors mailing list