-
Notifications
You must be signed in to change notification settings - Fork 370
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
Non-public Abseil API is used for CLI parsing #790
Comments
Hi musicinmybrain, We are going to update the Abseil version to 20230802.0 in near future. However the latest release of Protobuf does not support the latest Abseil yet. It's a blocking issue for us. So we start updating the Abseil version after the new Protobuf (e.g. 24.1) is released. Meanwhile, I hope the following change works on your side. We'd also like to recommend to use a static link without the patch.
Thanks, |
Just fyi, the above change in protobuf 24.x branch got reverted at protocolbuffers/protobuf#13597. Whether protobuf 24.x is going to be related with Abseil 20230802.0 looks to be unclear at this moment. |
The patch works perfectly; thank you! For our purposes, the benefits of linking against system-wide shared libraries outweigh the costs of carrying the patch.
Thank you both for mentioning this. We aren’t blocked from updating Abseil for Fedora 39 (largely because we haven’t been able to make the transition to protobuf v4, 22.x and later, yet), but these links will save some time down the road. |
* Added the check of the Abseil version to the arguments of ParseCommandLineImpl. * #790 #codehealth PiperOrigin-RevId: 561867167
cad4064 fixes the build error with Abseil 20230802.0 by adding the version check. Thank you for your feedback. |
@musicinmybrain, just fyi, it seems that Abseil exposes different ABIs depending on what C++ language level is chosen when building it. See the following discussions for instance.
So it's not only about a classical "diamond dependency problem" (*) any more but also a "diamond C++ language level problem". Just as a heads up Mozc will soon start to using C++20 (#783), and what Mozc would expect are abseil built with (*) https://abseil.io/resources/swe-book/html/ch21.html
|
Thanks for pointing that out. I’m aware of the significant ABI difference from C++14 to C++17; we handled it by making sure all packages that depend on |
* Added the check of the Abseil version to the arguments of ParseCommandLineImpl. * google#790 #codehealth PiperOrigin-RevId: 561867167
Origin: google@cad4064 Description: Fix the compile error of ParseCommandLineFlags with Abseil LTS 20230802. * Added the check of the Abseil version to the arguments of ParseCommandLineImpl. * google#790 #codehealth PiperOrigin-RevId: 561867167 Author: Hiroyuki Komatsu <[email protected]> Released in 2.29.5374.102 Signed-off-by: Kentaro Hayashi <[email protected]>
Origin: google@cad4064 Description: Fix the compile error of ParseCommandLineFlags with Abseil LTS 20230802. * Added the check of the Abseil version to the arguments of ParseCommandLineImpl. * google#790 #codehealth PiperOrigin-RevId: 561867167 Author: Hiroyuki Komatsu <[email protected]> Released in 2.29.5374.102 Signed-off-by: Kentaro Hayashi <[email protected]>
Origin: google@cad4064 Description: Fix the compile error of ParseCommandLineFlags with Abseil LTS 20230802. * Added the check of the Abseil version to the arguments of ParseCommandLineImpl. * google#790 #codehealth PiperOrigin-RevId: 561867167 Author: Hiroyuki Komatsu <[email protected]> Released in 2.29.5374.102 Signed-off-by: Kentaro Hayashi <[email protected]>
Description
Non-public APIs from the
absl::flags_internal
namespace are used for command-line option parsing.mozc/src/base/init_mozc.cc
Lines 88 to 94 in 88d5ef3
Since this interface is removed in the latest
abseil-cpp
release, this blocks upgrading Abseil.Steps to reproduce
Steps to reproduce the behavior:
Expected behavior
Only public APIs are used; upgrading
abseil-cpp
to the latest LTS release is possible.Actual behavior
Some non-public APIs are used; upgrading
abseil-cpp
to the latest LTS release is not possible, resulting in an error like:Screenshots
N/A
Version or commit-id
Current
master
88d5ef3.Or, 2.29.5111.102.
Environment
Investigations
(e.g. Mozc-2.28.4960.100+24.11.oss).
Additional context
I discovered this problem while attempting to upgrade the
abseil-cpp
package in Fedora Linux, where a patch is used to buildmozc
with the system copy of Abseil.https://github.com/abseil/abseil-cpp/blob/20230802.0/absl/flags/internal/parse.h#L45-L53
The text was updated successfully, but these errors were encountered: