Skip to content

{bp-3684} audioutils/lame: pin the checkout and build its AVX-512 sources - #3775

Merged
acassis merged 1 commit into
apache:releases/13.0from
jerpelea:bp-3684
Sep 7, 2026
Merged

{bp-3684} audioutils/lame: pin the checkout and build its AVX-512 sources#3775
acassis merged 1 commit into
apache:releases/13.0from
jerpelea:bp-3684

Conversation

@jerpelea

@jerpelea jerpelea commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Summary

The bundled encoder was checked out from lame's trunk with no revision, so every build took whatever trunk happened to be at that moment. lame's trunk grows vector tiers over time, and each one adds sources that the two build files have to name: r6655 offered AVX2 to the vector routines on 2026-07-25, and r6718 and r6720 added an AVX-512 tier on 2026-07-30. The AVX-512 sources were never listed, so sim:alsa stopped linking on x86 hosts:

takehiro.c:332: undefined reference to quantize_lines_xrpow_avx512' takehiro.c:533: undefined reference to ix_max_avx512'
takehiro.c:569: undefined reference to count_bit_esc_avx512' vbrquantize.c:261: undefined reference to calc_sfb_noise_x34_avx512'

Pin the checkout to r6720 through a LAME_VERSION variable, as the rest of apps/ pins its third-party sources, and list the three AVX-512 files that revision provides. The pin is what keeps the two in step: the source list is maintained by hand, so it can only be correct for a known revision.

The checkout is also only performed when lame/configure is absent and is never updated afterwards, so before this an unpinned tree was frozen at whatever trunk was on the day it was first built. Anyone who checked out before 2026-07-30 still links and cannot reproduce the failure, which is why this surfaced only in CI.

Makefile named just vector/xmm_quantize_sub.c and none of the other vector sources, so a Make build on an x86 host fails the same way with a longer list of symbols, from SSE2 upwards. CI builds sim:alsa through CMake only, so that half was latent rather than visible. Both files now list the same nine sources under the same host condition.

Impact

RELEASE

Testing

CI

The bundled encoder was checked out from lame's trunk with no revision, so
every build took whatever trunk happened to be at that moment.  lame's trunk
grows vector tiers over time, and each one adds sources that the two build
files have to name:  r6655 offered AVX2 to the vector routines on 2026-07-25,
and r6718 and r6720 added an AVX-512 tier on 2026-07-30.  The AVX-512 sources
were never listed, so sim:alsa stopped linking on x86 hosts:

  takehiro.c:332:    undefined reference to `quantize_lines_xrpow_avx512'
  takehiro.c:533:    undefined reference to `ix_max_avx512'
  takehiro.c:569:    undefined reference to `count_bit_esc_avx512'
  vbrquantize.c:261: undefined reference to `calc_sfb_noise_x34_avx512'

Pin the checkout to r6720 through a LAME_VERSION variable, as the rest of
apps/ pins its third-party sources, and list the three AVX-512 files that
revision provides.  The pin is what keeps the two in step:  the source list is
maintained by hand, so it can only be correct for a known revision.

The checkout is also only performed when lame/configure is absent and is never
updated afterwards, so before this an unpinned tree was frozen at whatever
trunk was on the day it was first built.  Anyone who checked out before
2026-07-30 still links and cannot reproduce the failure, which is why this
surfaced only in CI.

Makefile named just vector/xmm_quantize_sub.c and none of the other vector
sources, so a Make build on an x86 host fails the same way with a longer list
of symbols, from SSE2 upwards.  CI builds sim:alsa through CMake only, so that
half was latent rather than visible.  Both files now list the same nine
sources under the same host condition.

Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@acassis
acassis merged commit be1ae4e into apache:releases/13.0 Sep 7, 2026
41 checks passed
@jerpelea
jerpelea deleted the bp-3684 branch September 8, 2026 06:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants