Skip to content

fix(hrx): rebuild Linux engine libs in manylinux_2_28 (glibc <= 2.28) - #827

Merged
tawei-amd merged 1 commit into
mainfrom
fix/hrx-engines-manylinux-glibc-2.28
Oct 22, 2026
Merged

tawei-amd merged 1 commit into
mainfrom
fix/hrx-engines-manylinux-glibc-2.28

Conversation

@tawei-amd

Copy link
Copy Markdown
Collaborator

Problem

de3b12a9 ("feat: update hrx lib") rebuilt every Linux HRX engine on Ubuntu 24.04 + GCC 13.3, so the vendored libs need glibc 2.32–2.38 and GLIBCXX 3.4.32 (also log2@GLIBC_2.29). The SDK's manylinux_2_28 FLM job (glibc 2.28) fails linking flm against them. #822 fixed libwhisper_npu.so; this PR does the other 27 libs.

Change

Replaces the 27 src/lib/hrx/lib*.so rebuilt in the manylinux_2_28 environment, from FastFlowLM_IRON main (2d9079194, which includes the af74ea790 aiebu link fix) and the pinned HRX package flm-hrx-amdxdna-v2026.10.13:

  • gcc-toolset-13 from ghcr.io/rocm/therock_build_manylinux_x86_64 against its glibc 2.28 sysroot; newer libstdc++ symbols come from libstdc++_nonshared.a (the same mechanism as FLM_DLL/build_manylinux.sh).
  • .dll/.lib and libwhisper_npu.so are untouched.
before (main) after
max glibc 2.32–2.38 2.22
max GLIBCXX 3.4.32 3.4.21
max CXXABI 1.3.x 1.3.11

Verification

  • FLM_DLL/check_abi.sh (FastFlowLM_IRON put note in bench #74/docs update v0.9.0 #76; ceiling glibc 2.28 / GLIBCXX 3.4.25 / CXXABI 1.3.11): 28/28 libs pass.
  • No lib contains the aiebu Header version banner.
  • Built flm (HRX) with these libs and ran on the NPU: Gemma4-E2B and Gemma4-12B answer correctly (these use the gemma4e / gemma4_12b engines plus q4nx, dequant, gemm, mha, lm_head). Other engines are built the same way but were not run here (no models locally).
  • Not run: the SDK's manylinux_2_28 FLM link itself; please re-run that job on this branch.

Notes

  • Engine Makefiles use -march=native (and -mavx512*), as in IRON CI; I built on a Zen 5 (Ryzen AI 9 HX 370) host.
  • The RPATH of the libs contains the build-host HRX package path, as the existing vendored libs contain their CI runner paths; $ORIGIN entries come first.
  • XRT libs (glibc 2.38) are not covered; they need an XRT dev tree in a 2.28 image.

🤖 Generated with Claude Code

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). #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]>
@tawei-amd
tawei-amd merged commit 70e3f06 into main Oct 22, 2026
31 checks passed
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.

1 participant