Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[contrib][http language filter] Change position of libstdc++ library when linking ICU tools #37060

Merged
merged 1 commit into from
Nov 8, 2024

[contrib][http language filter] Change position of libstdc++ library …

03eb9a7
Select commit
Loading
Failed to load commit list.
Merged

[contrib][http language filter] Change position of libstdc++ library when linking ICU tools #37060

[contrib][http language filter] Change position of libstdc++ library …
03eb9a7
Select commit
Loading
Failed to load commit list.
CI (Envoy) / Mobile/iOS skipped Nov 8, 2024 in 0s

Check was skipped

This check was not triggered in this CI run

Details

Request (pr/37060/main@03eb9a7)

krinkinmu @krinkinmu 03eb9a7 #37060 merge main@522c94a

[contrib][http language filter] Change position of libstdc++ library when linking ICU tools

Commit Message:

Clang and gcc are subtly different and it seems to be the cause of contrib build failures reported in
#31807 (e.g., when using gcc to link the final binary it results in a bunch of essential for gcc C++ symbols like __gxx_personality_v0).

The issue appear to be the order of the libraries when linking. gcc, when building statically linked binaries basically needs libstdc++ to be the last library or alsmot the last library in the command line. And clang does not appear to care about it much.

This change provides libstdc++ library in LIBS environment variabe which will put it in the right position when building the ICU library. This works well for both clang and gcc.

Additional Description:

It address the issue reported in #31807, though by itseld this change is not enough to make gcc builds work - a few more changes are needed.

Risk Level: Low
Testing: built with --config=gcc and --config=docker-gcc and checked that //contrib/language/filters/http/test:language_config_test pass after the change.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Environment

Request variables

Key Value
ref 0f2c2a7
sha 03eb9a7
pr 37060
base-sha 522c94a
actor krinkinmu @krinkinmu
message [contrib][http language filter] Change position of libstdc++ library when linking ICU tools...
started 1731065941.83075
target-branch main
trusted false
Build image

Container image/s (as used in this CI run)

Key Value
default envoyproxy/envoy-build-ubuntu:f94a38f62220a2b017878b790b6ea98a0f6c5f9c
mobile envoyproxy/envoy-build-ubuntu:mobile-f94a38f62220a2b017878b790b6ea98a0f6c5f9c
Version

Envoy version (as used in this CI run)

Key Value
major 1
minor 33
patch 0
dev true