Fixup symbol versioning for GCC 4.x
authorNikolaus Rath <Nikolaus@rath.org>
Sat, 8 Jul 2017 11:11:47 +0000 (13:11 +0200)
committerNikolaus Rath <Nikolaus@rath.org>
Sat, 8 Jul 2017 11:11:47 +0000 (13:11 +0200)
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

index ce298192e99aba41d03416e16ff6aa4c00994128..5160eb11a89df0fe0cb6d7e7f4ca1e499ca810a9 100644 (file)
@@ -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)
 {