Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions build_container/CENTOS7_BUILD_STATUS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
You are strongly encouraged to test the produced Envoy binary on CentOS 7 yourselves to ensure that it satisfies your required functionality and operates as expected.

## Version 1.21.x
Envoy version 1.21 onwards cannot currently be compiled on CentOS 7.

This is due the changes that were made to `tcp_stats.cc` during the 1.21 release and these being incompatible with the linux/tcp.h headers that are included in CentOS 7.

- `glibc-headers-2.17-317.el7.x86_64.rpm`
- `kernel-headers-3.10.0-1160.el7.x86_64.rpm`

```console
source/extensions/transport_sockets/tcp_stats/tcp_stats.cc:119:18: error: no member named 'tcpi_data_segs_out' in 'tcp_info'; did you mean 'tcpi_segs_out'?
if ((tcp_info->tcpi_data_segs_out > last_cx_tx_data_segments_) &&
^~~~~~~~~~~~~~~~~~
tcpi_segs_out
/usr/include/linux/tcp.h:204:8: note: 'tcpi_segs_out' declared here
__u32 tcpi_segs_out; /* RFC4898 tcpEStatsPerfSegsOut */
^
source/extensions/transport_sockets/tcp_stats/tcp_stats.cc:126:51: error: no member named 'tcpi_data_segs_out' in 'tcp_info'; did you mean 'tcpi_segs_out'?
const uint32_t data_segs_out_diff = tcp_info->tcpi_data_segs_out - last_cx_tx_data_segments_;
^~~~~~~~~~~~~~~~~~
tcpi_segs_out
/usr/include/linux/tcp.h:204:8: note: 'tcpi_segs_out' declared here
__u32 tcpi_segs_out; /* RFC4898 tcpEStatsPerfSegsOut */
^
source/extensions/transport_sockets/tcp_stats/tcp_stats.cc:139:28: error: no member named 'tcpi_data_segs_out' in 'tcp_info'; did you mean 'tcpi_segs_out'?
tcp_info->tcpi_data_segs_out);
^~~~~~~~~~~~~~~~~~
tcpi_segs_out
/usr/include/linux/tcp.h:204:8: note: 'tcpi_segs_out' declared here
__u32 tcpi_segs_out; /* RFC4898 tcpEStatsPerfSegsOut */
^
source/extensions/transport_sockets/tcp_stats/tcp_stats.cc:141:28: error: no member named 'tcpi_data_segs_in' in 'tcp_info'; did you mean 'tcpi_segs_in'?
tcp_info->tcpi_data_segs_in);
^~~~~~~~~~~~~~~~~
tcpi_segs_in
/usr/include/linux/tcp.h:205:8: note: 'tcpi_segs_in' declared here
__u32 tcpi_segs_in; /* RFC4898 tcpEStatsPerfSegsIn */
^
source/extensions/transport_sockets/tcp_stats/tcp_stats.cc:146:26: error: no member named 'tcpi_notsent_bytes' in 'tcp_info'
tcp_info->tcpi_notsent_bytes);
~~~~~~~~ ^
```

Further investigation is needed to resolve this problem. Contributions are welcome! For more detail see [here](https://github.com/envoyproxy/envoy-build-tools/pull/154#issuecomment-1033902348).

## Version 1.20.x
Envoy version 1.20 can be compiled on CentOS 7 using `clang and libc++`, but not `clang and libstdc++`, which throws an ambiguous function error. For more detail on this issue and a proposed fix see [here](https://github.com/envoyproxy/envoy/issues/19978).

## Version 1.19.x
Envoy version 1.19 can be built using either `clang and libc++` or `clang and libstdc++` on CentOS 7.
6 changes: 6 additions & 0 deletions build_container/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,9 @@ After the PR that changes `ci/build_container` has been merged, and the new imag
a second PR is needed to update `ci/envoy_build_sha.sh`. In order to pull the new tagged version of
the build image, change ENVOY_BUILD_SHA [here](https://github.com/envoyproxy/envoy/blob/main/ci/envoy_build_sha.sh).
Any PRs that depend on this image change will have to merge main after the change to `ci/envoy_build_sha.sh` has been merged to main.

## Envoy health warning for the CentOS 7 build container

The current CentOS 7 build container has no CI integration and generally has older versions of the build tools needed to compile Envoy. So this health warning is to encourage any users of this build image to test Envoy throughly to ensure that it satisfies your requirements.

See further details on the latest status of building Envoy on CentOS 7 [here](https://github.com/envoyproxy/envoy-build-tools/blob/main/build_container/CENTOS7_BUILD_STATUS.md).