-
Notifications
You must be signed in to change notification settings - Fork 423
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
Update gRPC #666
Update gRPC #666
Conversation
Codecov Report
@@ Coverage Diff @@
## main #666 +/- ##
=======================================
Coverage 96.19% 96.19%
=======================================
Files 153 153
Lines 6444 6444
=======================================
Hits 6198 6198
Misses 246 246 |
4c42342
to
0af57d3
Compare
The problem in Don't know why compiling with gcc 4.8 is still failed after I have added |
I will give it a try with my limited bazel understanding :) |
It looks like GCC 4.8 is not supported by the latest versions of gRPC :
|
Could we reference a different (supported) gRPC for GCC 4.8, instead of just not supporting GCC 4.8? |
I found https://abseil.io/docs/cpp/platforms/platforms shows abseil only support gcc 5.1+. Which is also different from gRPC. |
Yes, I too noticed that. Not sure how gRPC uses abseil and whether it's only the part of abseil which compiles with GCC 4.9. We can discuss this in the community meeting (today) about how to proceed with the gRPC upgrade ( as this is needed for the build using Bazel 4.0.0 ). |
My proposal would be
cc @open-telemetry/cpp-approvers for comment here. Just to add, there was a previous try by @bogdandrutu to upgrade gRPC which failed for same reason ( #459 ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. I think you need to get a sign-off from Josh on Bazel changes.
@maxgolov @jsuereth - would need feedback on the approach to go ahead with this PR. The problem right now is that the latest versions of gRPC (grpc-1.37.0) require gcc4.9+ ( so legacy bazel build on gcc4.8 is failing). and the currently used version (grpc-1.28.0) doesn't compile using bazel 4.0.0. Please go over the discussions in this PR where the approach is discussed, and provide your suggestions? We can either bump up our gcc version in legacy cmake/bazel builds, and say that opentelemetry-cpp needs at least gcc4.9 to compile, or have separate dependencies for otlp-exporter |
The latest version of gRPC which can be compiled by gcc-4.8 is 1.33.2. It's also the last version of gRPC use 20200225.3. BTW: The official support of vcpkg require g++>=6 . Do we need a standalone cmake toolchain to support gcc-4.8? |
I'm wondering if we can have no-vcpkg, CMake-only build. My understanding we do not necessarily require vcpkg. The full set of binaries can be built with just plain CMake, even for an older system such as Or can we have an option to only build Bazel legacy with an older gRPC? I have hit a similar issue in another library before. Such as either Google Test or Google Benchmark, would only compile with cmake or classic gnu make, and not with more recent build system on older Ubuntu distro.. Also, in general , as we intake new versions of dependencies -- new versions of 3rd party deps are forcing us to upgrade to more recent compiler, and/or CMake tooling.
Can we capture - what old legacy versions worked well with an old legacy compiler, and maintain that as a separate build configuration - or do you think it is too much of a hassle to maintain? I had this build script (outside of standard https://github.com/open-telemetry/opentelemetry-cpp/blob/main/tools/build.sh It was running well in a number of docker containers last year: Older Ubuntu-14.04-LTS by default comes with We can probably add that as part of CI loop to verify the build with older set of deps. Such as |
@jsuereth - I wonder why don't we just turn off |
@maxgolov - Currently, our CMake + As I suggested above, we should be splitting the CI into two parts ( for both cmake and bazel ): gcc-4.8 without otlp, and gcc-4.9 with otlp. |
Instead of turning of bazel with GCC 4.8, could we turn off |
Agree, that's what I am proposing too ( for both cmake/bazel): gcc-4.8 without otlp, gcc-4.9 with otlp, gcc-latest with otlp |
So are you folks saying that we cannot support |
I agree. We will not support gcc 4.8 + OTLP with the latest gRPC. This is decided by gRPC and its dependencies instead of us. As we discussed, the user could still specify a prior gRPC version which works with gcc 4.8 (we could document this). |
I'm working to try to use cmake to build old grpc and all the dependency in my project. And I will try to intergrate opentelemetry-cpp |
Makes sense. Can you check out these scripts: https://github.com/open-telemetry/opentelemetry-cpp/blob/main/tools/build.sh Maybe we can add a docker image for rhel7 .. I had something here in another project, which we may repurpose for OpenTelemetry C++ SDK build: We could have also recommended something like |
There are some binary SDK packages provided by upstream in our system, so I can not just upgrade toolchains for now.
I have create a toolset on https://github.com/atframework/cmake-toolset to build above tools/libraries and it works on both Linux, macOS and Windows. It can works with gcc 4.8 and also be used to build iOS and Android targets. And even more, it allow me to use our local mirror repositories instead of pulling from github, and I can custom some building options when need. |
Signed-off-by: owent <admin@owent.net>
… grpc Signed-off-by: owent <admin@owent.net>
@owent - can this PR be closed without merging, I think you solved it in your other PR? |
@maxgolov I don't think this is solved yet - we still can't upgrade to grpc 1.38.0 because of our gcc 4.8 support. We should either change our base version support to gcc 4.9 or don't support OTLP with gcc4.8 ( and keep supporting it for non-otlp customers ). |
Fixes #665
Changes
Update gRPC to 1.38.0 .
For significant contributions please make sure you have completed the following items:
CHANGELOG.md
updated for non-trivial changes