> From: Jeremie Courreges-Anglas <[email protected]>
> Date: Thu, 14 Dec 2017 10:40:50 +0100
>
> When reviewing helg@'s last diff I noticed a bunch of stuff that
> shouldn't be exported. So here's a diff similar to the recent
> diffs for libutil and libkvm. To get the list of public symbols I used
> symbol visibility.
>
> The diff below only reduces the symbols list, it does not remove PLT
> entries for internal calls, as I don't feel confident using this
> machinery. AFAIK this can be done in a subsequent step with no bump.
>
> check_sym output:
> /usr/lib/libfuse.so.1.1 --> obj/libfuse.so.2.0
> Dynamic export changes:
> removed:
> __bss_start
> __data_start
> _edata
> _end
> _fini
> _init
> alloc_vn
> build_realname
> dict_SPLAY
> dict_SPLAY_INSERT
> dict_SPLAY_MINMAX
> dict_SPLAY_REMOVE
> dict_check
> dict_get
> dict_pop
> dict_set
> get_vn_by_name_and_parent
> ifuse_debug
> ifuse_debug_init
> ifuse_exec_opcode
> ref_vn
> remove_vnode_from_name_tree
> set_vn
> tree_SPLAY
> tree_SPLAY_INSERT
> tree_SPLAY_MINMAX
> tree_SPLAY_REMOVE
> tree_check
> tree_get
> tree_pop
> tree_set
> unref_vn
>
> PLT removed:
> alloc_vn
> build_realname
> dict_SPLAY
> dict_check
> dict_get
> dict_pop
> dict_set
> get_vn_by_name_and_parent
> ifuse_debug_init
> ifuse_exec_opcode
> ref_vn
> set_vn
> tree_SPLAY
> tree_get
> tree_pop
> tree_set
> unref_vn
>
> To be committed in the next lib bump.
>
> Thoughts? ok?
Looks good to me, but I can't judge if you're removing too much, so
maybe you should wait for an ok from helg@ as well.
> Index: Makefile
> ===================================================================
> --- Makefile.orig
> +++ Makefile
> @@ -17,6 +17,8 @@ CFLAGS+= -I${.CURDIR}
> SRCS= debug.c dict.c fuse.c fuse_ops.c fuse_opt.c fuse_subr.c tree.c
> HDRS= fuse.h fuse_opt.h
>
> +VERSION_SCRIPT= ${.CURDIR}/Symbols.map
> +
> PC_FILES=fuse.pc
> CLEANFILES+=${PC_FILES}
>
> Index: Symbols.map
> ===================================================================
> --- /dev/null
> +++ Symbols.map
> @@ -0,0 +1,31 @@
> +{
> + global:
> + fuse_chan_fd;
> + fuse_daemonize;
> + fuse_destroy;
> + fuse_get_context;
> + fuse_get_session;
> + fuse_invalidate;
> + fuse_is_lib_option;
> + fuse_loop;
> + fuse_loop_mt;
> + fuse_main;
> + fuse_mount;
> + fuse_new;
> + fuse_opt_add_arg;
> + fuse_opt_add_opt;
> + fuse_opt_add_opt_escaped;
> + fuse_opt_free_args;
> + fuse_opt_insert_arg;
> + fuse_opt_match;
> + fuse_opt_parse;
> + fuse_parse_cmdline;
> + fuse_remove_signal_handlers;
> + fuse_set_signal_handlers;
> + fuse_setup;
> + fuse_teardown;
> + fuse_unmount;
> + fuse_version;
> + local:
> + *;
> +};
> Index: shlib_version
> ===================================================================
> --- shlib_version.orig
> +++ shlib_version
> @@ -1,2 +1,2 @@
> -major=1
> -minor=1
> +major=2
> +minor=0
>
>
> --
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
>
>