[dm-devel] [PATCH 00/11] multipath-tools: add linker version scripts
mwilck at suse.com
mwilck at suse.com
Thu Sep 24 13:36:33 UTC 2020
From: Martin Wilck <mwilck at suse.com>
Hi Christophe, hi Ben,
Patch 1-5 are small fixes, the first two resent from an earlier
submission. Patch 6ff. add version scripts for the linker to
libmultipath, libmpathpersist, and libmpathcmd.
Is it useful to do this for libmultipath? We have always said that this is
not a public, stable ABI. However, I still believe it has merits. First of
all, it's a description of the ABI we use. It turns out that it cuts the
size of the exported symbol list of libmultipath roughly in half, which is
better than I'd expected. It leads to ld.so-time failure rather than weird
crashes in the unlikely case that non-matching binaries are used
together. It allows packaging scripts to check compatibility of binaries
and libraries without resorting to version and release. It will help us
stabilize the ABI, albeit only in the long run. Finally, it's a step
towards modernizing our code base in general.
To avoid misunderstanding, my intention is not to provide a stable or even
backward-compatible ABI in libmultipath.so.0. We're still allowed to make
changes to globally visible data structures like "struct config", and to
remove symbols from the ABI, like no serious shared library would do.
We just need to bump the ABI version when we do so.
Regards,
Martin
Martin Wilck (11):
libmultipath: find_mpe(): don't match with empty WWID
libmultipath: copy mpp->hwe from pp->hwe
libmultipath: dm_map_present_by_uuid(): fix dm_task_create() call
libdmmp tests: fix compilation
libmultipath: prio: constify some function parameters
libmultipath: checkers/prio: allow non-lazy .so loading
multipath-tools Makefiles: separate rules for .so and man pages
libmultipath: create separate .so for unit tests
libmultipath: add linker version script
libmpathpersist: add linker version script
libmpathcmd: add linker version script
libdmmp/test/libdmmp_speed_test.c | 2 +-
libdmmp/test/libdmmp_test.c | 2 +-
libmpathcmd/Makefile | 14 +-
libmpathcmd/libmpathcmd.version | 13 ++
libmpathpersist/Makefile | 16 +-
libmpathpersist/libmpathpersist.version | 20 +++
libmultipath/Makefile | 22 ++-
libmultipath/checkers.c | 17 ++
libmultipath/config.c | 2 +-
libmultipath/configure.c | 7 +
libmultipath/devmapper.c | 2 +-
libmultipath/libmultipath.version | 215 ++++++++++++++++++++++++
libmultipath/prio.c | 26 ++-
libmultipath/prio.h | 4 +-
libmultipath/propsel.c | 4 +-
libmultipath/structs.c | 15 ++
libmultipath/structs.h | 1 +
libmultipath/structs_vec.c | 54 +++---
multipathd/main.c | 10 --
tests/Makefile | 10 +-
20 files changed, 384 insertions(+), 72 deletions(-)
create mode 100644 libmpathcmd/libmpathcmd.version
create mode 100644 libmpathpersist/libmpathpersist.version
create mode 100644 libmultipath/libmultipath.version
--
2.28.0
More information about the dm-devel
mailing list