Skip to content

Impossible to build shared Arrow with ZSTD without hitting xtl dependency (Debian 12) #45899

Closed
@aborruso

Description

@aborruso

Describe the bug, including details regarding any error messages, version, and platform.

Hi folks,

I'm trying to build Apache Arrow from source on Debian 12 with Parquet and ZSTD support, but without optional dependencies like xtl, xsimd, xtensor, etc.

Despite setting what I believe are the correct CMake flags:

cmake .. \
  -DCMAKE_BUILD_TYPE=Release \
  -DARROW_PARQUET=ON \
  -DARROW_WITH_ZSTD=ON \
  -DARROW_WITH_ZLIB=ON \
  -DARROW_WITH_SNAPPY=ON \
  -DARROW_WITH_LZ4=OFF \
  -DARROW_WITH_BROTLI=OFF \
  -DARROW_WITH_XSIMD=OFF \
  -DARROW_SIMD_LEVEL=NONE \
  -DARROW_DEPENDENCY_SOURCE=SYSTEM

…the build always fails when linking libarrow.so, with:

/usr/bin/ld: cannot find -lxtl: No such file or directory

I’ve confirmed there are no direct references to xtl in the codebase (grep -ri xtl returns nothing in src/).
I've tried all of the following:

  • clean builds from scratch
  • -DARROW_WITH_XSIMD=OFF
  • -DARROW_SIMD_LEVEL=NONE
  • cloning a fresh copy of the repo to avoid contaminated CMakeCache
  • even tried forcing all dependencies to SYSTEM

🧩 Related issues & workarounds

I’ve seen this mentioned in:

…but it's still unclear why Arrow links to xtl even with xsimd disabled


🙏 Request

Could we please:

  • clarify in the documentation how to avoid xtl / xsimd altogether
  • explain how xtl gets into the shared build path even when not requested
  • maybe provide a proper flag like -DARROW_WITH_XTL=OFF?

Thanks a lot for all your great work — I love Arrow, but this one really stumped me.

All the best,

Andrea

Component(s)

Parquet

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions