Skip to content

Update Envoy toolchain to C++20 #27757

@yanavlasov

Description

@yanavlasov

Moving to C++20 required update of the protobuf to v22.x to pull in proto complier changes that handle C++20 reserved keywords correctly. protobuf v22 also underwent a massive refactor, which impacted a number of dependencies.

Impacted Envoy dependencies are failing to build with the protobuf v22.x because they used the internal guts (details) of previous protobuf.

List of affected dependencies:

  • PGV and star validate
  • gRPC-JSON transcoder (in progress)
  • CEL (in progress)

C++20 mode is now enabled for the compile-time-options build. Moving forward an enabling it for the main build requires the following changes:

  • Update GCC to version 11 for C++20 support comparable to clang
  • Update Windows Visual Studio to 16.10 at least (currently at 16.9)
  • May need to ditch clang with stdlib as the stdlib version bundled with clang does not support C++20 (at least in clang-14). Only clang with libc++ will be supported.

Metadata

Metadata

Assignees

Labels

area/buildenhancementFeature requests. Not bugs or questions.no stalebotDisables stalebot from closing an issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions