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
core: duplicate symbols coming from protobuf #617
Comments
I wanted to surface another linking issue in iOS that @htuch and I discussed on an envoy PR: envoyproxy/envoy#9191 |
Filed some upstream issues that I believe to be the cause of this: |
Thanks so much @keith. There's a fix that has been submitted to fix this issue in Bazel, after which we should hopefully be able to bump Bazel and update: bazelbuild/bazel#10493 |
This was referenced Dec 31, 2019
Closed
rebello95
added a commit
that referenced
this issue
Dec 31, 2019
Fixes #617, which resulted in duplicate symbols from protobuf being present in the final Envoy Mobile binary. The [root cause](bazelbuild/bazel#10484) is being [patched in Bazel](bazelbuild/bazel#10493). In the meantime, we can revert these two commits in protobuf ([first](protocolbuffers/protobuf@7b28278), [second](protocolbuffers/protobuf@a03d332)) and apply the diff as a patch until we're able to update Bazel with the fix. More context on the protobuf issue is available [here](protocolbuffers/protobuf#7046). Notes: - This should be reverted after updating Bazel with the fix - The version of protobuf specified in the `http_archive` should be in lockstep with upstream Envoy's version - Upstream Envoy's `@envoy//bazel:protobuf.patch` patch is also included here Signed-off-by: Michael Rebello <me@michaelrebello.com>
Yannic
added a commit
to Yannic/protobuf
that referenced
this issue
Jan 8, 2020
This is a partial revert of protocolbuffers@7b28278 to unblock, e.g., grpc/grpc#21590 or envoyproxy/envoy-mobile#617 until Bazel is fixed. Note: this is a forward-compatible change that automatically switches to the behavior intended by protocolbuffers@7b28278 when a compatible Bazel is released without requiring users to upgrade Protobuf. We will revert this change when Bazel is fixed.
rafi-kamal
pushed a commit
to protocolbuffers/protobuf
that referenced
this issue
Jan 9, 2020
* Blacklist .proto source files is Bazel allows us to This is a partial revert of 7b28278 to unblock, e.g., grpc/grpc#21590 or envoyproxy/envoy-mobile#617 until Bazel is fixed. Note: this is a forward-compatible change that automatically switches to the behavior intended by 7b28278 when a compatible Bazel is released without requiring users to upgrade Protobuf. We will revert this change when Bazel is fixed. * Remove trailing , * Update BUILD
rafi-kamal
pushed a commit
to protocolbuffers/protobuf
that referenced
this issue
Jan 9, 2020
* Blacklist .proto source files is Bazel allows us to This is a partial revert of 7b28278 to unblock, e.g., grpc/grpc#21590 or envoyproxy/envoy-mobile#617 until Bazel is fixed. Note: this is a forward-compatible change that automatically switches to the behavior intended by 7b28278 when a compatible Bazel is released without requiring users to upgrade Protobuf. We will revert this change when Bazel is fixed. * Remove trailing , * Update BUILD
rafi-kamal
pushed a commit
to protocolbuffers/protobuf
that referenced
this issue
Jan 9, 2020
* Blacklist .proto source files is Bazel allows us to This is a partial revert of 7b28278 to unblock, e.g., grpc/grpc#21590 or envoyproxy/envoy-mobile#617 until Bazel is fixed. Note: this is a forward-compatible change that automatically switches to the behavior intended by 7b28278 when a compatible Bazel is released without requiring users to upgrade Protobuf. We will revert this change when Bazel is fixed. * Remove trailing , * Update BUILD
jpsim
pushed a commit
to envoyproxy/envoy
that referenced
this issue
Nov 28, 2022
Fixes envoyproxy/envoy-mobile#617, which resulted in duplicate symbols from protobuf being present in the final Envoy Mobile binary. The [root cause](bazelbuild/bazel#10484) is being [patched in Bazel](bazelbuild/bazel#10493). In the meantime, we can revert these two commits in protobuf ([first](protocolbuffers/protobuf@7b28278), [second](protocolbuffers/protobuf@a03d332)) and apply the diff as a patch until we're able to update Bazel with the fix. More context on the protobuf issue is available [here](protocolbuffers/protobuf#7046). Notes: - This should be reverted after updating Bazel with the fix - The version of protobuf specified in the `http_archive` should be in lockstep with upstream Envoy's version - Upstream Envoy's `@envoy//bazel:protobuf.patch` patch is also included here Signed-off-by: Michael Rebello <me@michaelrebello.com> Signed-off-by: JP Simard <jp@jpsim.com>
jpsim
pushed a commit
to envoyproxy/envoy
that referenced
this issue
Nov 29, 2022
Fixes envoyproxy/envoy-mobile#617, which resulted in duplicate symbols from protobuf being present in the final Envoy Mobile binary. The [root cause](bazelbuild/bazel#10484) is being [patched in Bazel](bazelbuild/bazel#10493). In the meantime, we can revert these two commits in protobuf ([first](protocolbuffers/protobuf@7b28278), [second](protocolbuffers/protobuf@a03d332)) and apply the diff as a patch until we're able to update Bazel with the fix. More context on the protobuf issue is available [here](protocolbuffers/protobuf#7046). Notes: - This should be reverted after updating Bazel with the fix - The version of protobuf specified in the `http_archive` should be in lockstep with upstream Envoy's version - Upstream Envoy's `@envoy//bazel:protobuf.patch` patch is also included here Signed-off-by: Michael Rebello <me@michaelrebello.com> Signed-off-by: JP Simard <jp@jpsim.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Overview
With the latest upstream Envoy update, we're seeing quite a few duplicate symbols coming from the final
Envoy.framework
. These symbols seem to be coming from protobuf. Here are a few examples:These symbols can easily be dumped and searched using:
I tried going back several versions of Envoy, and found that the commit prior to the last protobuf bump to
v3.10.1
did not have duplicate symbols. This leads me to believe that the protobuf bump commit resulted in duplication of these symbols.Fixing
It's not yet clear to me whether this issue has been fixed by upstream fixes to protobuf, as
v3.11.2
is now the latest release. We should try updating to see if this resolves the problem.Updating protobuf
I started updating protobuf in Envoy, but it appears that a change to protobuf resulted in deprecations being surfaced as warnings, which subsequently causes Envoy Mobile not to compile due to the fact that Envoy uses some of these deprecated entities.
The same change in protobuf that started surfacing these warnings also added
-Wno-deprecated-declarations
, effectively disabling the warnings in the protobuf library itself. Thus, we can either:The text was updated successfully, but these errors were encountered: