Closed
Conversation
7782d60 to
0f54db7
Compare
There was a problem hiding this comment.
Pull request overview
This PR upgrades gRPC from version 1.16.1 to 1.40.0 and refactors the abseil-cpp dependency management to address symbol conflicts. The key architectural change is moving abseil-cpp from a git submodule to a system-wide installation shared between gRPC and Gringofts, compiled with C++17 to ensure ABI compatibility and use of standard library types.
Changes:
- Upgraded gRPC to 1.40.0 and abseil-cpp to 20210324.0 LTS release
- Removed abseil-cpp git submodule and implemented system-wide installation
- Updated build scripts to compile both gRPC and abseil-cpp with C++17 standard and consistent compiler flags
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/installDependencies.sh | Added system-wide abseil-cpp installation with C++17 and SIGSTKSZ fix; updated gRPC installation to use system abseil package |
| scripts/downloadDependencies.sh | Updated gRPC version to 1.40.0 and CMake download URL to GitHub |
| scripts/addSubmodules.sh | Removed abseil-cpp submodule initialization |
| CMakeLists.txt | Changed from submodule to system abseil via find_package(); removed submodule include path |
| dockers/dependencies/install.Dockerfile | Updated Docker image tag from v3 to v4 |
| dockers/dependencies/download.Dockerfile | Updated Docker image tag from v3 to v4 |
| README.md | Updated Docker image references from v3 to v4; removed abseil-cpp from third-party license section |
| .github/workflows/main.yml | Updated CI workflow to use v4 Docker image |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
haoli3377
approved these changes
Feb 25, 2026
Collaborator
Author
|
gRPC1.40 in this compile image has performance degradation, so close this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Key Changes
1. Dependencies Version Upgrade
2. Abseil-cpp Dependency Refactoring
Before: abseil-cpp was managed as a git submodule of Gringofts. Gringofts and gRPC both has their own Abseil-cpp. Abseil is compiled separately for both, and are linked together at last.
After: abseil-cpp (version 20210324.0) is installed system-wide and shared across both gRPC and Gringofts. It is only compiled and installed once.
(If don't do so, 20210324.0 abseil in Gringofts and gRPC have symbol conflict)
3. Symbol Conflict Resolution
Problem: gRPC 1.40 exposes abseil symbols, which could conflict with Gringoft's abseil symbols when linking executables
Solution:
std::string_view,std::optional, etc.) instead of abseil's own typesgRPC_ABSL_PROVIDER=packageto ensure gRPC links against system-installed abseil