From ec1c292b26b0e9d03c3ddf6ab3937e1e4f32de86 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Thu, 19 Nov 2009 23:49:59 +0100 Subject: [PATCH] libhandle: add symbol versioning Add symbol versioning for libhandle. For now version 1.0.3 contains all pre-existing symbols, any new additions both needs a minor version bump and an entry in libhandle.sym. Signed-off-by: Christoph Hellwig Reviewed-by: Eric Sandeen --- libhandle/Makefile | 3 +++ libhandle/libhandle.sym | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 libhandle/libhandle.sym diff --git a/libhandle/Makefile b/libhandle/Makefile index 369252d50..4ce087801 100644 --- a/libhandle/Makefile +++ b/libhandle/Makefile @@ -10,7 +10,10 @@ LT_CURRENT = 1 LT_REVISION = 3 LT_AGE = 0 +LTLDFLAGS += -Wl,--version-script,libhandle.sym + CFILES = handle.c jdm.c +LSRCFILES = libhandle.sym default: $(LTLIBRARY) diff --git a/libhandle/libhandle.sym b/libhandle/libhandle.sym new file mode 100644 index 000000000..7541201b9 --- /dev/null +++ b/libhandle/libhandle.sym @@ -0,0 +1,36 @@ +/* + * The symbol versioning ensures that a new application requiring symbol foo() + * can't run with old libhandle.so not providing foo() - the global SONAME + * version info can't enforce this since we never change the SONAME. + * + * Older versions of libhandle (<= 1.0.3) do not to use symbol versioning -- + * all the original symbols are in LIBHANDLE_1.0.3 now. + */ + +LIBHANDLE_1.0.3 { +global: + /* handle.h APIs */ + path_to_handle; + path_to_fshandle; + handle_to_fshandle; + free_handle; + open_by_fshandle; + open_by_handle; + readlink_by_handle; + attr_multi_by_handle; + attr_list_by_handle; + parents_by_handle; + parentpaths_by_handle; + fssetdm_by_handle; + + /* jdm.h APIs */ + jdm_getfshandle; + jdm_new_filehandle; + jdm_delete_filehandle; + jdm_open; + jdm_readlink; + jdm_attr_multi; + jdm_attr_list; + jdm_parents; + jdm_parentpaths; +}; -- 2.47.2