tcmalloc fix for macOS Monterey; do not use Homebrew libuv; fix Boost flags; fix min macOS version #90
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.
yugabyte/yugabyte-db#10533 (incorrectly using libuv from Homebrew):
otool -L
output when checking dynamic libraries. This enforces that the resulting thirdparty package does not depend on any Homebrew libraries, e.g. libuv.yugabyte/yugabyte-db#10448 (tcmalloc issue on macOS Monterey):
Update gperftools with a patch that fixes tcmalloc on macOS Monterey.
Upstream gperftools issue: gperftools/gperftools#1312, fix: gperftools/gperftools#1315
yugabyte/yugabyte-db#10661 (incorrectly setting min macOS version):
Add validation that libraries are built for the correct target version of macOS by examining the output of
otool -l
.As part of looking into this, I found out that Boost previously did not even use the compiler and linker flags that we were providing. Fixed this by specifying the
toolset=...
parameter to b2. Also fixed Boost build on x86_64 macOS (after the arm64 commit landed, we would always specify the arm64 architecture). Another dependency that required changes was crypt_blowfish (needed to pass-mmacosx-version-min=...
in LDFLAGS and ASFLAGS). I noticed that specifying min macOS version as 10.14 (Mojave) does not work when building for arm64, so I specified min macOS version as 11.2 there for now. Also specifying minimum macOS version does not seem to work correctly when building on macOS 10.15 (Catalina) on GitHub Actions, but works well on Big Sur (11.x) so we will look into upgrading our build workers, and we may have to release a few packages manually.Other improvements: