【问题标题】:Gcc Woverloaded-virtual error on PowerPC ppc64lePowerPC ppc64le 上的 Gcc Woverloaded-virtual 错误
【发布时间】:2020-02-25 12:07:19
【问题描述】:

我正在努力在rhel7.6:ppc64le 上构建Istio-envoy。构建通过,但是有测试失败:

错误:

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 {
        ^~~~~`

错误文件的链接https://github.com/istio/envoy/blob/release-1.3/test/server/filter_chain_benchmark_test.cc#L150

请帮我调试错误。

【问题讨论】:

    标签: c++ overloading virtual-functions powerpc rhel7


    【解决方案1】:

    调试中使用的一项关键技术是应用Wolf Fence algorithm。在这种情况下,我会使用这个调试算法。这种算法通常也称为二分法。

    我建议以这种方式开始:

    大多数 Envoy 开发都是在 Ubuntu 18.04 上的 amd64 上进行的。根据我的经验,RHEL7 落后于 Power 工具链的上游大师。此外,根据我的经验,Ubuntu 18.04 有一个更新的工具链。

    您将 definitively require at least glibc 2.18 作为 Istio 项目的众多维护者之一,我直接参与了 Envoy 邮件列表线程中的讨论。该线程中发生的调试表明 RHEL7 包含 glibc 2.17。

    【讨论】:

    • 有没有办法在rhel7.6 ppc64le上安装glib2.18?
    • 我会compile from source glibc 2.18 在诸如虚拟机之类的一次性开发环境中。 Power 架构可能需要一些标志。链接的问题还有其他有价值的文档链接。
    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多