Enforce LANG=C to check the version of compiler. Otherwise, extracting compiler information could fail. One example is here (built on CentOS 7).
LANG is not C [sarutak@devel release]$ echo $LANG ja_JP.UTF-8 check the output of `c++ -v` and you'll found it does not match the pattern ".*gcc version ([0-9\\.]+).*". [sarutak@devel release]$ c++ -v çµã¿è¾¼ã¿ spec ã使ç¨ãã¦ãã¾ãã COLLECT_GCC=c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper ã¿ã¼ã²ãã: x86_64-redhat-linux configure è¨å®: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux ã¹ã¬ããã¢ãã«: posix gcc ãã¼ã¸ã§ã³ 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) Those conditions end up having a failure of cmake. [kou@devel-mbp-centos7 release]$ ../../build-support/enable_devtoolset.sh ../../thirdparty/installed/common/bin/cmake -DCMAKE_BUILD_TYPE=release ../.. ... CMake Error at cmake_modules/CompilerInfo.cmake:51 (message): Unknown compiler. Version info: çµã¿è¾¼ã¿ spec ã使ç¨ãã¦ãã¾ãã COLLECT_GCC=/usr/bin/c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper ã¿ã¼ã²ãã: x86_64-redhat-linux configure è¨å®: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux ã¹ã¬ããã¢ãã«: posix gcc ãã¼ã¸ã§ã³ 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) Call Stack (most recent call first): CMakeLists.txt:218 (include) -- Configuring incomplete, errors occurred! See also "/home/kou/work/kudu/build/release/CMakeFiles/CMakeOutput.log". ... Change-Id: I1a178f503f918aea308b6073b57c2b991d34e848 Reviewed-on: http://gerrit.cloudera.org:8080/5175 Tested-by: Kudu Jenkins Reviewed-by: Adar Dembo <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/kudu/repo Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/805d1cf8 Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/805d1cf8 Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/805d1cf8 Branch: refs/heads/master Commit: 805d1cf84fa8be5a1ea3d8569778757e17fce978 Parents: 71768bf Author: Kousuke Saruta <[email protected]> Authored: Tue Nov 22 18:12:23 2016 +0900 Committer: Adar Dembo <[email protected]> Committed: Wed Nov 23 21:19:11 2016 +0000 ---------------------------------------------------------------------- cmake_modules/CompilerInfo.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kudu/blob/805d1cf8/cmake_modules/CompilerInfo.cmake ---------------------------------------------------------------------- diff --git a/cmake_modules/CompilerInfo.cmake b/cmake_modules/CompilerInfo.cmake index 80aeb2f..f58893a 100644 --- a/cmake_modules/CompilerInfo.cmake +++ b/cmake_modules/CompilerInfo.cmake @@ -17,7 +17,7 @@ # # Sets COMPILER_FAMILY to 'clang' or 'gcc' # Sets COMPILER_VERSION to the version -execute_process(COMMAND "${CMAKE_CXX_COMPILER}" -v +execute_process(COMMAND env LANG=C "${CMAKE_CXX_COMPILER}" -v ERROR_VARIABLE COMPILER_VERSION_FULL) message(INFO " ${COMPILER_VERSION_FULL}")
