envoyproxy / envoyproxy/envoy

Update Envoy toolchain to C++20

Open
#27,757 2 comments 2 reactions 1 assignee Assigned to @yanavlasov View on GitHub
area/build enhancement no stalebot
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
437

Description

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:

- [x] PGV and star validate
- [x] gRPC-JSON transcoder (in progress)
- [x] 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.