Skip to content

fix(core): pin glibc to 2.17 - #1074

Merged
simonklee merged 3 commits into
anomalyco:mainfrom
kevinchappell:fix/glibc-217-compatibility
May 16, 2026
Merged

simonklee merged 3 commits into
anomalyco:mainfrom
kevinchappell:fix/glibc-217-compatibility

Conversation

@kevinchappell

Copy link
Copy Markdown
Contributor

Summary

Tightens the Linux native target floor from glibc 2.28 down to 2.17, restoring compatibility with older enterprise distros (CentOS/RHEL 7, Amazon Linux 2, etc.) that have surfaced in opencode bug reports.

Follow-up to eb4e814 ("avoid GLIBC_2.29 requirement in linux prebuilds"), which pinned to 2.28 after the miniaudio change pulled in libm symbols. Confirmed nothing in the current native code requires symbols newer than 2.17, so we can safely drop the floor further without losing the GNU dynamic-linking behavior.

Verification

Built locally and confirmed the resulting libopentui.so requires only:
GLIBC_2.2.5, GLIBC_2.3, GLIBC_2.3.2, GLIBC_2.4, GLIBC_2.7, GLIBC_2.10 or GLIBC_2.17

No 2.18+ symbols.

End-to-end tested via a compiled opencode binary running inside centos:7 (glibc 2.17), ubuntu:18.04 (glibc 2.27), and almalinux:8 (glibc 2.28) containers. TUI launches cleanly in all three. Here are the files for testing:

Test plan

  • CI prebuild succeeds for x86_64-linux and aarch64-linux
  • readelf -V libopentui.so | grep GLIBC_ shows no symbols above GLIBC_2.17
  • Downstream consumer (opencode) launches on glibc 2.17 host

resolves #27419

Copilot AI review requested due to automatic review settings May 16, 2026 19:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR lowers the Linux GNU glibc floor for OpenTUI’s native Zig builds from 2.28 to 2.17, improving compatibility with older enterprise Linux distributions while keeping the existing native build flow.

Changes:

  • Updates supported Linux Zig targets for x86_64 and aarch64 to linux-gnu.2.17.
  • Updates the build option help text example to match the new glibc target version.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@kevinchappell
kevinchappell force-pushed the fix/glibc-217-compatibility branch from 31a009d to 4164bb2 Compare May 16, 2026 19:42
@simonklee

Copy link
Copy Markdown
Member

Thanks, i'll test this locally.

@simonklee
simonklee merged commit 2457bf9 into anomalyco:main May 16, 2026
17 checks passed
@kevinchappell
kevinchappell deleted the fix/glibc-217-compatibility branch May 16, 2026 23:30
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.

v1.14.49 introduced a hard dependency on GLIBC_2.29+

3 participants