Skip to content

compiler: Upgrade from CentOS 7 to AlmaLinux 8#11354

Merged
ejona86 merged 3 commits intogrpc:masterfrom
ejona86:rhel8
Jul 3, 2024
Merged

compiler: Upgrade from CentOS 7 to AlmaLinux 8#11354
ejona86 merged 3 commits intogrpc:masterfrom
ejona86:rhel8

Conversation

@ejona86
Copy link
Member

@ejona86 ejona86 commented Jul 3, 2024

CentOS 7 became end-of-life on July 1st and is no longer working. We now dynamically link against libstdc++, as RHEL 8 doesn't support static linking: https://access.redhat.com/articles/rhel8-abi-compatibility

We now use objdump in check-artifact for all linux architectures. This avoids using a mix of objdump and ldd. ldd shows transitive dependencies, which is less convenient.

ejona86 added 3 commits July 3, 2024 10:03
CentOS 7 became end-of-life on July 1st and is no longer working. We now
dynamically link against libstdc++, as RHEL 8 doesn't support static
linking: https://access.redhat.com/articles/rhel8-abi-compatibility

We now use objdump in check-artifact for all linux architectures. This
avoids using a mix of objdump and ldd. ldd shows transitive
dependencies, which is less convenient.
@ejona86 ejona86 requested review from temawi July 3, 2024 19:30
@fcharlie
Copy link

fcharlie commented Aug 6, 2024

Is there any alternative? Our Java application build process is specially customized based on CentOS 7. It is almost impossible to upgrade to a newer version (it is also troublesome to upgrade GCC libstdc++). When using protoc-gen-grpc-java, it reports an error that the CXXABI symbol cannot be found. If there is a good alternative, please let me know.

@ejona86
Copy link
Member Author

ejona86 commented Aug 6, 2024

@fcharlie, you tell us if there's an alternative. RHEL/CentOS 7 is dead, so we had to move off. I don't see a way to support the dead OS, and RHEL/AlmaLinux 8 seems to be the live distro with the oldest glibc. Over a medium term I hope to swap our protoc-gen-grpc-java build to Bazel and then make a real statically linked binary (similar to protobuf's protoc), and then we can build on any distro. But you shouldn't hold your breath for that; right now it is just a dream/aspiration.

@fcharlie
Copy link

fcharlie commented Aug 7, 2024

@fcharlie, you tell us if there's an alternative. RHEL/CentOS 7 is dead, so we had to move off. I don't see a way to support the dead OS, and RHEL/AlmaLinux 8 seems to be the live distro with the oldest glibc. Over a medium term I hope to swap our protoc-gen-grpc-java build to Bazel and then make a real statically linked binary (similar to protobuf's protoc), and then we can build on any distro. But you shouldn't hold your breath for that; right now it is just a dream/aspiration.

Is it possible to use Alpine Linux (musl libc & libc++) to statically link protoc and protoc-gen-grpc-java? The benefit of this is that protoc-gen-grpc-java can run normally on most distributions.

@ejona86
Copy link
Member Author

ejona86 commented Aug 7, 2024

Possible, probably, but that wouldn't be a quick change either.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 6, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants