问题
I am working on building Istio-envoy
on rhel7.6:ppc64le
. The build passes, however there are test failures:
Error:
In file included from test/server/filter_chain_benchmark_test.cc:19:0:`
`bazel-out/ppc-fastbuild/bin/external/com_github_google_benchmark/_virtual_includes/benchmark/benchmark/benchmark.h:1071:16: error: 'virtual void benchmark::Fixture::SetUp(benchmark::State&)' was hidden [-Werror=overloaded-virtual]`
`virtual void SetUp(State& st) { SetUp(const_cast<const State&>(st)); }`
` ^~~~~`
`test/server/filter_chain_benchmark_test.cc:152:8: error: by 'virtual void` `Envoy::Server::FilterChainBenchmarkFixture::SetUp(const benchmark::State&)' [-Werror=overloaded-virtual]
void SetUp(const ::benchmark::State& state) override {
^~~~~`
The link of the error-ed file https://github.com/istio/envoy/blob/release-1.3/test/server/filter_chain_benchmark_test.cc#L150
Please help me debugging the error.
回答1:
One key technique used in debugging is the application of the Wolf Fence algorithm. I would use this debugging algorithm in this case. This algorithm is also commonly referred to as bisecting.
I would recommend starting in this fashion:
Most Envoy development happens on amd64 on Ubuntu 18.04. Based on my experience, RHEL7 lags upstream master of the Power toolchain. Further, based on my experience, Ubuntu's 18.04 has a newer toolchain.
You will definitively require at least glibc 2.18 as discussed in the Envoy mailing list thread that I participated directly in, as one of many maintainers of the Istio project. The debugging that took place in that thread had indicated that RHEL7 includes glibc 2.17.
来源:https://stackoverflow.com/questions/60394286/gcc-woverloaded-virtual-error-on-powerpc-ppc64le