Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

documenting ABI soname policy #56

Closed
drew-parsons opened this issue Oct 17, 2019 · 1 comment
Closed

documenting ABI soname policy #56

drew-parsons opened this issue Oct 17, 2019 · 1 comment

Comments

@drew-parsons
Copy link
Contributor

The current 2.18.1 hypre code sets the soname for HYPRE shared libraries using HYPRE_RELEASE_VERSION,
e.g. SONAME = libHYPRE-${HYPRE_RELEASE_VERSION}${HYPRE_LIB_SUFFIX} in src/lib/Makefile

HYPRE_RELEASE_VERSION is set from HYPRE_VERSION in src/config/Makefile.config.in. HYPRE_VERSION is the full major.minor.patch version set in src/CMakeLists.txt or src/config/configure.in. So the current value of HYPRE_VERSION is 2.18.1.

In principle it means 2.18.1 is not ABI compatible with 2.18.0. Is this the intention, or should the 2.18 series be considered compatible (in which case the soname could be libHYPRE-2.18.so rather than libHYPRE-2.18.1.so).

If each patch release is intended to be considered incompatible, then could I trouble you to consider putting a comment in INSTALL.md or README.md to document that? That would help avoid confusion about the ABI policy in the future, since usually libraries are ABI compatible across patch releases.

@rfalgout
Copy link
Contributor

Thanks for pointing this out. I'm not a fan of shared libraries (way too complicated) and didn't even know ABI compatibility was a thing. It looks like ensuring this would require a fair amount of work that isn't worthwhile for this project at this point in time, but your suggestion of commenting on ABI compatibility in the INSTALL.md file is a good one. I just pushed an update to master.

If this becomes a big issue for users in the future, we'll revisit this question. Thanks again!

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

No branches or pull requests

2 participants