Add Clang 19 support + remove clang 18 #298
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes clang 18 builds and adds clang 19 builds.
A few changes were needed:
Remove workaround for clang 18+ that builds libunwind with llvm_libcxx.
This workaround does not apply our fixes to libunwind when building and attempts to build it for ASAN/TSAN as well, which breaks. In any case, we build and use (uninstrumented) libunwind separately. Instead,
LIBCXXABI_USE_LLVM_UNWINDER=OFFis set to avoid the error that the workaround attempted to avoid. This (OFF) is the default value for LLVM 17 and lower, but ON became the default for LLVM 18+.-lclang_rt.builtinswas added for TSAN builds, to avoidnon-exported symbol '__gcc_personality_v0'errors.We use
-nostdlibwhen building shared libraries in our build. But Clang adds a dependency onto__gcc_personality_v0from libclang_rt.builtins.a. This causes the resulting shared libraries being generated with a weak undefined reference to__gcc_personality_v0and results in problems when attempting to link a binary against these shared libraries because__gcc_personality_v0has hidden visibility.Rebuild Intel oneAPI with clang 19. Using the old builds (from clang 17) with DiskANN built with clang19 results in missing symbol errors for
___kmpc_dispatch_deinit.Bump cassandra-cpp-driver to 2.9.0-yb-15 to fix compile error from rapidjson thirdparty dependency.
Bump rapidjson to v1.1.0-yb-3 to fix compile error.
Ignore
deprecated-ofastwarning building DiskANN, which is only a warning on Almalinux 8 but errors on Ubuntu builds.Build scripts were updated to allow for llvm19 builds.
Ubuntu 20.04 builds were also removed, as it is about to go EOL.