Skip to content

build: downgrade multiarch to Ubuntu 20.04 and consolidate images (1.82.x backport)#12849

Open
ejona86 wants to merge 1 commit into
grpc:v1.82.xfrom
ejona86:backport-ubuntu-glibc-1.82
Open

build: downgrade multiarch to Ubuntu 20.04 and consolidate images (1.82.x backport)#12849
ejona86 wants to merge 1 commit into
grpc:v1.82.xfrom
ejona86:backport-ubuntu-glibc-1.82

Conversation

@ejona86

@ejona86 ejona86 commented Jun 8, 2026

Copy link
Copy Markdown
Member

Downgrades the multiarch build environment from Ubuntu 24.04 to 20.04. This ensures that native artifacts for aarch64 and ppc64le are linked against glibc 2.31, providing better compatibility with older but still-supported distributions (like RHEL 8 and Ubuntu 20.04).

Additionally, this consolidates s390x cross-compilation into the multiarch image, removing the need for a separate ubuntu2004 base image.

  • Update Dockerfile.multiarch.base to use ubuntu:20.04

  • Add g++-s390x-linux-gnu to multiarch image

  • Update linux_artifacts.sh to use multiarch for all cross-builds

  • Remove references to Dockerfile.ubuntu2004.base in build scripts

    Summary of what this commit achieves:

    1. Improves Compatibility: Lowering the glibc requirement from 2.39 (Ubuntu 24.04) to 2.31 (Ubuntu 20.04) prevents "version `GLIBC_2.XX' not found" errors when users try to run the artifacts on older systems.
    2. Simplifies CI: Merges the s390x toolchain into the multiarch image, reducing the number of Docker images the project needs to build and maintain.
    3. Implements stopgap: Directly implements the choice of Ubuntu 20.04 suggested as a safer stopgap for the build.

Fixes #12797.

Backport of #12830

…pc#12830)

Downgrades the multiarch build environment from Ubuntu 24.04 to 20.04.
This ensures that native artifacts for aarch64 and ppc64le are linked
against glibc 2.31, providing better compatibility with older but
still-supported distributions (like RHEL 8 and Ubuntu 20.04).

Additionally, this consolidates s390x cross-compilation into the
multiarch image, removing the need for a separate ubuntu2004 base image.

- Update Dockerfile.multiarch.base to use ubuntu:20.04
- Add g++-s390x-linux-gnu to multiarch image
- Update linux_artifacts.sh to use multiarch for all cross-builds
- Remove references to Dockerfile.ubuntu2004.base in build scripts

  Summary of what this commit achieves:
1. Improves Compatibility: Lowering the glibc requirement from 2.39
(Ubuntu 24.04) to 2.31 (Ubuntu 20.04) prevents "version `GLIBC_2.XX' not
found" errors when users try to run the artifacts on older systems.
2. Simplifies CI: Merges the s390x toolchain into the multiarch image,
reducing the number of Docker images the project needs to build and
maintain.
3. Implements stopgap: Directly implements the choice of Ubuntu 20.04
suggested as a safer stopgap for the build.

Fixes grpc#12797.
@ejona86 ejona86 requested a review from kannanjgithub June 8, 2026 22:02
@ejona86 ejona86 added the kokoro:run Add this label to a PR to tell Kokoro the code is safe and tests can be run label Jun 9, 2026
@grpc-kokoro grpc-kokoro removed the kokoro:run Add this label to a PR to tell Kokoro the code is safe and tests can be run label Jun 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants