benchmark icon indicating copy to clipboard operation
benchmark copied to clipboard

[BUG] gcc-4 is not supported in release after 1.8.0

Open Low-profile opened this issue 2 years ago • 2 comments

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:

  1. checkout release version 1.8.0
  2. cd ${source_code_folder} && mkdir build && cd build && cmake -DBENCHMARK_ENABLE_GTEST_TESTS=OFF ../
  3. make
  4. 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.

Low-profile avatar Jul 24 '23 08:07 Low-profile

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.

dmah42 avatar Jul 31 '23 15:07 dmah42

这个真的是太坑了。。

Kydon-ai avatar Aug 17 '23 17:08 Kydon-ai