diff mbox series

[2/2] libmpathpersist: reinstate ABI 2.1.0

Message ID 20240813094046.21644-2-mwilck@suse.com (mailing list archive)
State Not Applicable, archived
Delegated to: christophe varoqui
Headers show
Series [1/2] libmpathcmd: reinstate ABI 1.0.0 | expand

Commit Message

Martin Wilck Aug. 13, 2024, 9:40 a.m. UTC
__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@suse.com>
---
 libmpathpersist/libmpathpersist.version | 17 ++++++++++++-----
 libmpathpersist/mpath_persist.c         |  6 ++++++
 2 files changed, 18 insertions(+), 5 deletions(-)
diff mbox series

Patch

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)
 {