__mpath_persistent_reserve_{in,out}() were part of our public ABI. Instead of removing them completely, define it as a weak aliases. This way, programs linked against previous versions of libmpathpersist will continue to work. This shouldn't interfere with general symbol naming rules, as a weak symbol won't override a library symbol of the same name. Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmpathpersist/libmpathpersist.version | 17 ++++++++++++----- libmpathpersist/mpath_persist.c | 6 ++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libmpathpersist/libmpathpersist.version b/libmpathpersist/libmpathpersist.version index f467d99..c7ddafb 100644 --- a/libmpathpersist/libmpathpersist.version +++ b/libmpathpersist/libmpathpersist.version @@ -10,23 +10,30 @@ * * See libmultipath.version for general policy about version numbers. */ -LIBMPATHPERSIST_3.0.0 { +/* Previous API for backward compatibility */ +LIBMPATHPERSIST_2.1.0 { global: - /* public API as defined in mpath_persist.h */ libmpathpersist_exit; libmpathpersist_init; mpath_lib_exit; mpath_lib_init; mpath_mx_alloc_len; mpath_persistent_reserve_free_vecs; - mpath_persistent_reserve_in__; + __mpath_persistent_reserve_in; mpath_persistent_reserve_in; mpath_persistent_reserve_init_vecs; - mpath_persistent_reserve_out__; + __mpath_persistent_reserve_out; mpath_persistent_reserve_out; -local: *; +local: + *; }; +LIBMPATHPERSIST_2.2.0 { +global: + mpath_persistent_reserve_in__; + mpath_persistent_reserve_out__; +} LIBMPATHPERSIST_2.1.0; + __LIBMPATHPERSIST_INT_1.0.0 { /* Internal use by multipath-tools */ dumpHex; diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c index ace91d7..f5267eb 100644 --- a/libmpathpersist/mpath_persist.c +++ b/libmpathpersist/mpath_persist.c @@ -127,6 +127,8 @@ int mpath_persistent_reserve_in__(int fd, int rq_servact, resp, noisy); } +extern int __mpath_persistent_reserve_in(int, int, struct prin_resp *, int) + __attribute__((weak, alias("mpath_persistent_reserve_in__"))); int mpath_persistent_reserve_out__( int fd, int rq_servact, int rq_scope, unsigned int rq_type, struct prout_param_descriptor *paramp, int noisy) @@ -136,6 +138,10 @@ int mpath_persistent_reserve_out__( int fd, int rq_servact, int rq_scope, noisy); } +extern int __mpath_persistent_reserve_out(int, int, int, unsigned int, + struct prout_param_descriptor *, int) + __attribute__((weak, alias("mpath_persistent_reserve_out__"))); + int mpath_persistent_reserve_in (int fd, int rq_servact, struct prin_resp *resp, int noisy, int verbose) { -- 2.46.0