From: Kefu Chai Date: Fri, 5 Aug 2022 03:48:30 +0000 (+0800) Subject: do_cmake:sh: use newer gcc if available X-Git-Tag: v18.0.0~338^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F47472%2Fhead;p=ceph.git do_cmake:sh: use newer gcc if available despite that we are using clang in `run-make-check.sh`, `do_cmake.sh` is still used by some workflows like jenkins' ceph-pr-api job. now that we've migrated to C++20, we need to use GCC-11 or up for building the tree. GCC-11 is installed from PPA repo in `install-deps.sh`, but to avoid interfere with the build of older branches which do not use GCC-11, as their builds might break if we use GCC-11 for building them. we don't use the alternative machinary to point gcc to gcc-11, see 8f342a32ce4a236c45c67497ae34f508e032a9e1. so, in this change, we try to use the newest GCC in system when running `do_cmake.sh`. Signed-off-by: Kefu Chai --- diff --git a/do_cmake.sh b/do_cmake.sh index 3eb9b08d8afd..7b4d9ddc6446 100755 --- a/do_cmake.sh +++ b/do_cmake.sh @@ -59,6 +59,19 @@ if type ccache > /dev/null 2>&1 ; then ARGS+=" -DWITH_CCACHE=ON" fi +cxx_compiler="g++" +c_compiler="gcc" +# 20 is used for more future-proof +for i in $(seq 20 -1 11); do + if type -t gcc-$i > /dev/null; then + cxx_compiler="g++-$i" + c_compiler="gcc-$i" + break + fi +done +ARGS+=" -DCMAKE_CXX_COMPILER=$cxx_compiler" +ARGS+=" -DCMAKE_C_COMPILER=$c_compiler" + mkdir $BUILD_DIR cd $BUILD_DIR if type cmake3 > /dev/null 2>&1 ; then