From 7e497871d11a3a527e2ce192e4274322631f27d0 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Mon, 3 Nov 2014 16:07:30 -0500 Subject: api: versioned symbols in libgfapi.so for compatibility Use versioned symbols to keep libgfapi at libgfapi.so.0.0.0 Some nits uncovered: + there are a couple functions declared that do not have an associated definition, e.g. glfs_truncate(), glfs_caller_specific_init() + there are seven private/internal functions used by heal/src/glfsheal and the gfapi master xlator (glfs-master.c): glfs_loc_touchup(), glfs_active_subvol(), and glfs_subvol_done(), glfs_init_done(), glfs_resolve_at(), glfs_free_from_ctx(), and glfs_new_from_ctx(); which are not declared in glfs.h; + for this initial pass at versioned symbols, we use the earliest version of all public symbols, i.e. those for which there are declarations in glfs.h or glfs-handles.h. Further investigation as we do backports to 3.6, 3.4, and 3.4 will be required to determine if older implementations need to be preserved (forward ported) and their associated alias(es) and symbol version(s) defined. FWIW, we should consider linking all of our libraries with a map, it'll result in a cleaner ABI. Perhaps something for an intern to do or a Google Summer of Code project. Change-Id: I499456807a5cd26acb39843216ece4276f8e9b84 BUG: 1160709 Signed-off-by: Kaleb S. KEITHLEY Reviewed-on: http://review.gluster.org/9036 Tested-by: Gluster Build System Reviewed-by: Niels de Vos Tested-by: Niels de Vos Reviewed-by: Vijay Bellur --- configure.ac | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 4de524f8bda..7d771f5d3a9 100644 --- a/configure.ac +++ b/configure.ac @@ -206,6 +206,7 @@ AC_CONFIG_FILES([Makefile libgfchangelog.pc api/Makefile api/src/Makefile + api/src/gfapi.map api/examples/Makefile geo-replication/Makefile geo-replication/src/Makefile @@ -1106,7 +1107,7 @@ AC_SUBST(GLUSTERD_WORKDIR) AM_CONDITIONAL([GF_INSTALL_GLUSTERD_WORKDIR], test ! -d ${GLUSTERD_WORKDIR} && test -d ${sysconfdir}/glusterd ) dnl pkg-config versioning -GFAPI_VERSION="7.0.0" +GFAPI_VERSION="0.0.0" LIBGFCHANGELOG_VERSION="0.0.1" AC_SUBST(GFAPI_VERSION) AC_SUBST(LIBGFCHANGELOG_VERSION) @@ -1116,7 +1117,7 @@ LIBGFXDR_LT_VERSION="0:1:0" LIBGFRPC_LT_VERSION="0:1:0" LIBGLUSTERFS_LT_VERSION="0:1:0" LIBGFCHANGELOG_LT_VERSION="0:1:0" -GFAPI_LT_VERSION="7:0:0" +GFAPI_LT_VERSION="0:0:0" AC_SUBST(LIBGFXDR_LT_VERSION) AC_SUBST(LIBGFRPC_LT_VERSION) AC_SUBST(LIBGLUSTERFS_LT_VERSION) -- cgit