Skip to content

Newer protobuf requires at least C++14, abseil may need C++17 #1879

@peternewman

Description

@peternewman
          Additionally. unfortunately, protobuf also requires at least C++14 but the configure only set `-std=gnu++11`, making the compilation of the test programs, which check for the protobuf headers, fail.

(This is after applying the fix for the protobuf version check in #1875.)

configure:25968: checking for google/protobuf/compiler/command_line_interface.h
configure:25968: g++ -c -g -O2 -std=gnu++11   conftest.cpp >&5
In file included from /usr/include/absl/base/config.h:86,
                 from /usr/include/absl/base/attributes.h:37,
                 from /usr/include/absl/base/internal/raw_logging.h:24,
                 from /usr/include/absl/container/internal/btree.h:61,
                 from /usr/include/absl/container/btree_map.h:56,
                 from /usr/include/google/protobuf/compiler/command_line_interface.h:48,
                 from conftest.cpp:178:
/usr/include/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
   79 | #error "C++ versions less than C++14 are not supported."
      |  ^~~~~

Originally posted by @SpotlightKid in #1867 (comment)

          This says that protobuf supported C++11 until just before version 22.0:

https://protobuf.dev/news/2022-08-03/
Likewise this release of Abseil should work with C++11:
https://github.com/abseil/abseil-cpp/tree/20220623.1

Originally posted by @peternewman in #1867 (comment)

          Alas, that doesn't help when compiling ola for packages of Linux distributions, which ship newer protobuf versions.

Originally posted by @SpotlightKid in #1867 (comment)

          You can also try this branch where I've made some very rudimentary attempts:

https://github.com/peternewman/ola/tree/0.10-c14-compat

More generally if someone can either do us a GitHub Action which compiles against Arch or can run a Buildbot or something we should catch these issues a lot sooner and be able to react to them better. Otherwise it's likely to be a case of pull requests welcome unfortunately...

Originally posted by @peternewman in #1867 (comment)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions