diff options
author | Nikolaus Rath <Nikolaus@rath.org> | 2017-09-19 16:24:37 +0100 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2017-09-19 16:47:40 +0100 |
commit | f24673cc174297a2cbe452c8f5fd0956d8455fb9 (patch) | |
tree | d07fe48178364f28ad4cf14a1eb69bac0bbd151c /lib/fuse_loop_mt.c | |
parent | da363c514b1b94b3df992e05ebacbc3d5ff0cf0e (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/fuse_loop_mt.c')
-rw-r--r-- | lib/fuse_loop_mt.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/lib/fuse_loop_mt.c b/lib/fuse_loop_mt.c index 904539e..731fcf5 100644 --- a/lib/fuse_loop_mt.c +++ b/lib/fuse_loop_mt.c @@ -301,7 +301,6 @@ static void fuse_join_worker(struct fuse_mt *mt, struct fuse_worker *w) free(w); } -int fuse_session_loop_mt_32(struct fuse_session *se, struct fuse_loop_config *config); FUSE_SYMVER(".symver fuse_session_loop_mt_32,fuse_session_loop_mt@@FUSE_3.2"); int fuse_session_loop_mt_32(struct fuse_session *se, struct fuse_loop_config *config) { |