mbox series

[00/11] clang/llvm: Upgrade to 23.1.0

Message ID 20260830125853.1139807-1-sunilkumar.dora@windriver.com
Headers show
Series clang/llvm: Upgrade to 23.1.0 | expand

Message

Dora, Sunil Kumar Aug. 30, 2026, 12:58 p.m. UTC
From: Sunil Dora <sunilkumar.dora@windriver.com>

This upgrades clang/llvm from 22.1.8 to 23.1.0 and fixes the fallout
found while testing the result.

The carried LLVM patch stack goes from 41 to 35: seven dropped
because 23.1.0 already contains the fix or the code they patched no
longer exists, three reworked for LLVM 23, and one added for a 32-bit
x86 build break, already merged in llvm-project.

Please apply with git am --keep-cr: patch 8 fixes an ovmf file that
uses CRLF line endings, and plain git am corrupts the patch.

I have also reported the underlying bugs upstream:
  llvm float16 fix, merged:
    https://github.com/llvm/llvm-project/pull/219675
  ovmf fix, sent to edk2:
    https://github.com/tianocore/edk2/pull/13038
  pango warning, the root cause is in GLib, reported to both:
    https://gitlab.gnome.org/GNOME/glib/-/issues/4038
    https://gitlab.gnome.org/GNOME/pango/-/issues/900
  vulkan-samples warning, which is a real bug in their code:
    https://github.com/KhronosGroup/Vulkan-Samples/issues/1570

Tested: oe-selftest clang suites on qemuarm, qemuarm64, qemux86,
qemux86-64 and qemuriscv64 on the autobuilder, musl images on qemux86
and qemuarm64, a qemux86 world build with TOOLCHAIN=clang, 32-bit
multilib, and core-image-minimal testimage runs.

Deepesh Varatharajan (2):
  rust: Fix build and oe-selftest failures with LLVM 23
  clang/llvm: Ignore tests fail with clang/llvm 23 upgrade

Sunil Dora (9):
  clang/llvm: Upgrade to 23.1.0 release
  spirv-llvm-translator: Upgrade to 23.1.0
  openmp: Build via the LLVM runtimes entry point
  rust: Do not pass the removed x86 amx-tf32 feature to LLVM 23
  clang: Disable clangd's decision-forest completion model on powerpc
  pango: Don't turn clang 23's -Wunused-but-set-global into an error
  ovmf: Fix memcpy alias prototype for clang 23
  vulkan-samples: Don't turn clang 23's -Wdangling-gsl into an error
  gettext: Export a fully-flagged Objective-C compiler

 meta/conf/distro/include/maintainers.inc      |   2 +-
 meta/lib/oeqa/selftest/cases/clang.py         |  10 +
 meta/lib/oeqa/selftest/cases/rust.py          |   1 +
 ...t-env.in-do-not-add-C-CXX-parameters.patch |  17 +-
 meta/recipes-core/gettext/gettext_1.0.bb      |   5 +
 ...sicLib-fix-memcpy-alias-prototype-fo.patch |  35 +
 meta/recipes-core/ovmf/ovmf_git.bb            |   1 +
 ...ify-cross-compilation.-Don-t-use-na.patch} |   6 +-
 ...ibunwind-headers-when-LIBCXXABI_LIBU.patch |  60 --
 ...-support-a-new-embedded-linux-target.patch | 309 --------
 ...env-override-of-exe-and-libdir-path.patch} |   4 +-
 ...-driver-Check-sysroot-for-ldso-path.patch} |  14 +-
 ...ools.cpp-Add-lssp_nonshared-on-musl.patch} |   6 +-
 ...5-clang-Prepend-trailing-to-sysroot.patch} |  10 +-
 ...fine-releative-gcc-installation-dir.patch} |  10 +-
 ...d-and-ldl-along-with-lunwind-for-st.patch} |  10 +-
 ...-Check-for-atomic-double-intrinsics.patch} |   4 +-
 ...ure-for-packages-using-find_package.patch} |  20 +-
 ...e-dir-location-for-cross-toolchains.patch} |   4 +-
 ...dyld-prefix-when-checking-sysroot-f.patch} |  18 +-
 ...clang-Use-python3-in-python-scripts.patch} |   6 +-
 ...-anchor-for-adding-OE-distro-vendor.patch} |  37 +-
 ...ple-for-non-debian-multiarch-linux-.patch} |   9 +-
 ...ibunwind-Added-unw_backtrace-method.patch} |   8 +-
 ...016-lldb-Link-with-libatomic-on-x86.patch} |   4 +-
 ...ot-use-backtrace-APIs-on-non-glibc-l.patch |  68 --
 ...mpiler-rt-Enable-__int128-for-ppc32.patch} |  26 +-
 ...t-use-cmake-infra-to-detect-libzstd.patch} |   8 +-
 ...-Fix-stat-struct-s-size-for-O32-ABI.patch} |   6 +-
 ...cpp-ARMLibDirs-search-also-in-lib32.patch} |  10 +-
 ...-OE-specific-ABI-triple-for-N32-ABI.patch} |  63 +-
 ...nwind.pc.in-and-llvm-config-scripts.patch} |  12 +-
 ...pect-LLVM_LIBDIR_SUFFIX-like-other-.patch} |  17 +-
 ...o-not-pass-target-to-clang-compiler.patch} |   4 +-
 ...-sort-ClassInfo-lists-by-name-as-we.patch} |   4 +-
 ...ve-LLVM_LDFLAGS-from-ldflags-output.patch} |   4 +-
 ...de-sync_fetch_and_-for-any-pre-ARMv.patch} |   6 +-
 ...de-uptr-sptr-typedefs-on-Mips-Linux.patch} |   8 +-
 ...-headers-in-the-debug-info-when-bui.patch} |   6 +-
 ..._HAVE_OPT_VIEWER_MODULES-externally.patch} |   6 +-
 ...ang-tblgen-if-it-is-actually-needed.patch} |   8 +-
 ...ymlink-path-for-libcc-when-LLVM_ENA.patch} |   8 +-
 ...ix-sysroot-based-compiler-rt-search.patch} |  15 +-
 ...> 0034-guard-clang-tools-extra-test.patch} |  47 +-
 ...ng-block-when-searching-for-noreturn.patch |  41 --
 ...e-float16-on-32-bit-x86-without-SSE2.patch |  36 +
 ...UNKNOWN-elements-of-OffloadArch-enum.patch | 274 --------
 ...e-__gnu_unwind_frame-in-cxa_personal.patch |  33 -
 ...te-exit-fold-candidates-in-determini.patch |  71 --
 meta/recipes-devtools/clang/clang_git.bb      |   4 +
 meta/recipes-devtools/clang/common-clang.inc  |   4 +-
 meta/recipes-devtools/clang/common.inc        |  78 +--
 meta/recipes-devtools/clang/openmp_git.bb     |   5 +-
 ...ommits-from-rust-Fix-selftest-llvm23.patch | 661 ++++++++++++++++++
 ...llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch |  38 +
 meta/recipes-devtools/rust/rust-source.inc    |   2 +
 ...ror-on-clang-s-unused-but-set-global.patch |  28 +
 meta/recipes-graphics/pango/pango_1.58.0.bb   |   1 +
 ...1.5.bb => spirv-llvm-translator_23.1.0.bb} |   6 +-
 .../vulkan/vulkan-samples_git.bb              |   4 +-
 60 files changed, 1109 insertions(+), 1113 deletions(-)
 create mode 100644 meta/recipes-core/ovmf/ovmf/0005-CryptoPkg-IntrinsicLib-fix-memcpy-alias-prototype-fo.patch
 rename meta/recipes-devtools/clang/clang/{0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch => 0001-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch} (90%)
 delete mode 100644 meta/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch
 delete mode 100644 meta/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch
 rename meta/recipes-devtools/clang/clang/{0004-llvm-allow-env-override-of-exe-and-libdir-path.patch => 0002-llvm-allow-env-override-of-exe-and-libdir-path.patch} (96%)
 rename meta/recipes-devtools/clang/clang/{0005-clang-driver-Check-sysroot-for-ldso-path.patch => 0003-clang-driver-Check-sysroot-for-ldso-path.patch} (87%)
 rename meta/recipes-devtools/clang/clang/{0006-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch => 0004-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch} (86%)
 rename meta/recipes-devtools/clang/clang/{0007-clang-Prepend-trailing-to-sysroot.patch => 0005-clang-Prepend-trailing-to-sysroot.patch} (81%)
 rename meta/recipes-devtools/clang/clang/{0009-clang-Define-releative-gcc-installation-dir.patch => 0006-clang-Define-releative-gcc-installation-dir.patch} (94%)
 rename meta/recipes-devtools/clang/clang/{0010-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch => 0007-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch} (86%)
 rename meta/recipes-devtools/clang/clang/{0011-Check-for-atomic-double-intrinsics.patch => 0008-Check-for-atomic-double-intrinsics.patch} (91%)
 rename meta/recipes-devtools/clang/clang/{0012-cmake-Fix-configure-for-packages-using-find_package.patch => 0009-cmake-Fix-configure-for-packages-using-find_package.patch} (89%)
 rename meta/recipes-devtools/clang/clang/{0013-clang-Fix-resource-dir-location-for-cross-toolchains.patch => 0010-clang-Fix-resource-dir-location-for-cross-toolchains.patch} (95%)
 rename meta/recipes-devtools/clang/clang/{0014-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch => 0011-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch} (88%)
 rename meta/recipes-devtools/clang/clang/{0015-clang-Use-python3-in-python-scripts.patch => 0012-clang-Use-python3-in-python-scripts.patch} (90%)
 rename meta/recipes-devtools/clang/clang/{0016-llvm-clang-Insert-anchor-for-adding-OE-distro-vendor.patch => 0013-llvm-clang-Insert-anchor-for-adding-OE-distro-vendor.patch} (91%)
 rename meta/recipes-devtools/clang/clang/{0018-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch => 0014-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch} (86%)
 rename meta/recipes-devtools/clang/clang/{0019-libunwind-Added-unw_backtrace-method.patch => 0015-libunwind-Added-unw_backtrace-method.patch} (89%)
 rename meta/recipes-devtools/clang/clang/{0020-lldb-Link-with-libatomic-on-x86.patch => 0016-lldb-Link-with-libatomic-on-x86.patch} (92%)
 delete mode 100644 meta/recipes-devtools/clang/clang/0017-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch
 rename meta/recipes-devtools/clang/clang/{0021-compiler-rt-Enable-__int128-for-ppc32.patch => 0017-compiler-rt-Enable-__int128-for-ppc32.patch} (77%)
 rename meta/recipes-devtools/clang/clang/{0022-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch => 0018-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch} (91%)
 rename meta/recipes-devtools/clang/clang/{0023-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch => 0019-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch} (91%)
 rename meta/recipes-devtools/clang/clang/{0024-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch => 0020-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch} (98%)
 rename meta/recipes-devtools/clang/clang/{0025-clang-llvm-Add-OE-specific-ABI-triple-for-N32-ABI.patch => 0021-clang-llvm-Add-OE-specific-ABI-triple-for-N32-ABI.patch} (60%)
 rename meta/recipes-devtools/clang/clang/{0026-llvm-Add-libunwind.pc.in-and-llvm-config-scripts.patch => 0022-llvm-Add-libunwind.pc.in-and-llvm-config-scripts.patch} (84%)
 rename meta/recipes-devtools/clang/clang/{0027-scan-build-py-respect-LLVM_LIBDIR_SUFFIX-like-other-.patch => 0023-scan-build-py-respect-LLVM_LIBDIR_SUFFIX-like-other-.patch} (90%)
 rename meta/recipes-devtools/clang/clang/{0028-compiler-rt-Do-not-pass-target-to-clang-compiler.patch => 0024-compiler-rt-Do-not-pass-target-to-clang-compiler.patch} (91%)
 rename meta/recipes-devtools/clang/clang/{0029-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch => 0025-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch} (92%)
 rename meta/recipes-devtools/clang/clang/{0030-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch => 0026-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch} (92%)
 rename meta/recipes-devtools/clang/clang/{0031-compiler-rt-Exclude-sync_fetch_and_-for-any-pre-ARMv.patch => 0027-compiler-rt-Exclude-sync_fetch_and_-for-any-pre-ARMv.patch} (95%)
 rename meta/recipes-devtools/clang/clang/{0032-compiler-rt-Hardcode-uptr-sptr-typedefs-on-Mips-Linu.patch => 0028-Hardcode-uptr-sptr-typedefs-on-Mips-Linux.patch} (86%)
 rename meta/recipes-devtools/clang/clang/{0034-Revert-libc-Remap-headers-in-the-debug-info-when-bui.patch => 0029-Revert-libc-Remap-headers-in-the-debug-info-when-bui.patch} (89%)
 rename meta/recipes-devtools/clang/clang/{0036-Don-t-expose-LLVM_HAVE_OPT_VIEWER_MODULES-externally.patch => 0030-Don-t-expose-LLVM_HAVE_OPT_VIEWER_MODULES-externally.patch} (86%)
 rename meta/recipes-devtools/clang/clang/{0037-clang-Only-build-clang-tblgen-if-it-is-actually-need.patch => 0031-Only-build-clang-tblgen-if-it-is-actually-needed.patch} (81%)
 rename meta/recipes-devtools/clang/clang/{0038-llvm-libgcc-Fix-symlink-path-for-libcc-when-LLVM_ENA.patch => 0032-llvm-libgcc-Fix-symlink-path-for-libcc-when-LLVM_ENA.patch} (93%)
 rename meta/recipes-devtools/clang/clang/{0041-Consolidate-and-fix-sysroot-based-compiler-rt-search.patch => 0033-Consolidate-and-fix-sysroot-based-compiler-rt-search.patch} (91%)
 rename meta/recipes-devtools/clang/clang/{0042-guard-clang-tools-extra-test.patch => 0034-guard-clang-tools-extra-test.patch} (83%)
 delete mode 100644 meta/recipes-devtools/clang/clang/0035-Prevent-revisiting-block-when-searching-for-noreturn.patch
 create mode 100644 meta/recipes-devtools/clang/clang/0035-libc-Disable-float16-on-32-bit-x86-without-SSE2.patch
 delete mode 100644 meta/recipes-devtools/clang/clang/0039-Rename-UNUSED-and-UNKNOWN-elements-of-OffloadArch-enum.patch
 delete mode 100644 meta/recipes-devtools/clang/clang/0040-libcxxabi-declare-__gnu_unwind_frame-in-cxa_personal.patch
 delete mode 100644 meta/recipes-devtools/clang/clang/0043-LoopUnroll-Iterate-exit-fold-candidates-in-determini.patch
 create mode 100644 meta/recipes-devtools/rust/files/0004-Backport-commits-from-rust-Fix-selftest-llvm23.patch
 create mode 100644 meta/recipes-devtools/rust/files/0005-rustc_codegen_llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch
 create mode 100644 meta/recipes-graphics/pango/pango/0001-meson-don-t-error-on-clang-s-unused-but-set-global.patch
 rename meta/recipes-graphics/spir/{spirv-llvm-translator_22.1.5.bb => spirv-llvm-translator_23.1.0.bb} (87%)