src/Makefile: re-add major version number to soname
Commit c0b43df28a982747e081343f23289357ab4615db ("src/Makefile: use
VERSION variable consistently") changed the library soname from
liburing.so.2 to liburing.so.
The idea of soname is that executables linked against liburing.so.2
continue to work with liburing.so.2.1, liburing.so.2.2, etc because the
soname matches. They must not work against liburing.so.1 or
liburing.so.3 though since those major versions are incompatible.
Dropping the major version makes the soname unversioned and executables
will link against future liburing releases that are not compatible.
Fix the soname compatibility problem by re-adding the major version
number. Compute it from the VERSION value instead of hardcoding it in
the Makefile.
liburing 2.1:
$ readelf -a src/liburing.so.2.1 | grep SON
0x000000000000000e (SONAME) Library soname: [liburing.so.2]
commit c0b43df28a98:
$ readelf -a src/liburing.so.2.2 | grep SON
0x000000000000000e (SONAME) Library soname: [liburing.so]
With this fix:
$ readelf -a src/liburing.so.2.2 | grep SON
0x000000000000000e (SONAME) Library soname: [liburing.so.2]
Fixes: c0b43df28a982747e081343f23289357ab4615db ("src/Makefile: use VERSION variable consistently")
Reported-by: Daniel P. Berrangé <berrange@redhat.com>
Cc: Bikal Lem <gbikal+git@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Link: https://lore.kernel.org/r/20220321114101.682270-1-stefanha@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2 files changed