[BUG] gcc-4 is not supported in release after 1.8.0
Describe the bug The project is not compilable with gcc-4 since release 1.8.0, is gcc-4 no longer supported or the documentation need modification?
System Which OS, compiler, and compiler version are you using:
- OS: CentOS 7.6.1810
- Compiler and version: gcc 4.8.5
To reproduce Steps to reproduce the behavior:
- checkout release version 1.8.0
- cd ${source_code_folder} && mkdir build && cd build && cmake -DBENCHMARK_ENABLE_GTEST_TESTS=OFF ../
- make
- See error
[ 1%] Building CXX object src/CMakeFiles/benchmark.dir/benchmark.cc.o
/home/test/test/benchmark-1.8.0/src/benchmark.cc: In constructor ‘benchmark::State::State(std::string, benchmark::IterationCount, const std::vector<long int>&, int, int, benchmark::internal::ThreadTimer*, benchmark::internal::ThreadManager*, benchmark::internal::PerfCountersMeasurement*)’:
/home/test/test/benchmark-1.8.0/src/benchmark.cc:163:74: error: declaration of ‘name’ shadows a member of 'this' [-Werror=shadow]
internal::PerfCountersMeasurement* perf_counters_measurement)
^
/home/test/test/benchmark-1.8.0/src/benchmark.cc: In member function ‘void benchmark::State::PauseTiming()’:
/home/test/test/benchmark-1.8.0/src/benchmark.cc:230:12: error: declaration of ‘name’ shadows a member of 'this' [-Werror=shadow]
auto name = name_and_measurement.first;
^
cc1plus: all warnings being treated as errors
make[2]: *** [src/CMakeFiles/benchmark.dir/benchmark.cc.o] Error 1
make[1]: *** [src/CMakeFiles/benchmark.dir/all] Error 2
make: *** [all] Error 2
Expected behavior The project should be compilable in gcc-4 or the document need an update that gcc-4 is no longer supported.
documented https://google.github.io/benchmark/dependencies.html which points to https://opensource.google/documentation/policies/cplusplus-support which says "we agree to remove GCC 4.8 because of its incomplete C++11 support, as well as clang 3.x"
ie, on CentOS 7 you may need to use devtoolset-7.
having said that, i'm comfortable taking patches for best effort support for other compilers, but it's not something we'll regularly have as part of our CI set.
这个真的是太坑了。。