[dm-devel] [PATCH 00/11] multipath-tools: add linker version scripts
Benjamin Marzinski
bmarzins at redhat.com
Fri Sep 25 02:09:55 UTC 2020
On Thu, Sep 24, 2020 at 03:36:33PM +0200, mwilck at suse.com wrote:
> 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.
>
Reviewed-by: Benjamin Marzinski <bmarzins at redhat.com>
For this patchset, except for 0002 and 0008
> 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