Skip to content

Set the library SOVERSION to major.minor - #1101

Merged
jhale merged 2 commits into
mainfrom
jhale/soversion-major-minor
Oct 18, 2026
Merged

jhale merged 2 commits into
mainfrom
jhale/soversion-major-minor

Conversation

@jhale

@jhale jhale commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Basix 0.x minor releases can break the C++ ABI, but the SOVERSION was only the major version, so every release installed as libbasix.so.0 / libbasix.0.dylib. A library built against one minor release would then load another and fail later with undefined symbols.

The SOVERSION is now major.minor (libbasix.so.0.12, libbasix.0.12.dylib), so a mismatch fails at load time. Patch releases keep the same SOVERSION and must stay ABI compatible. Windows is unaffected.

Downstream packaging that names the library file needs a matching update. The DOLFINx wheel workflow's macOS install-name rewrite is one example.

@drew-parsons (Debian), @minrk (conda-forge) and @francesco-ballarin (FEM on Colab/Kaggle) for awareness, since this changes the installed library name.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JudYk8UecTQyirGsLsHUN2

jhale and others added 2 commits October 18, 2026 08:03
Each 0.x minor release can break the ABI, so a major-only SOVERSION lets
the loader pair libraries with an incompatible libbasix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JudYk8UecTQyirGsLsHUN2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JudYk8UecTQyirGsLsHUN2
@drew-parsons

Copy link
Copy Markdown
Contributor

@jhale
jhale added this pull request to the merge queue Oct 18, 2026
Merged via the queue into main with commit 9654852 Oct 18, 2026
21 checks passed
@jhale
jhale deleted the jhale/soversion-major-minor branch October 18, 2026 10:21
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.

2 participants