diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2012-01-05 11:49:26 +0100 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2012-01-05 11:49:26 +0100 |
commit | f4b2c3b617333b5a0f359edccc9a9be34d9f36bd (patch) | |
tree | 9bc3bbdf2e7e371fc9c53e06e82fef463b121ea7 | |
parent | fb881eb93af2705c7ad7223634f63232324ebe4d (diff) |
Library map file added in order to support library versioning.
-rw-r--r-- | Make_global.am | 66 | ||||
-rw-r--r-- | lib/Makefile.am | 2 | ||||
-rw-r--r-- | lib/libipset.map | 112 |
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: *; +}; |