Submitted By: Bruce Dubbs Date: 2017-07-14 Initial Package Version: 3.1.0 Upstream Status: Committed Origin: Upstream Description: Although the comments below concern GCC 4.x, they are needed for gcc7 also. From 503e32d01e4db00e90d7acfd81ab05386559069f Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Sat, 8 Jul 2017 13:11:47 +0200 Subject: [PATCH] Fixup symbol versioning for GCC 4.x GCC 4.8 doesn't like to rename fuse_new_30 to fuse_new, if we also define an implementation for fuse_new. --- lib/fuse.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/fuse.c b/lib/fuse.c index ce298192..5160eb11 100644 --- a/lib/fuse.c +++ b/lib/fuse.c @@ -4626,10 +4626,8 @@ void fuse_stop_cleanup_thread(struct fuse *f) } -/* Emulates 3.0-style fuse_new(), which processes - --help */ +/* Emulates 3.0-style fuse_new(), which processes --help */ FUSE_SYMVER(".symver fuse_new_30,fuse_new@FUSE_3.0"); -FUSE_SYMVER(".symver fuse_new,fuse_new@@FUSE_3.1"); struct fuse *fuse_new_30(struct fuse_args *args, const struct fuse_operations *op, size_t op_size, void *user_data) @@ -4652,7 +4650,12 @@ struct fuse *fuse_new_30(struct fuse_args *args, return fuse_new(args, op, op_size, user_data); } -struct fuse *fuse_new(struct fuse_args *args, +/* Explicit prototype to prevent compiler warnings + (fuse.h only defines fuse_new()) */ +struct fuse *fuse_new_31(struct fuse_args *args, const struct fuse_operations *op, + size_t op_size, void *private_data); +FUSE_SYMVER(".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) {