Skip to content
Latchkey

ld/runtime "version GLIBC_X not found" in CI

glibc uses symbol versioning. A binary linked against a newer glibc requests versioned symbols (GLIBC_2.34, etc) that an older runtime image does not provide.

What this error means

A prebuilt binary or shared library fails to load with "version GLIBC_2.XX not found (required by ...)", typically when build and run images differ.

ld
./app: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.34' not found (required by ./app)

Common causes

How to fix it

Align glibc between build and runtime

  1. Build on the same (or older) base image as the runtime image.
  2. Or upgrade the runtime image to a glibc at least as new as the build.
ld
# check the glibc a binary requires
objdump -T app | grep GLIBC_ | sort -u

How to prevent it

  • Build and run on matching base images, and pin glibc-relevant base image tags so a newer build glibc never outpaces the runtime.

Frequently asked questions

What causes ""version GLIBC_X not found""?
A prebuilt binary or shared library fails to load with "version GLIBC_2.XX not found (required by ...)", typically when build and run images differ.
How do I fix "version GLIBC_X not found"?
Align glibc between build and runtime

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card