Link chpl with the same libc++ that built the Homebrew LLVM #19445
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.
Resolves #19217
This PR adds a workaround to solve #19217. The problem we were seeing is that the Homebrew LLVM is built with one C++ standard library, but it includes a different version of a C++ standard library that our include and link paths were picking up. This can be detected with comparing output of
otool -L chpl
vsotool -l libLLVM.dylib
(with appropriate paths).To fix it, this PR adjusts
chpl_llvm.py
to:DEFAULT_SYSROOT
define fromclang/Config/config.h
. This strategy relies on the Homebrew formula passing-DDEFAULT_SYSROOT=#{macos_sdk}
when cmake'ing llvm and clang. The main alternative strategy that I know of for this is more complex and relies on running bothotool
andxcrun
.While there, I fixed some problems in error reporting when checking an llvm-config.
Reviewed by @ronawho - thanks!
Testing: