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

Upstream .so name versioning? #249

Open
robert-scheck opened this issue May 28, 2020 · 0 comments
Open

Upstream .so name versioning? #249

robert-scheck opened this issue May 28, 2020 · 0 comments

Comments

@robert-scheck
Copy link

As of writing, there doesn't seem to be proper upstream .so name versioning in re. Yes, I'm aware there is something like LIB_SUFFIX=.so.0, but this unfortunately has nothing to do with proper .so name versioning, as the SONAME is still libre.so rather libre.so.0. Yes, even this can be worked around by passing some arguments like SH_LFLAGS="-shared -Wl,-soname,libre.so.0", but this still doesn't let downstreams know whether the old and the new version are ABI compatible or not, thus this should be IMHO really handled by upstream.

Quoting from section "SONAME handling" from https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning:

The SONAME field is written to the shared object by linker, using (at least in case of ld) the -soname SONAME flags. This can be passed as an option to gcc like this:

$ gcc $CFLAGS -Wl,-soname,libfoo.so.0.n -o libfoo.so.0.n

If you want to check if the SONAME field is set and what value it has, use the objdump command (from binutils):

$ objdump -p /path/to/libfoo.so.0.n | grep 'SONAME'

Please note that this issue is also meant as very kind try to convince you as upstream to start versioning your .so library (as our Fedora Packaging Guidelines request).

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

1 participant