-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
ARROW-15388: [C++] Avoid including absl from flatbuffers #12204
Conversation
There may be an incomplete/broken copy of the Abseil library lying around (for example because of a race condition while installing it as a bundled library). Since absl is only used by Flatbuffers to provide a string_view facility, use our own vendored string_view instead.
@coryan Not sure whether you have an opinion on this? |
|
To me, it seems odd to patch the code to fix a race condition during the build. Seems like the "Right Thing"[tm] would be to fix the dependency graph to make flatbuffers depend on Abseil? Is that very hard for some reason? |
It's a bit convoluted and awkward, as Abseil is only an optional indirect dependency of the GCSFS implementation. Furthermore, since Flatbuffers is vendored, I don't think it has an existence in the dependency graph at all currently (it's basically always there). |
I see. Consider that (by default) You may want to just disable the automatic detection of Abseil's string view. Just my $0.02, I think your change should work as-is too. |
Flatbuffers' use of string_view is merely to enable two APIs (that we don't currently use AFAICT, so we may indeed as well disable it). It doesn't store any |
If it just enables APIs we don't use, I would lean towards avoiding the mess in the first place and just removing the detection as well. But as-is things are OK here too. |
@pitrou shall we include this in 7.0 (in the case I need to cut another RC)? |
@kszucs There's no real need to. |
Crossbow C++ builds: https://github.com/ursacomputing/crossbow/branches/all?page=1&query=build-592 |
Benchmark runs are scheduled for baseline = a3efe72 and contender = 22dc537. 22dc537 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
There may be an incomplete/broken copy of the Abseil library lying around
(for example because of a race condition while installing it as a bundled library).
Since absl is only used by Flatbuffers to provide a string_view facility,
use our own vendored string_view instead.