Hello Tidy Bot, Kudu Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/18770
to look at the new patch set (#5).
Change subject: KUDU-3374 Add support for M1 and macOS Monterey
......................................................................
KUDU-3374 Add support for M1 and macOS Monterey
The macOS Monterey OS upgrade broke glog 0.3.5, moreover building Kudu
with LLVM 9 on Apple silicon is not really feasible. There has been
multiple non-merged patches submitted to tackle these issues:
Upgrade glog to 0.6.0 [1]
Fix codegen build on MacOS Monterey [2]
Fix building on Apple M1 [3]
Upgrade to LLVM 11 and IWYU 0.15 [4]
This patch squashes all of the above and provides the necessary
glue changes.
LLVM is updated to version 11 and glog to version 0.6.0 to fix the
initial build issues. Building the glog tests has to be turned off as
it causes linker error in TSAN build. The optional ZLIB dependency in
LLVM-IWYU is removed as the original issue -mentioned in the comments-
has been resolved, and this caused build issues on Unix. [5] Building
Kudu on different OS and compiler combinations resulted in various
errors. Using Clang from the new LLVM 11 thridparty build resulted in
consisted successful builds. Therefore the thirparty clang is used both
in the local cmake and the distributed test script. The homebrew prefix
is changed from /usr/local to /opt/homebrew on ARM macs. In places
where package locations are provided, and ARM alternative location has
been added. Added a patch to fix null pointer dereference in rapidjson.
[6] Added another patch containing assertions to a similar issue, to
fix suppress clang warnings in rapidjson. [7] Building tests in glog
has to be turned off as it causes linker error in tsan build. [8] With
the clang upgrade it now links against libatomic in TSAN builds. In
dist-test.py libatomic is added to the list of shipped libraries as it
was missing on the target machines. A couple of new TSAN race occurences
came up with LLVM regexes, added those to the sanitizer suppression
list. pstack_watcher uses gdb, pstack or gstack to examine a process.
None of those are available on ARM macs. Added lldb support, to have a
fallback on ARM macs. Finally libcurl needed to be upgraded to 7.80 as
the old version gave symbol errors during release build on M1 mac.
[1] Change-Id: I21abd1749fdfdcde412f5a2ca2245c42da20d4f3
[2] Change-Id: Idc5721cb2445303b2e79d08b547e746929c7486d
[3] Change-Id: I029a858d2da77cea84e7e6856b8a5ac02713152d
[4] Change-Id: Id9c32abe256978158617a4fe3a3c34e9bfd00fb2
[5] https://github.com/include-what-you-use/include-what-you-use/
issues/539
[6] https://github.com/Tencent/rapidjson/pull/727
[7] https://github.com/Tencent/rapidjson/pull/757
[8] https://github.com/google/glog/issues/54
Change-Id: I9877f95340b969308c317a6bac50665ff78e329e
---
M CMakeLists.txt
M build-support/dist_test.py
M build-support/iwyu/mappings/glog.imp
M build-support/jenkins/build-and-test.sh
M cmake_modules/FindGLog.cmake
M cmake_modules/FindKerberosPrograms.cmake
M src/kudu/codegen/CMakeLists.txt
M src/kudu/codegen/code_generator.cc
M src/kudu/codegen/module_builder.cc
M src/kudu/common/row_operations-test.cc
M src/kudu/fs/dir_util-test.cc
M src/kudu/gutil/atomicops-internals-macosx.h
M src/kudu/gutil/dynamic_annotations.c
M src/kudu/gutil/dynamic_annotations.h
M src/kudu/ranger/ranger_client.cc
M src/kudu/security/test/mini_kdc.cc
M src/kudu/server/diagnostics_log.cc
M src/kudu/server/pprof_path_handlers.cc
M src/kudu/tablet/concurrent_btree.h
M src/kudu/util/async_logger.cc
M src/kudu/util/async_logger.h
M src/kudu/util/debug-util.cc
M src/kudu/util/debug/trace_logging.h
M src/kudu/util/flags.cc
M src/kudu/util/logging-test.cc
M src/kudu/util/logging.cc
M src/kudu/util/logging.h
M src/kudu/util/logging_test_util.h
M src/kudu/util/minidump.cc
M src/kudu/util/pstack_watcher.cc
M src/kudu/util/pstack_watcher.h
M src/kudu/util/rw_mutex-test.cc
M src/kudu/util/sanitizer_options.cc
M thirdparty/build-definitions.sh
M thirdparty/build-thirdparty.sh
M thirdparty/download-thirdparty.sh
M thirdparty/package-llvm.sh
D thirdparty/patches/glog-fix-symbolization.patch
D thirdparty/patches/glog-issue-198-fix-unused-warnings.patch
D thirdparty/patches/glog-issue-54-dont-build-tests.patch
A thirdparty/patches/glog-make-internals-visible.patch
M thirdparty/patches/glog-support-stacktrace-for-aarch64.patch
A thirdparty/patches/gmock-remove-unused-gunit-iwyu-pragma.patch
D thirdparty/patches/llvm-iwyu-include-picker.patch
D thirdparty/patches/llvm-iwyu-sized-deallocation.patch
A thirdparty/patches/rapidjson-assertions-for-clang-warnings.patch
A thirdparty/patches/rapidjson-avoid-pointer-arithmetic-on-null-pointer.patch
M thirdparty/preflight.py
M thirdparty/vars.sh
49 files changed, 352 insertions(+), 711 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/70/18770/5
--
To view, visit http://gerrit.cloudera.org:8080/18770
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I9877f95340b969308c317a6bac50665ff78e329e
Gerrit-Change-Number: 18770
Gerrit-PatchSet: 5
Gerrit-Owner: Marton Greber <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)