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}")
 

Reply via email to