fix: add GLIBC version detection to prevent cryptic errors on older Linux - #276
Open
algojogacor wants to merge 1 commit into
Open
fix: add GLIBC version detection to prevent cryptic errors on older Linux#276algojogacor wants to merge 1 commit into
algojogacor wants to merge 1 commit into
Conversation
Users on older Linux distributions (Ubuntu 22.04, WSL) encounter a cryptic 'GLIBC_2.39 not found' error when running smolvm because the pre-built binary is compiled against a newer glibc. This adds explicit GLIBC version checking to the wrapper script, which extracts the required GLIBC version from the binary using objdump, compares it against the system's installed GLIBC, and provides a clear error message with resolution steps when the system GLIBC is too old. Fixes smol-machines#228
BinSquare
reviewed
May 17, 2026
| echo "To resolve:" >&2 | ||
| echo " 1. Upgrade to Ubuntu 24.04 or newer, or" >&2 | ||
| echo " 2. Build smolvm from source: https://github.com/smol-machines/smolvm#building-from-source" >&2 | ||
| echo " 3. Use the smolvm Docker image: docker run --rm -it --privileged smolmachines/smolvm" >&2 |
Contributor
There was a problem hiding this comment.
We don't have a smolvm docker image (which makes sense because smolvm is a replacement for docker)
BinSquare
reviewed
May 17, 2026
| echo "This typically happens on older Linux distributions (e.g., Ubuntu 22.04)." >&2 | ||
| echo "To resolve:" >&2 | ||
| echo " 1. Upgrade to Ubuntu 24.04 or newer, or" >&2 | ||
| echo " 2. Build smolvm from source: https://github.com/smol-machines/smolvm#building-from-source" >&2 |
Contributor
There was a problem hiding this comment.
building-from-source doesn't exist today but we should have one, i'll add that in the future
|
Ready to review this PR? Stage has broken it down into 1 individual chapter for you:
Chapters generated by Stage for commit ebdfd8e on May 27, 2026 9:06pm UTC. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #228: smolvm fails with cryptic
GLIBC_2.39 not founderror on Ubuntu 22.04 / WSL.Problem
The pre-built
smolvm-binbinary is compiled on a build machine with GLIBC 2.39+, but users on Ubuntu 22.04 (which ships GLIBC 2.35) receive a crypticversion 'GLIBC_2.39' not founderror from the dynamic linker. This is especially common for WSL users who default to Ubuntu 22.04.Solution
Added explicit GLIBC version compatibility checking to the wrapper script (
scripts/smolvm-wrapper.sh):objdump -Tto extract the maximum required GLIBC version from the binaryldd --versionBefore:
After:
This gracefully handles systems without
objdumpby falling through to the existing behavior.Type of Change