Conversation
| language: csharp | ||
| src: | ||
| - src/csharp/ext/grpc_csharp_ext.c | ||
| - src/csharp/ext/std++compat.cc |
There was a problem hiding this comment.
why is this only required for C#?
There was a problem hiding this comment.
All languages having a binary distribution have this problem but they have their own solution. Python, for example, uses manylinux to build python binaries and Ruby uses a static linking.
|
|
||
| namespace std { | ||
|
|
||
| // CentOS 7 (GLIBC_2.17 / GLIBCXX_3.4.19) doesn't have a following symbol |
There was a problem hiding this comment.
what's the minimum GLIBCXX required?
There was a problem hiding this comment.
We don't have version requirement for GLIBCXX in general. This happens to have this because .NET artifacts are built on Debian 8. If we're using Cent OS 6 or 7 to build .NET artifacts, then it has a lower version requirement for GLIBCXX, which is the same idea with the manylinux platform for Python.
There was a problem hiding this comment.
Btw, we could build the .NET artifacts on an older distro if needed.
There was a problem hiding this comment.
This doesn't prevent users from building .NET artifacts from source as far as they have required build tools available.
jtattermusch
left a comment
There was a problem hiding this comment.
LGTM to avoid blocking the absl effort and because the tests pass.
My personal opinion is that hacks like this suck though.
veblush
left a comment
There was a problem hiding this comment.
Thank you for the review. Having more conservative build environment such as manylinux2010 would be better than this. I'll review that option, too.
Added missing symbols for CentOS 7 which lacks symbols from
GLIBCXX_3.4.20. These symbols can be used by C++ libraries and adding Abseil makes gRPC use these symbols.This is a prerequisite to #20184.