Skip to content

[C++][Gandiva] Solve LLVM 15 CI performace and compatibility issues #20439

@asfimport

Description

@asfimport

Package managers have been upgrading their default LLVM version to 15. This raises several compatibility and performance issues for CI, and we currently are using workaounds

  1. Mac's default clang 13's LTO cannot read Brew installed llvm static libs because they are compiled with llvm 15 (ARROW-17790: [C++][Gandiva] Adapt to LLVM opaque pointer #14187 (comment)). Workaround: Use brew installed clang: ARROW-17805 ARROW-17842

  2. Conda's packaging of LLVM 15 on Windows is not portable. It required a VS2019 Enterprise version: Non-portable packaging of LLVMDebugInfoPDB's dependency of diaguids.lib on Windows conda-forge/llvmdev-feedstock#175 Workaround: Pin LLVM to 14 for Conda with Windows. ARROW-17830

  3. Brew's LLVM15 enables z3 by default and it's shared linked. It breaks Java jar builds on MacOS: ARROW-17869: [Java][Gandiva] Implement Reserve for JavaBuffer #14261 (comment) Workaround: Pin LLVM to 14 for all MacOS tasks.

  4. LLVM 15 is noticably slower to build than LLVM 14 for brew and MacOS. Workaround: Pin LLVM to 14 for all MacOS tasks. ARROW-17872

    We need to find a way to resolve these workarounds for LLVM 15.

    Edit: The current mac os runner we use macos-latest has llvm@14 preinstalled. So pinning to 14 can save build time and fix dependency issues. We can move to llvm@15 on mac once the github images support them by default.

Reporter: Jin Shang / @js8544

Related issues:

Note: This issue was originally created as ARROW-17902. Please see the migration documentation for further details.

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