summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPino Toscano <toscano.pino@tiscali.it>2013-03-22 19:09:55 +0100
committerPino Toscano <toscano.pino@tiscali.it>2013-03-22 19:09:55 +0100
commitd11c83ecc49830dd2caf7e8aa70e9e6dad7922e3 (patch)
tree46887e41ece2520f2202c1858bbab2f0f0679742
parent6ff1c4ce7e024833263a2cddba424bf5cb48ed42 (diff)
Import the ld version script from FUSE 2.5.x
Copy and use the version script for the linker from FUSE 2.5.x; with this, it is possible to properly provide the compat functions in an ABI-compatible way. Note this temporarly breaks translators since the netfs_* symbols implemented in libfuse are now hidden. * src/Makefile.am (libfuse_la_LDFLAGS): Use fuse_versionscript. * src/fuse_versionscript: New file.
-rw-r--r--src/Makefile.am3
-rw-r--r--src/fuse_versionscript90
2 files changed, 92 insertions, 1 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 4d1cd4d36..c696c6c43 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -5,7 +5,8 @@
lib_LTLIBRARIES = libfuse.la
-libfuse_la_LDFLAGS = -version-number 0:0:1
+libfuse_la_LDFLAGS = -version-number 0:0:1 \
+ -Wl,--version-script,$(srcdir)/fuse_versionscript
libfuse_la_SOURCES = \
main.c \
netfs.c \
diff --git a/src/fuse_versionscript b/src/fuse_versionscript
new file mode 100644
index 000000000..99271584e
--- /dev/null
+++ b/src/fuse_versionscript
@@ -0,0 +1,90 @@
+FUSE_2.2 {
+ global:
+ fuse_destroy;
+ fuse_exit;
+ fuse_exited;
+ fuse_get_context;
+ fuse_invalidate;
+ fuse_is_lib_option;
+ fuse_loop;
+ fuse_loop_mt;
+ fuse_loop_mt_proc;
+ fuse_main;
+ fuse_main_compat1;
+ fuse_main_compat2;
+ fuse_mount_compat1;
+ fuse_new_compat1;
+ fuse_new_compat2;
+ fuse_process_cmd;
+ fuse_read_cmd;
+ fuse_set_getcontext_func;
+ fuse_setup_compat2;
+ fuse_teardown;
+ fuse_unmount;
+};
+
+FUSE_2.4 {
+ global:
+ fuse_add_dirent;
+ fuse_chan_bufsize;
+ fuse_chan_data;
+ fuse_chan_destroy;
+ fuse_chan_fd;
+ fuse_chan_new;
+ fuse_chan_receive;
+ fuse_chan_send;
+ fuse_chan_session;
+ fuse_dirent_size;
+ fuse_kern_chan_new;
+ fuse_lowlevel_is_lib_option;
+ fuse_reply_attr;
+ fuse_reply_buf;
+ fuse_reply_entry;
+ fuse_reply_err;
+ fuse_reply_none;
+ fuse_reply_readlink;
+ fuse_reply_write;
+ fuse_reply_xattr;
+ fuse_req_ctx;
+ fuse_req_userdata;
+ fuse_session_add_chan;
+ fuse_session_destroy;
+ fuse_session_exit;
+ fuse_session_exited;
+ fuse_session_loop;
+ fuse_session_loop_mt;
+ fuse_session_new;
+ fuse_session_next_chan;
+ fuse_session_process;
+ fuse_session_reset;
+} FUSE_2.2;
+
+FUSE_2.5 {
+ global:
+ fuse_lowlevel_new;
+ fuse_lowlevel_new_compat;
+ fuse_main_real;
+ fuse_main_real_compat22;
+ fuse_mount;
+ fuse_mount_compat22;
+ fuse_new;
+ fuse_new_compat22;
+ fuse_opt_parse;
+ fuse_opt_add_opt;
+ fuse_opt_add_arg;
+ fuse_opt_free_args;
+ fuse_opt_match;
+ fuse_parse_cmdline;
+ fuse_remove_signal_handlers;
+ fuse_reply_create;
+ fuse_reply_open;
+ fuse_reply_open_compat;
+ fuse_reply_statfs;
+ fuse_reply_statfs_compat;
+ fuse_setup;
+ fuse_setup_compat22;
+ fuse_set_signal_handlers;
+
+ local:
+ *;
+} FUSE_2.4;