aboutsummaryrefslogtreecommitdiff
path: root/lib/helper.c
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2017-09-19 16:24:37 +0100
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2017-09-19 16:47:40 +0100
commitf24673cc174297a2cbe452c8f5fd0956d8455fb9 (patch)
treed07fe48178364f28ad4cf14a1eb69bac0bbd151c /lib/helper.c
parentda363c514b1b94b3df992e05ebacbc3d5ff0cf0e (diff)
Don't use external symbol names in internal files
The fuse_session_loop_mt() and fuse_loop_mt() symbols are only visible when linking against the shared object. The code in lib/, however, is compiled *into* the shared object and should thus use the internal names of these functions. Surprisingly enough, the code still worked before - but only when link time optimization was disabled. Unfortunately, we still can't compile with LTO because it seems that enabling LTO somehow makes the tagged symbols vanish. Without lto, we have: $ nm lib/libfuse3.so | grep fuse_new 0000000000011070 T fuse_new_30 0000000000010a00 t fuse_new_31 0000000000011070 T fuse_new@FUSE_3.0 0000000000010a00 T fuse_new@@FUSE_3.1 and with LTO: $ nm lib/libfuse3.so | grep fuse_new 0000000000019a70 T fuse_new_30 0000000000019270 t fuse_new_31 See also issue #198.
Diffstat (limited to 'lib/helper.c')
-rw-r--r--lib/helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/helper.c b/lib/helper.c
index cb7aebc..3627749 100644
--- a/lib/helper.c
+++ b/lib/helper.c
@@ -336,7 +336,7 @@ int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
struct fuse_loop_config loop_config;
loop_config.clone_fd = opts.clone_fd;
loop_config.max_idle_threads = opts.max_idle_threads;
- res = fuse_loop_mt(fuse, &loop_config);
+ res = fuse_loop_mt_32(fuse, &loop_config);
}
if (res)
res = 1;