You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What version of gRPC and what language are you using?
1.72.0
What operating system (Linux, Windows,...) and version?
Ubuntu 24.04
What runtime / compiler are you using (e.g. python version or version of gcc)
gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
What did you do?
Tried building gRPC v1.72.0 using either CPMAddPackage or FetchContent. Compilation fails due to multiple symbol redefinitions in Abseil's time-related sources.
Reproduction Steps:
Using FetchContent:
# Using FetchContent (same issue with CPMAddPackage)
set(protobuf_INSTALL OFF)
set(utf8_range_ENABLE_INSTALL OFF)
FetchContent_Declare(
gRPC
GIT_REPOSITORY https://github.com/grpc/grpc
GIT_TAG v1.72.0
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(gRPC)
add_library(gRPC::grpc++ ALIAS grpc++)
add_executable(gRPC::grpc_cpp_plugin ALIAS grpc_cpp_plugin)
Using CPM:
CPMAddPackage(URI "gh:grpc/grpc@1.72.0" OPTIONS "protobuf_INSTALL OFF" "utf8_range_ENABLE_INSTALL OFF")
add_library(gRPC::grpc++ ALIAS grpc++)
add_executable(gRPC::grpc_cpp_plugin ALIAS grpc_cpp_plugin)
What did you expect to see?
Successful build of gRPC and dependencies without errors.
What did you see instead?
Build fails due to symbol redefinitions caused by Abseil being compiled with unity builds enabled:
[53/490] Building CXX object _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx.o
FAILED: _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx.o
/usr/bin/c++ -isystem test_cpp/cmake-build-debug/_deps/grpc-src/third_party/abseil-cpp -g -std=c++20 -fPIC -fdiagnostics-color=always -Wall -Wextra -Wcast-qual -Wconversion-null -Wformat-security -Wmissing-declarations -Wnon-virtual-dtor -Woverlength-strings -Wpointer-arith -Wundef -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -DNOMINMAX -MD -MT _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx.o -MF _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx.o.d -o _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx.o -c test_cpp/cmake-build-debug/_deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx
In file included from test_cpp/cmake-build-debug/_deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx:16:
test_cpp/cmake-build-debug/_deps/grpc-src/third_party/abseil-cpp/absl/time/time.cc:54:40: error: redefinition of ‘absl::lts_20250127::time_internal::cctz::time_point<std::chrono::duration<long int> > absl::lts_20250127::{anonymous}::unix_epoch()’
54 | inline cctz::time_point<cctz::seconds> unix_epoch() {
| ^~~~~~~~~~
In file included from test_cpp/cmake-build-debug/_deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time.dir/Unity/unity_0_cxx.cxx:13:
test_cpp/cmake-build-debug/_deps/grpc-src/third_party/abseil-cpp/absl/time/format.cc:47:40: note: ‘absl::lts_20250127::time_internal::cctz::time_point<std::chrono::duration<long int> > absl::lts_20250127::{anonymous}::unix_epoch()’ previously defined here
47 | inline cctz::time_point<cctz::seconds> unix_epoch() {
| ^~~~~~~~~~
[54/490] Building CXX object _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx.o
FAILED: _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx.o
/usr/bin/c++ -Itest_cpp/cmake-build-debug/_deps/grpc-src/third_party/abseil-cpp -g -std=c++20 -fPIC -fdiagnostics-color=always -Wall -Wextra -Wcast-qual -Wconversion-null -Wformat-security -Wmissing-declarations -Wnon-virtual-dtor -Woverlength-strings -Wpointer-arith -Wundef -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -DNOMINMAX -MD -MT _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx.o -MF _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx.o.d -o _deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx.o -c test_cpp/cmake-build-debug/_deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx
In file included from test_cpp/cmake-build-debug/_deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx:25:
test_cpp/cmake-build-debug/_deps/grpc-src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc:31:12: error: redefinition of ‘const char absl::lts_20250127::time_internal::cctz::{anonymous}::kDigits []’
31 | const char kDigits[] = "0123456789";
| ^~~~~~~
In file included from test_cpp/cmake-build-debug/_deps/grpc-build/third_party/abseil-cpp/absl/time/CMakeFiles/absl_time_zone.dir/Unity/unity_0_cxx.cxx:4:
test_cpp/cmake-build-debug/_deps/grpc-src/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc:35:12: note: ‘const char absl::lts_20250127::time_internal::cctz::{anonymous}::kDigits [11]’ previously defined here
35 | const char kDigits[] = "0123456789";
| ^~~~~~~
The text was updated successfully, but these errors were encountered:
What version of gRPC and what language are you using?
1.72.0
What operating system (Linux, Windows,...) and version?
Ubuntu 24.04
What runtime / compiler are you using (e.g. python version or version of gcc)
gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
What did you do?
Tried building gRPC v1.72.0 using either CPMAddPackage or FetchContent. Compilation fails due to multiple symbol redefinitions in Abseil's time-related sources.
Reproduction Steps:
Using FetchContent:
Using CPM:
What did you expect to see?
Successful build of gRPC and dependencies without errors.
What did you see instead?
Build fails due to symbol redefinitions caused by Abseil being compiled with unity builds enabled:
The text was updated successfully, but these errors were encountered: