- Notifications
You must be signed in to change notification settings - Fork 4k
Description
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
-
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
-
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
-
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.
-
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-latesthas 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.
Related issues:
- [C++][CI] Use Brew installed clang for MacOS (relates to)
- [C++][Gandiva] AppVeyor Windows builds failing due to 'diaguids.lib' (relates to)
- [C++][CI] Use Brew installed clang for MacOS verify-rc (relates to)
- [Java][Gandiva] ProjectorTest.testStringOutput is failed (relates to)
- [CI] Reduce required dependencies on macOS builds (relates to)
Note: This issue was originally created as ARROW-17902. Please see the migration documentation for further details.