Skip to content

fix(whisper): rebuild the Linux HRX engine on glibc 2.28 for the manylinux SDK link - #822

Merged
zaneni6 merged 1 commit into
mainfrom
fix/whisper-manylinux-glibc-2.28
Oct 21, 2026
Merged

zaneni6 merged 1 commit into
mainfrom
fix/whisper-manylinux-glibc-2.28

Conversation

@tawei-amd

Copy link
Copy Markdown
Collaborator

Problem

The SDK's manylinux_2_28 FLM job (glibc 2.28) fails linking flm against src/lib/hrx/libwhisper_npu.so:

  • __libc_single_threaded@GLIBC_2.32
  • std::ios_base_library_init()@GLIBCXX_3.4.32

The library from #812 (rebuilt in #794) was built on Ubuntu 24.04 with GCC 13.3.0, so it needs glibc 2.32 and GLIBCXX 3.4.32. The previous engine needed glibc 2.15.

Change

Rebuilt the Linux HRX libwhisper_npu.so from FastFlowLM_IRON 315b9cab1 (the commit #812 vendored) with gcc-toolset-13 (GCC 13.3.1 Red Hat) against the TheRock manylinux_2_28 image's glibc 2.28 sysroot and the pinned HRX package (flm-hrx-amdxdna-v2026.10.13). Same engine and kernel sources, same weights; only the toolchain and sysroot change.

before after
max glibc 2.32 2.15
max GLIBCXX 3.4.32 3.4.21
max CXXABI 1.3.11 1.3.11

It passes FLM_DLL/check_abi.sh from AMD-ROCm-Internal/FastFlowLM_IRON#74 (ceilings glibc 2.28, GLIBCXX 3.4.25, CXXABI 1.3.11). NEEDED libraries, the exported std:: pattern and the single __*_finite import match a manylinux-built engine from 40af6930. All 18 hrx_* symbols it imports resolve in the pinned libhrx.so. No aiebu banner.

Testing

On a Strix NPU: an HRX flm built from main with this library, running the CI ASR test (asr_test.py --platform linux-hrx, required prompt verbose_json timestamp_rules). All checks pass.

  • Pooled error rate 7.50% (expected 22.63%), 0 runaways.
  • verbose_json 8/8, timestamp_rules 2/2, prompt 2/2, window_tail 4/4, language 13/13, quiet_log 1/1.
  • The Gemma chat transcriptions also pass. The server log has no aiebu banner and no errors.

The SDK's manylinux_2_28 link itself was not run here.

Not in this PR

  • Only the Linux HRX whisper engine changes. The other Linux HRX engines rebuilt in de3b12a9 need glibc 2.32 to 2.38 (log2@GLIBC_2.29 in qwen3 and gemma) and need the same rebuild.
  • The Linux XRT engines need glibc 2.38 and were never built on a 2.28 host; that needs an XRT dev tree inside a 2.28 image.
  • -march=native is in the engine Makefiles, so the library is tuned to the build host's CPU (AVX-512), as in the previous builds.

🤖 Generated with Claude Code

…linux SDK link

libwhisper_npu.so from f4f9341/ef53ebca was built on Ubuntu 24.04 with GCC
13.3.0, so it needs glibc 2.32 and GLIBCXX 3.4.32 (the previous engine needed
glibc 2.15). The SDK's manylinux_2_28 FLM job (glibc 2.28) fails linking flm
against it on __libc_single_threaded@GLIBC_2.32 and
std::ios_base_library_init()@GLIBCXX_3.4.32.

Rebuilt the Linux HRX engine from FastFlowLM_IRON 315b9cab1 (the commit
ef53ebc vendored) with gcc-toolset-13 (GCC 13.3.1 Red Hat) against the
TheRock manylinux_2_28 image's glibc 2.28 sysroot and the pinned HRX package
flm-hrx-amdxdna-v2026.10.13. Same engine and kernel sources, same weights; only
the toolchain and sysroot change.

Requirements of the new library: glibc 2.15, GLIBCXX 3.4.21, CXXABI 1.3.11,
the same as the manylinux-built engines before de3b12a. It passes
FLM_DLL/check_abi.sh (glibc 2.28, GLIBCXX 3.4.25, CXXABI 1.3.11). NEEDED
libraries, the exported std:: pattern and the single __*_finite import match a
manylinux-built engine from 40af693; all 18 hrx_* symbols it imports resolve
in the pinned libhrx.so. No aiebu banner.

Tested on a Strix NPU: HRX flm built from main with this library, the CI ASR
test (asr_test.py --platform linux-hrx, required prompt, verbose_json and
timestamp_rules): all checks pass. Pooled error rate 7.50% (expected 22.63%),
0 runaways, verbose_json 8/8, timestamp_rules 2/2, prompt 2/2, window_tail
4/4, language 13/13, quiet_log 1/1; the Gemma chat transcriptions also pass.

Only the Linux HRX engine changes. The other Linux HRX engines rebuilt in
de3b12a and the Linux XRT engines (glibc 2.38) still need the same rebuild;
see AMD-ROCm-Internal/FastFlowLM_IRON#74 for a guard that catches this.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@zaneni6
zaneni6 merged commit 3e85419 into main Oct 21, 2026
36 checks passed
tawei-amd pushed a commit to tawei-amd/FastFlowLM that referenced this pull request Oct 22, 2026
de3b12a rebuilt every HRX engine on Ubuntu 24.04 / GCC 13.3, so the libs
needed glibc 2.32-2.38 and GLIBCXX 3.4.32. The SDK's manylinux_2_28 FLM
job (glibc 2.28) fails linking flm against them
(__libc_single_threaded@GLIBC_2.32, ios_base_library_init@GLIBCXX_3.4.32,
log2@GLIBC_2.29). ROCm#822 fixed libwhisper_npu.so; this does the other 27.

Rebuilt from FastFlowLM_IRON main (2d9079194) with gcc-toolset-13 against
the ghcr.io/rocm/therock_build_manylinux_x86_64 sysroot, the same
toolchain as FLM_DLL/build_manylinux.sh, and the pinned HRX package
flm-hrx-amdxdna-v2026.10.13. Newer libstdc++ symbols come from
libstdc++_nonshared.a, so the libs now need at most glibc 2.22,
GLIBCXX 3.4.21 and CXXABI 1.3.11. Checked with FLM_DLL/check_abi.sh
(ceiling glibc 2.28 / GLIBCXX 3.4.25 / CXXABI 1.3.11): 28/28 pass.

Tested on the NPU with Gemma4-E2B and Gemma4-12B (gemma4e/gemma4_12b
engines plus q4nx, dequant, gemm, mha, lm_head).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
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.

2 participants