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

No ABI stability? #100

Closed
AdamMajer opened this issue Jul 13, 2021 · 3 comments
Closed

No ABI stability? #100

AdamMajer opened this issue Jul 13, 2021 · 3 comments

Comments

@AdamMajer
Copy link

Commit a828e2e basically sets soversion to be the same as the release version. Does this mean there is no ABI stability for this library? Every update is not compatible with the last?

@arr2036
Copy link
Collaborator

arr2036 commented Jul 13, 2021

We no longer set the SOVERSION explicitly. Theoretically every version should be 100% ABI compatible with the previous releases as we're not changing any of the public types or function signatures. Are you seeing SOVERSION tick up with different releases still?

@AdamMajer
Copy link
Author

The SOVERSION is set to PROJECT_VERSION

set_target_properties(kqueue PROPERTIES SOVERSION ${PROJECT_VERSION})

So while it may not change, this is a little confusing that the PROJECT_VERSION is not changing either. SOVERSION is also more typically without the . in it since it is normally part of the runtime which forms the package name. For example, in Debian, the sover is still patched to be 0 and this makes the runtime name simple,

https://packages.debian.org/sid/libkqueue0

If the point of the original commit a828e2e is to include the project version in the distributed binary, then the libraries should be,

libkqueue.so   -> libkqueue.so.0                   --- devel symlink points to soname (or the library)
libkqueue.so.0 -> libkqueue.so.${PROJECT_VERSION}  --- soname points to library
libkqueue.so.${PROJECT_VERSION}                    --- actual library

All the linked binaries would then reference the libkqueue.so.0 where the SOVERSION is set to 0

Could we just set the SOVERSION to a static number instead of referencing the PROJECT_VERSION?

@arr2036
Copy link
Collaborator

arr2036 commented Jul 15, 2021

That sounds fine. Would you mind raising a PR for this, and whatever you consider to be the correct fix for #101.

Thanks!

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