From 37dac00e2ad6445f496e68fcf815723432ecb5a8 Mon Sep 17 00:00:00 2001 From: Cristian Rodríguez Date: Mon, 15 Nov 2010 20:31:25 +0100 Subject: src: implement both GCC visibility support and export script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Read "How to write shared libraries" from Ulrich Drepper for more information on this patch. Specifically section 2.2: Export control and section 3: Maintaining APIs and ABIs. Signed-off-by: Cristian Rodríguez Signed-off-by: Pablo Neira Ayuso --- src/Makefile.am | 5 +++-- src/libmnl.map | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 src/libmnl.map (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 064ccf5..dd1b1b7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,7 @@ include $(top_srcdir)/Make_global.am - +AM_CFLAGS += $(CFLAG_VISIBILITY) +AM_CPPFLAGS += -DBUILDING_MNL lib_LTLIBRARIES = libmnl.la -libmnl_la_LDFLAGS = -version-info $(LIBVERSION) +libmnl_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libmnl.map -version-info $(LIBVERSION) libmnl_la_SOURCES = socket.c callback.c nlmsg.c attr.c diff --git a/src/libmnl.map b/src/libmnl.map new file mode 100644 index 0000000..804aa0e --- /dev/null +++ b/src/libmnl.map @@ -0,0 +1,58 @@ +LIBMNL_1.0 { +global: + mnl_attr_get_len; + mnl_attr_get_payload; + mnl_attr_get_payload_len; + mnl_attr_get_str; + mnl_attr_get_type; + mnl_attr_get_u16; + mnl_attr_get_u32; + mnl_attr_get_u64; + mnl_attr_get_u8; + mnl_attr_nest_end; + mnl_attr_nest_start; + mnl_attr_next; + mnl_attr_ok; + mnl_attr_parse; + mnl_attr_parse_nested; + mnl_attr_put; + mnl_attr_put_str; + mnl_attr_put_strz; + mnl_attr_put_u16; + mnl_attr_put_u32; + mnl_attr_put_u64; + mnl_attr_put_u8; + mnl_attr_type_valid; + mnl_attr_validate; + mnl_attr_validate2; + mnl_cb_run; + mnl_cb_run2; + mnl_nlmsg_fprintf; + mnl_nlmsg_get_payload; + mnl_nlmsg_get_payload_len; + mnl_nlmsg_get_payload_offset; + mnl_nlmsg_get_payload_tail; + mnl_nlmsg_next; + mnl_nlmsg_ok; + mnl_nlmsg_portid_ok; + mnl_nlmsg_put_extra_header; + mnl_nlmsg_put_header; + mnl_nlmsg_seq_ok; + mnl_nlmsg_size; + mnl_nlmsg_total_size; + mnl_socket_bind; + mnl_socket_close; + mnl_socket_get_fd; + mnl_socket_get_portid; + mnl_socket_getsockopt; + mnl_socket_open; + mnl_socket_recvfrom; + mnl_socket_sendto; + mnl_socket_setsockopt; + +local: *; +}; + +#LIBMNL_1.1 { +# mnl_my_new_func; +#} LIBMNL_1.0; -- cgit v1.2.3