summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2012-01-05 11:49:26 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2012-01-05 11:49:26 +0100
commitf4b2c3b617333b5a0f359edccc9a9be34d9f36bd (patch)
tree9bc3bbdf2e7e371fc9c53e06e82fef463b121ea7
parentfb881eb93af2705c7ad7223634f63232324ebe4d (diff)
Library map file added in order to support library versioning.
-rw-r--r--Make_global.am66
-rw-r--r--lib/Makefile.am2
-rw-r--r--lib/libipset.map112
3 files changed, 179 insertions, 1 deletions
diff --git a/Make_global.am b/Make_global.am
index e178fe5..6275a10 100644
--- a/Make_global.am
+++ b/Make_global.am
@@ -1,7 +1,73 @@
# This is _NOT_ the library release version, it's an API version.
# Please read Chapter 6 "Library interface versions" of the libtool
# documentation before making any modification
+#
# http://sources.redhat.com/autobook/autobook/autobook_91.html
+#
+# The version scheme used by Libtool tracks interfaces, where an interface
+# is the set of exported entry points into the library. All Libtool libraries
+# start with `-version-info' set to `0:0:0' -- this will be the default
+# version number if you don't explicitly set it on the Libtool link command
+# line. The meaning of these numbers (from left to right) is as follows:
+#
+# current
+# The number of the current interface exported by the library. A current
+# value of `0', means that you are calling the interface exported by this
+# library interface 0.
+#
+# revision
+# The implementation number of the most recent interface exported by this
+# library. In this case, a revision value of `0' means that this is the
+# first implementation of the interface.
+#
+# If the next release of this library exports the same interface, but has
+# a different implementation (perhaps some bugs have been fixed), the
+# revision number will be higher, but current number will be the same.
+# In that case, when given a choice, the library with the highest revision
+# will always be used by the runtime loader.
+#
+# age
+# The number of previous additional interfaces supported by this library.
+# If age were `2', then this library can be linked into executables which
+# were built with a release of this library that exported the current
+# interface number, current, or any of the previous two interfaces.
+#
+# By definition age must be less than or equal to current. At the outset,
+# only the first ever interface is implemented, so age can only be `0'.
+#
+# 1. If you have changed any of the sources for this library, the revision
+# number must be incremented.
+# This is a new revision of the current interface.
+#
+# 2. If the interface has changed, then current must be incremented, and
+# revision reset to `0'.
+# This is the first revision of a new interface.
+#
+# 3. If the new interface is a superset of the previous interface (that is,
+# if the previous interface has not been broken by the changes in this
+# new release), then age must be incremented.
+# This release is backwards compatible with the previous release.
+#
+# 4. If the new interface has removed elements with respect to the previous
+# interface, then you have broken backward compatibility and age must be
+# reset to `0'.
+# This release has a new, but backwards incompatible interface.
+#
+# For example, if the next release of the library included some new commands
+# for an existing socket protocol, you would use -version-info 1:0:1.
+# This is the first revision of a new interface. This release is backwards
+# compatible with the previous release.
+#
+# Later, you implement a faster way of handling part of the algorithm at the
+# core of the library, and release it with -version-info 1:1:1. This is a new
+# revision of the current interface.
+#
+# Unfortunately the speed of your new implementation can only be fully
+# exploited by changing the API to access the structures at a lower level,
+# which breaks compatibility with the previous interface, so you release it
+# as -version-info 2:0:0. This release has a new, but backwards incompatible
+# interface.
+
LIBVERSION = 1:0:0
AM_CPPFLAGS = $(kinclude_CFLAGS) $(all_includes) -I$(top_srcdir)/include \
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 8afe611..d4ea6d6 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -4,7 +4,7 @@ AM_CFLAGS += ${libmnl_CFLAGS}
lib_LTLIBRARIES = libipset.la
-libipset_la_LDFLAGS = -version-info $(LIBVERSION)
+libipset_la_LDFLAGS = -Wl,--version-script=$(top_srcdir)/lib/libipset.map -version-info $(LIBVERSION)
libipset_la_LIBADD = ${libmnl_LIBS}
libipset_la_SOURCES = \
data.c \
diff --git a/lib/libipset.map b/lib/libipset.map
new file mode 100644
index 0000000..a9f6f41
--- /dev/null
+++ b/lib/libipset.map
@@ -0,0 +1,112 @@
+LIBIPSET_1.0 {
+global:
+ ipset_strlcpy;
+ ipset_data_flags_test;
+ ipset_data_flags_set;
+ ipset_data_flags_unset;
+ ipset_data_ignored;
+ ipset_data_set;
+ ipset_data_get;
+ ipset_data_setname;
+ ipset_data_family;
+ ipset_data_cidr;
+ ipset_data_flags;
+ ipset_data_reset;
+ ipset_data_init;
+ ipset_data_fini;
+ ipset_data_sizeof;
+ ipset_errcode;
+ id_to_icmp;
+ icmp_to_name;
+ name_to_icmp;
+ id_to_icmpv6;
+ icmpv6_to_name;
+ name_to_icmpv6;
+ ipset_get_nlmsg_type;
+ ipset_parse_ether;
+ ipset_parse_port;
+ ipset_parse_tcpudp_port;
+ ipset_parse_tcp_port;
+ ipset_parse_single_tcp_port;
+ ipset_parse_proto;
+ ipset_parse_icmp;
+ ipset_parse_icmpv6;
+ ipset_parse_proto_port;
+ ipset_parse_family;
+ ipset_parse_ip;
+ ipset_parse_single_ip;
+ ipset_parse_net;
+ ipset_parse_range;
+ ipset_parse_netrange;
+ ipset_parse_iprange;
+ ipset_parse_ipnet;
+ ipset_parse_ip4_single6;
+ ipset_parse_ip4_net6;
+ ipset_parse_name;
+ ipset_parse_before;
+ ipset_parse_after;
+ ipset_parse_setname;
+ ipset_parse_uint32;
+ ipset_parse_uint8;
+ ipset_parse_netmask;
+ ipset_parse_flag;
+ ipset_parse_typename;
+ ipset_parse_iface;
+ ipset_parse_output;
+ ipset_parse_ignored;
+ ipset_parse_elem;
+ ipset_call_parser;
+ ipset_parse_iptimeout;
+ ipset_parse_name_compat;
+ ipset_print_ether;
+ ipset_print_family;
+ ipset_print_type;
+ ipset_print_ip;
+ ipset_print_ipaddr;
+ ipset_print_number;
+ ipset_print_name;
+ ipset_print_port;
+ ipset_print_iface;
+ ipset_print_proto;
+ ipset_print_icmp;
+ ipset_print_icmpv6;
+ ipset_print_proto_port;
+ ipset_print_flag;
+ ipset_print_elem;
+ ipset_print_data;
+ ipset_session_data;
+ ipset_session_handle;
+ ipset_saved_type;
+ ipset_session_lineno;
+ ipset_session_report;
+ ipset_session_report_reset;
+ ipset_session_error;
+ ipset_session_warning;
+ ipset_envopt_parse;
+ ipset_envopt_test;
+ ipset_session_output;
+ ipset_commit;
+ ipset_cmd;
+ ipset_session_init;
+ ipset_session_fini;
+ ipset_debug_msg;
+ ipset_cache_add;
+ ipset_cache_del;
+ ipset_cache_rename;
+ ipset_cache_swap;
+ ipset_cache_init;
+ ipset_cache_fini;
+ ipset_type_get;
+ ipset_type_check;
+ ipset_type_add;
+ ipset_types;
+ ipset_typename_resolve;
+ ipset_match_typename;
+ ipset_match_cmd;
+ ipset_match_option;
+ ipset_match_envopt;
+ ipset_shift_argv;
+ ipset_port_usage;
+
+local: *;
+};