-
Notifications
You must be signed in to change notification settings - Fork 41
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
protoc plugin doesn't work on RHEL 6 #45
Comments
@flyinprogrammer you think you can help with this? |
TL;DR: Based on my assumptions, I believe the fastest, short-term solution we have for you is to download this source code, checkout the tagged version of the plugin you prefer, compile it on your RHEL system, and then publish it within your own ecosystem as the package to use for yourself and anyone that needs supporting. While you're doing that, I'll see what we'll have to do to get the build to run in a CentOS 6 container. As the TL:DR might suggest, I suspect this is going to be a bit more challenging to support than we'd all like. I suspect that this error is telling us that To provide evidence of this being the error, you can verify your GLIBC version this by running
Given that assumption, we might have 2 choices, tell gcc to compile to/against a backward compatible, older version of GLIBC - or get us a build environment running an older version of GLIBC. At the time of writing, I'm unaware of how to get gcc to target any other version of glibc than what is available in the build environment, and historically I've found the fastest, easiest, and most reliable way to change what version of glibc should be targeted is to use an OS who's versions align with our goal. This means finding a distro that still relies on GLIBC 2.12 or older. Today, we use Travis CI to build and publish our artifacts. The only linux distro Travis CI supports is Ubuntu, and the oldest release they support is Precise 12.04.5 LTS. I made a little project to figure out what versions of glibc they're building with: Precise: https://travis-ci.org/flyinprogrammer/thequestforglibc/builds/594670279
Trusty: https://travis-ci.org/flyinprogrammer/thequestforglibc/builds/594671057
Xenial: https://travis-ci.org/flyinprogrammer/thequestforglibc/builds/594671321
Bionic: https://travis-ci.org/flyinprogrammer/thequestforglibc/builds/594671567
And none of them are viable options, which is a bummer. So since this isn't going to be a small YAML change, I started looking into what our options might be if we ran the builds inside linux containers, and it looks like the Centos 6 container will satisfy our issue, providing we don't run into other issues of course:
|
Unfortunately RHEL 6 (6.10) is still mainstream at work and the protoc plugin fails with this error:
ERROR] PROTOC FAILED: xxxxxx/target/protoc-plugins/rsocket-rpc-protobuf-0.2.19-linux-x86_64.exe: /lib64/libc.so.6: version 'GLIBC_2.14' not found (required by xxxxxx/target/protoc-plugins/rsocket-rpc-protobuf-0.2.19-linux-x86_64.exe)
--rsocketRpc_out: protoc-gen-rsocketRpc: Plugin failed with status code 1.
Protoc itself works fine.
The text was updated successfully, but these errors were encountered: