Skip to content

bug(lance-linalg): musl build can still produce missing AVX512 dist_table symbol on Alpine #6345

@ArturiaPendragon

Description

@ArturiaPendragon

This looks very similar to #5379, but on linux-musl / Alpine.

User-facing report: lancedb/lancedb#3200

On Alpine Linux, the musl Node binary fails to load with:

Error relocating .../lancedb.linux-x64-musl.node: sum_4bit_dist_table_32bytes_batch_avx512: symbol not found

What I found:

  • the missing symbol comes from the AVX512 dist-table path in rust/lance-linalg
  • sum_4bit_dist_table_32bytes_batch_avx512 is declared in src/simd/dist_table.rs
  • implemented in src/simd/dist_table.c
  • and built separately in build.rs

This seems to match the same underlying pattern as #5379: AVX512 support can be enabled broadly enough that the Rust AVX512 callsite is compiled even when the dist_table AVX512 object does not actually make it into the final musl binary.

In my repro:

  • 0.26.2 works
  • 0.27.0 / 0.27.1 / 0.27.2-beta.0 / 0.27.2-beta.1 fail on Alpine

The user-facing repro is in lancedb/lancedb#3200, but I’m opening this here because the symbol and build logic seem to live in lance-linalg.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions