ci: add a Linux whole-program-LTO lane (test-linux-lto)

The `tcache_fiber_migration` reproducer only exercises the bug when the
allocator is statically linked and inlined under whole-program LTO.  None of the
existing lanes build that way, so add a dedicated Linux lane: clang ThinLTO,
`--with-jemalloc-prefix=je_`, and llvm-ar/nm/ranlib (to archive the LTO bitcode)
+ `-fuse-ld=lld`, then `make check`.

Authored in scripts/gen_gh_actions.py; .github/workflows/linux-ci.yml
regenerated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Azat Khuzhin 2026-06-09 21:47:54 +02:00
parent c68b7b1cac
commit 1903f63aaa
2 changed files with 49 additions and 0 deletions

View file

@ -707,4 +707,23 @@ jobs:
make check
test-linux-lto:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install clang, lld and llvm
run: |
sudo apt-get update
sudo apt-get install -y clang lld llvm
- name: Build and test (whole-program ThinLTO, je_ prefix)
run: |
autoconf
CC=clang AR=llvm-ar NM=llvm-nm RANLIB=llvm-ranlib \
./configure --with-jemalloc-prefix=je_ EXTRA_CFLAGS=-flto=thin
make -j3 EXTRA_LDFLAGS="-flto=thin -fuse-ld=lld"
make -j3 tests EXTRA_LDFLAGS="-flto=thin -fuse-ld=lld"
make check