Skip to content

Commit

Permalink
libmpathpersist: reinstate ABI 2.1.0
Browse files Browse the repository at this point in the history
__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 <[email protected]>
Reviewed-by: Benjamin Marzinski <[email protected]>
  • Loading branch information
mwilck committed Aug 15, 2024
1 parent a583dcd commit ced5e53
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
17 changes: 12 additions & 5 deletions libmpathpersist/libmpathpersist.version
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 6 additions & 0 deletions libmpathpersist/mpath_persist.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
{
Expand Down

0 comments on commit ced5e53

Please sign in to comment.