aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTom Callaway <spotrh@gmail.com>2020-09-11 05:15:43 -0400
committerGitHub <noreply@github.com>2020-09-11 10:15:43 +0100
commit83f682385543d949e4ee5e1271a96beddaa9a23b (patch)
tree849e76efe41e23089f5410d7f0b935232e01f15e /lib
parent86f40b858487ca218906f3306e5ec839d926f647 (diff)
downloadlibfuse-83f682385543d949e4ee5e1271a96beddaa9a23b.tar.gz
Implement GCC 10 style symbol versioning (#545)
Diffstat (limited to 'lib')
-rwxr-xr-xlib/fuse.c8
-rw-r--r--lib/fuse_loop_mt.c4
-rw-r--r--lib/fuse_misc.h8
3 files changed, 12 insertions, 8 deletions
diff --git a/lib/fuse.c b/lib/fuse.c
index b0f5b30..70299ef 100755
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -4569,7 +4569,7 @@ int fuse_loop(struct fuse *f)
return fuse_session_loop(f->se);
}
-FUSE_SYMVER(".symver fuse_loop_mt_32,fuse_loop_mt@@FUSE_3.2");
+FUSE_SYMVER("fuse_loop_mt_32", "fuse_loop_mt@@FUSE_3.2")
int fuse_loop_mt_32(struct fuse *f, struct fuse_loop_config *config)
{
if (f == NULL)
@@ -4585,7 +4585,7 @@ int fuse_loop_mt_32(struct fuse *f, struct fuse_loop_config *config)
}
int fuse_loop_mt_31(struct fuse *f, int clone_fd);
-FUSE_SYMVER(".symver fuse_loop_mt_31,fuse_loop_mt@FUSE_3.0");
+FUSE_SYMVER("fuse_loop_mt_31", "fuse_loop_mt@FUSE_3.0")
int fuse_loop_mt_31(struct fuse *f, int clone_fd)
{
struct fuse_loop_config config;
@@ -4870,7 +4870,7 @@ void fuse_stop_cleanup_thread(struct fuse *f)
}
-FUSE_SYMVER(".symver fuse_new_31,fuse_new@@FUSE_3.1");
+FUSE_SYMVER("fuse_new_31", "fuse_new@@FUSE_3.1")
struct fuse *fuse_new_31(struct fuse_args *args,
const struct fuse_operations *op,
size_t op_size, void *user_data)
@@ -5024,7 +5024,7 @@ out:
/* Emulates 3.0-style fuse_new(), which processes --help */
struct fuse *fuse_new_30(struct fuse_args *args, const struct fuse_operations *op,
size_t op_size, void *private_data);
-FUSE_SYMVER(".symver fuse_new_30,fuse_new@FUSE_3.0");
+FUSE_SYMVER("fuse_new_30", "fuse_new@FUSE_3.0")
struct fuse *fuse_new_30(struct fuse_args *args,
const struct fuse_operations *op,
size_t op_size, void *user_data)
diff --git a/lib/fuse_loop_mt.c b/lib/fuse_loop_mt.c
index 445e9a0..0c6a5b7 100644
--- a/lib/fuse_loop_mt.c
+++ b/lib/fuse_loop_mt.c
@@ -304,7 +304,7 @@ static void fuse_join_worker(struct fuse_mt *mt, struct fuse_worker *w)
free(w);
}
-FUSE_SYMVER(".symver fuse_session_loop_mt_32,fuse_session_loop_mt@@FUSE_3.2");
+FUSE_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)
{
int err;
@@ -352,7 +352,7 @@ int fuse_session_loop_mt_32(struct fuse_session *se, struct fuse_loop_config *co
}
int fuse_session_loop_mt_31(struct fuse_session *se, int clone_fd);
-FUSE_SYMVER(".symver fuse_session_loop_mt_31,fuse_session_loop_mt@FUSE_3.0");
+FUSE_SYMVER("fuse_session_loop_mt_31", "fuse_session_loop_mt@FUSE_3.0")
int fuse_session_loop_mt_31(struct fuse_session *se, int clone_fd)
{
struct fuse_loop_config config;
diff --git a/lib/fuse_misc.h b/lib/fuse_misc.h
index 2f6663e..a8b5961 100644
--- a/lib/fuse_misc.h
+++ b/lib/fuse_misc.h
@@ -14,9 +14,13 @@
- not supported on MacOSX (in MachO binary format)
*/
#if (!defined(__UCLIBC__) && !defined(__APPLE__))
-#define FUSE_SYMVER(x) __asm__(x)
+# if HAVE_SYMVER_ATTRIBUTE
+# define FUSE_SYMVER(sym1, sym2) __attribute__ ((symver (sym2)))
+# else
+# define FUSE_SYMVER(sym1, sym2) __asm__("\t.symver " sym1 "," sym2);
+# endif
#else
-#define FUSE_SYMVER(x)
+#define FUSE_SYMVER(sym1, sym2)
#endif
#ifndef USE_UCLIBC