Page MenuHomePhabricator

Make sure we're using the same version of clang tools for everything
ClosedPublic

Authored by jasonbcox on Apr 24 2020, 23:47.

Details

Summary

clang-7 is installed by default. We should use the same version of clang and various clang tools.
This patch bumps clang to 8 to match the other tools.

Depends on D5835

Test Plan

Run various clang test suites on CI

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Snippet of first build failure:

[00:11:40]W:	 [Step 1/2] ++ nproc
[00:11:40]W:	 [Step 1/2] + THREADS=12
[00:11:40]W:	 [Step 1/2] + export THREADS
[00:11:40]W:	 [Step 1/2] + SAN_SUPP_DIR=/work/test/sanitizer_suppressions
[00:11:40]W:	 [Step 1/2] + SAN_LOG_DIR=/tmp/sanitizer_logs
[00:11:40]W:	 [Step 1/2] + mkdir -p /tmp/sanitizer_logs
[00:11:40]W:	 [Step 1/2] + rm -rf '/tmp/sanitizer_logs/*'
[00:11:40]W:	 [Step 1/2] + export ASAN_OPTIONS=log_path=/tmp/sanitizer_logs/asan.log
[00:11:40]W:	 [Step 1/2] + ASAN_OPTIONS=log_path=/tmp/sanitizer_logs/asan.log
[00:11:40]W:	 [Step 1/2] + export LSAN_OPTIONS=log_path=/tmp/sanitizer_logs/lsan.log
[00:11:40]W:	 [Step 1/2] + LSAN_OPTIONS=log_path=/tmp/sanitizer_logs/lsan.log
[00:11:40]W:	 [Step 1/2] + export TSAN_OPTIONS=log_path=/tmp/sanitizer_logs/tsan.log
[00:11:40]W:	 [Step 1/2] + TSAN_OPTIONS=log_path=/tmp/sanitizer_logs/tsan.log
[00:11:40]W:	 [Step 1/2] + export UBSAN_OPTIONS=log_path=/tmp/sanitizer_logs/ubsan.log
[00:11:40]W:	 [Step 1/2] + UBSAN_OPTIONS=log_path=/tmp/sanitizer_logs/ubsan.log
[00:11:40]W:	 [Step 1/2] + UNIT_TESTS_JUNIT_LOG_LEVEL=message
[00:11:40]W:	 [Step 1/2] + case "$ABC_BUILD_NAME" in
[00:11:40]W:	 [Step 1/2] + CMAKE_FLAGS=("-DENABLE_WERROR=ON" "-DCMAKE_C_COMPILER=clang" "-DCMAKE_CXX_COMPILER=clang++")
[00:11:40]W:	 [Step 1/2] + CMAKE_FLAGS='-DENABLE_WERROR=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++'
[00:11:40]W:	 [Step 1/2] + /work/contrib/devtools/build_cmake.sh
[00:11:40]W:	 [Step 1/2] + : /work
[00:11:40]W:	 [Step 1/2] + : /work/build
[00:11:40]W:	 [Step 1/2] + : '-DENABLE_WERROR=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++'
[00:11:40]W:	 [Step 1/2] + mkdir -p /work/build
[00:11:40]W:	 [Step 1/2] + cd /work/build
[00:11:40]W:	 [Step 1/2] + git clean -xffd
[00:11:40]W:	 [Step 1/2] + read -a CMAKE_FLAGS
[00:11:40]W:	 [Step 1/2] + cmake -GNinja .. -DENABLE_CLANG_TIDY=OFF -DENABLE_WERROR=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
[00:11:40] :	 [Step 1/2] -- The C compiler identification is Clang 8.0.1
[00:11:40] :	 [Step 1/2] -- The CXX compiler identification is unknown
[00:11:40] :	 [Step 1/2] -- Check for working C compiler: /usr/bin/clang
[00:11:40] :	 [Step 1/2] -- Check for working C compiler: /usr/bin/clang -- works
[00:11:40] :	 [Step 1/2] -- Detecting C compiler ABI info
[00:11:40] :	 [Step 1/2] -- Detecting C compiler ABI info - done
[00:11:40] :	 [Step 1/2] -- Detecting C compile features
[00:11:40] :	 [Step 1/2] -- Detecting C compile features - done
[00:11:40]W:	 [Step 1/2] CMake Error at CMakeLists.txt:9 (project):
[00:11:40]W:	 [Step 1/2]   The CMAKE_CXX_COMPILER:
[00:11:40]W:	 [Step 1/2] 
[00:11:40]W:	 [Step 1/2]     clang++
[00:11:40]W:	 [Step 1/2] 
[00:11:40]W:	 [Step 1/2]   is not a full path and was not found in the PATH.
[00:11:40]W:	 [Step 1/2] 
[00:11:40]W:	 [Step 1/2]   Tell CMake where to find the compiler by setting either the environment
[00:11:40]W:	 [Step 1/2]   variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
[00:11:40]W:	 [Step 1/2]   to the compiler, or to the compiler name if it is in the PATH.
[00:11:40]W:	 [Step 1/2] 
[00:11:40]W:	 [Step 1/2] 
[00:11:40] :	 [Step 1/2] -- Configuring incomplete, errors occurred!
[00:11:40] :	 [Step 1/2] See also "/work/build/CMakeFiles/CMakeOutput.log".
[00:11:40] :	 [Step 1/2] See also "/work/build/CMakeFiles/CMakeError.log".
[00:11:40] :	 [Step 1/2] *** Output of /tmp/sanitizer_logs/*.log.* ***
[00:11:40]W:	 [Step 1/2] ++ print_sanitizers_log
[00:11:40]W:	 [Step 1/2] ++ for log in "${SAN_LOG_DIR}"/*.log.*
[00:11:40]W:	 [Step 1/2] ++ echo '*** Output of /tmp/sanitizer_logs/*.log.* ***'
[00:11:40]W:	 [Step 1/2] ++ cat '/tmp/sanitizer_logs/*.log.*'
[00:11:40]W:	 [Step 1/2] cat: '/tmp/sanitizer_logs/*.log.*': No such file or directory
[00:11:40]W:	 [Step 1/2] cp: cannot stat '/work/ibd/debug.log': No such file or directory
[00:11:44]W:	 [Step 1/2] Process exited with code 1
[00:11:44]E:	 [Step 1/2] Process exited with code 1 (Step: Command Line)
This revision is now accepted and ready to land.Apr 25 2020, 00:23