From 90637f9ff60130865a3a258048f8df6d06ec2047 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Mon, 26 Oct 2020 01:59:07 -0700 Subject: fuse: Update to 3.10.0 --- pkg/fuse/config.h | 3 +- ...atement-expressions-in-container_of-macro.patch | 45 +++++++++++ ...rsioned-symbols-on-GNU-compatible-compile.patch | 25 ------ ...e-extra-when-symbol-versions-are-disabled.patch | 89 ---------------------- .../0002-Use-__typeof__-instead-of-typeof.patch | 26 +++++++ ...atement-expressions-in-container_of-macro.patch | 45 ----------- .../0003-Fix-build-without-symbol-versioning.patch | 29 +++++++ .../0004-Use-__typeof__-instead-of-typeof.patch | 26 ------- .../0005-Fix-build-without-symbol-versioning.patch | 29 ------- pkg/fuse/src | 2 +- pkg/fuse/ver | 2 +- 11 files changed, 104 insertions(+), 217 deletions(-) create mode 100644 pkg/fuse/patch/0001-Avoid-statement-expressions-in-container_of-macro.patch delete mode 100644 pkg/fuse/patch/0001-Only-use-versioned-symbols-on-GNU-compatible-compile.patch delete mode 100644 pkg/fuse/patch/0002-Remove-extra-when-symbol-versions-are-disabled.patch create mode 100644 pkg/fuse/patch/0002-Use-__typeof__-instead-of-typeof.patch delete mode 100644 pkg/fuse/patch/0003-Avoid-statement-expressions-in-container_of-macro.patch create mode 100644 pkg/fuse/patch/0003-Fix-build-without-symbol-versioning.patch delete mode 100644 pkg/fuse/patch/0004-Use-__typeof__-instead-of-typeof.patch delete mode 100644 pkg/fuse/patch/0005-Fix-build-without-symbol-versioning.patch (limited to 'pkg/fuse') diff --git a/pkg/fuse/config.h b/pkg/fuse/config.h index 79e313b1..e35b3298 100644 --- a/pkg/fuse/config.h +++ b/pkg/fuse/config.h @@ -17,6 +17,7 @@ #define HAVE_SPLICE #define HAVE_STRUCT_STAT_ST_ATIM #undef HAVE_STRUCT_STAT_ST_ATIMESPEC +#define HAVE_SYMVER_ATTRIBUTE 1 #define HAVE_UTIMENSAT #define HAVE_VMSPLICE -#define PACKAGE_VERSION "3.9.4" +#define PACKAGE_VERSION "3.10.0" diff --git a/pkg/fuse/patch/0001-Avoid-statement-expressions-in-container_of-macro.patch b/pkg/fuse/patch/0001-Avoid-statement-expressions-in-container_of-macro.patch new file mode 100644 index 00000000..2d8aaa87 --- /dev/null +++ b/pkg/fuse/patch/0001-Avoid-statement-expressions-in-container_of-macro.patch @@ -0,0 +1,45 @@ +From 9883408010640daaabd57934e5e4211f48d50362 Mon Sep 17 00:00:00 2001 +From: Michael Forney +Date: Mon, 17 Jun 2019 23:21:39 -0700 +Subject: [PATCH] Avoid statement expressions in container_of macro + +--- + lib/fuse.c | 5 ++--- + lib/fuse_lowlevel.c | 5 ++--- + 2 files changed, 4 insertions(+), 6 deletions(-) + +diff --git a/lib/fuse.c b/lib/fuse.c +index e75efcd..d8859ab 100755 +--- a/lib/fuse.c ++++ b/lib/fuse.c +@@ -93,9 +93,8 @@ struct node_table { + size_t split; + }; + +-#define container_of(ptr, type, member) ({ \ +- const typeof( ((type *)0)->member ) *__mptr = (ptr); \ +- (type *)( (char *)__mptr - offsetof(type,member) );}) ++#define container_of(ptr, type, member) \ ++ ((type *)((char *)ptr - offsetof(type,member))) + + #define list_entry(ptr, type, member) \ + container_of(ptr, type, member) +diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c +index 3684b8b..b9a488c 100644 +--- a/lib/fuse_lowlevel.c ++++ b/lib/fuse_lowlevel.c +@@ -39,9 +39,8 @@ + #define PARAM(inarg) (((char *)(inarg)) + sizeof(*(inarg))) + #define OFFSET_MAX 0x7fffffffffffffffLL + +-#define container_of(ptr, type, member) ({ \ +- const typeof( ((type *)0)->member ) *__mptr = (ptr); \ +- (type *)( (char *)__mptr - offsetof(type,member) );}) ++#define container_of(ptr, type, member) \ ++ ((type *)((char *)ptr - offsetof(type,member))) + + struct fuse_pollhandle { + uint64_t kh; +-- +2.20.1 + diff --git a/pkg/fuse/patch/0001-Only-use-versioned-symbols-on-GNU-compatible-compile.patch b/pkg/fuse/patch/0001-Only-use-versioned-symbols-on-GNU-compatible-compile.patch deleted file mode 100644 index 61b485f9..00000000 --- a/pkg/fuse/patch/0001-Only-use-versioned-symbols-on-GNU-compatible-compile.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f065c341a270233b563d54c75dc13ecd7c430938 Mon Sep 17 00:00:00 2001 -From: Michael Forney -Date: Mon, 17 Jun 2019 23:15:08 -0700 -Subject: [PATCH] Only use versioned symbols on GNU-compatible compilers - ---- - lib/fuse_misc.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/fuse_misc.h b/lib/fuse_misc.h -index 2f6663e..d4b82e6 100644 ---- a/lib/fuse_misc.h -+++ b/lib/fuse_misc.h -@@ -13,7 +13,7 @@ - - confuse the dynamic linker in uClibc - - not supported on MacOSX (in MachO binary format) - */ --#if (!defined(__UCLIBC__) && !defined(__APPLE__)) -+#if (!defined(__UCLIBC__) && !defined(__APPLE__)) && defined(__GNUC__) - #define FUSE_SYMVER(x) __asm__(x) - #else - #define FUSE_SYMVER(x) --- -2.20.1 - diff --git a/pkg/fuse/patch/0002-Remove-extra-when-symbol-versions-are-disabled.patch b/pkg/fuse/patch/0002-Remove-extra-when-symbol-versions-are-disabled.patch deleted file mode 100644 index 6f04bda3..00000000 --- a/pkg/fuse/patch/0002-Remove-extra-when-symbol-versions-are-disabled.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 11cb1a9823885dbf8b3393d0480cac1762a9f37c Mon Sep 17 00:00:00 2001 -From: Michael Forney -Date: Mon, 17 Jun 2019 23:17:13 -0700 -Subject: [PATCH] Remove extra ';' when symbol versions are disabled - ---- - lib/fuse.c | 8 ++++---- - lib/fuse_loop_mt.c | 4 ++-- - lib/fuse_misc.h | 2 +- - 3 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/lib/fuse.c b/lib/fuse.c -index b0f5b30..f496fc1 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(".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(".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(".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(".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..97f56db 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(".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(".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 d4b82e6..cdb1850 100644 ---- a/lib/fuse_misc.h -+++ b/lib/fuse_misc.h -@@ -14,7 +14,7 @@ - - not supported on MacOSX (in MachO binary format) - */ - #if (!defined(__UCLIBC__) && !defined(__APPLE__)) && defined(__GNUC__) --#define FUSE_SYMVER(x) __asm__(x) -+#define FUSE_SYMVER(x) __asm__(x); - #else - #define FUSE_SYMVER(x) - #endif --- -2.24.0 - diff --git a/pkg/fuse/patch/0002-Use-__typeof__-instead-of-typeof.patch b/pkg/fuse/patch/0002-Use-__typeof__-instead-of-typeof.patch new file mode 100644 index 00000000..86b95634 --- /dev/null +++ b/pkg/fuse/patch/0002-Use-__typeof__-instead-of-typeof.patch @@ -0,0 +1,26 @@ +From ad82739adeaa66a401f055a308c8d786f5b011a2 Mon Sep 17 00:00:00 2001 +From: Michael Forney +Date: Mon, 1 Jul 2019 22:45:12 -0700 +Subject: [PATCH] Use __typeof__ instead of typeof + +typeof might not be available if built with ISO C mode. +--- + util/fusermount.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/fusermount.c b/util/fusermount.c +index 56da6ec..a09b91d 100644 +--- a/util/fusermount.c ++++ b/util/fusermount.c +@@ -1013,7 +1013,7 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *mountpoint_fd) + * (https://bazaar.launchpad.net/~ecryptfs/ecryptfs/trunk/view/head:/src/utils/mount.ecryptfs_private.c#L225) + * but got expanded as we found more filesystems that needed to be + * overlayed. */ +- typeof(fs_buf.f_type) f_type_whitelist[] = { ++ __typeof__(fs_buf.f_type) f_type_whitelist[] = { + 0x61756673 /* AUFS_SUPER_MAGIC */, + 0x00000187 /* AUTOFS_SUPER_MAGIC */, + 0xCA451A4E /* BCACHEFS_STATFS_MAGIC */, +-- +2.22.0 + diff --git a/pkg/fuse/patch/0003-Avoid-statement-expressions-in-container_of-macro.patch b/pkg/fuse/patch/0003-Avoid-statement-expressions-in-container_of-macro.patch deleted file mode 100644 index 2d8aaa87..00000000 --- a/pkg/fuse/patch/0003-Avoid-statement-expressions-in-container_of-macro.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 9883408010640daaabd57934e5e4211f48d50362 Mon Sep 17 00:00:00 2001 -From: Michael Forney -Date: Mon, 17 Jun 2019 23:21:39 -0700 -Subject: [PATCH] Avoid statement expressions in container_of macro - ---- - lib/fuse.c | 5 ++--- - lib/fuse_lowlevel.c | 5 ++--- - 2 files changed, 4 insertions(+), 6 deletions(-) - -diff --git a/lib/fuse.c b/lib/fuse.c -index e75efcd..d8859ab 100755 ---- a/lib/fuse.c -+++ b/lib/fuse.c -@@ -93,9 +93,8 @@ struct node_table { - size_t split; - }; - --#define container_of(ptr, type, member) ({ \ -- const typeof( ((type *)0)->member ) *__mptr = (ptr); \ -- (type *)( (char *)__mptr - offsetof(type,member) );}) -+#define container_of(ptr, type, member) \ -+ ((type *)((char *)ptr - offsetof(type,member))) - - #define list_entry(ptr, type, member) \ - container_of(ptr, type, member) -diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c -index 3684b8b..b9a488c 100644 ---- a/lib/fuse_lowlevel.c -+++ b/lib/fuse_lowlevel.c -@@ -39,9 +39,8 @@ - #define PARAM(inarg) (((char *)(inarg)) + sizeof(*(inarg))) - #define OFFSET_MAX 0x7fffffffffffffffLL - --#define container_of(ptr, type, member) ({ \ -- const typeof( ((type *)0)->member ) *__mptr = (ptr); \ -- (type *)( (char *)__mptr - offsetof(type,member) );}) -+#define container_of(ptr, type, member) \ -+ ((type *)((char *)ptr - offsetof(type,member))) - - struct fuse_pollhandle { - uint64_t kh; --- -2.20.1 - diff --git a/pkg/fuse/patch/0003-Fix-build-without-symbol-versioning.patch b/pkg/fuse/patch/0003-Fix-build-without-symbol-versioning.patch new file mode 100644 index 00000000..997e31da --- /dev/null +++ b/pkg/fuse/patch/0003-Fix-build-without-symbol-versioning.patch @@ -0,0 +1,29 @@ +From 39bf781c0bf997fe434103b5a1f01765e9bc88e4 Mon Sep 17 00:00:00 2001 +From: Michael Forney +Date: Wed, 3 Jul 2019 00:52:16 -0700 +Subject: [PATCH] Fix build without symbol versioning + +--- + include/fuse.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/include/fuse.h b/include/fuse.h +index a92d5ee..d8e923d 100644 +--- a/include/fuse.h ++++ b/include/fuse.h +@@ -919,7 +919,11 @@ void fuse_lib_help(struct fuse_args *args); + * `struct fuse_operations.init` handler. + * @return the created FUSE handle + */ +-#if FUSE_USE_VERSION == 30 ++#if FUSE_USE_VERSION == 31 ++struct fuse *fuse_new_31(struct fuse_args *args, const struct fuse_operations *op, ++ size_t op_size, void *private_data); ++#define fuse_new(args, op, size, data) fuse_new_31(args, op, size, data) ++#elif FUSE_USE_VERSION == 30 + struct fuse *fuse_new_30(struct fuse_args *args, const struct fuse_operations *op, + size_t op_size, void *private_data); + #define fuse_new(args, op, size, data) fuse_new_30(args, op, size, data) +-- +2.25.1 + diff --git a/pkg/fuse/patch/0004-Use-__typeof__-instead-of-typeof.patch b/pkg/fuse/patch/0004-Use-__typeof__-instead-of-typeof.patch deleted file mode 100644 index 86b95634..00000000 --- a/pkg/fuse/patch/0004-Use-__typeof__-instead-of-typeof.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ad82739adeaa66a401f055a308c8d786f5b011a2 Mon Sep 17 00:00:00 2001 -From: Michael Forney -Date: Mon, 1 Jul 2019 22:45:12 -0700 -Subject: [PATCH] Use __typeof__ instead of typeof - -typeof might not be available if built with ISO C mode. ---- - util/fusermount.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/fusermount.c b/util/fusermount.c -index 56da6ec..a09b91d 100644 ---- a/util/fusermount.c -+++ b/util/fusermount.c -@@ -1013,7 +1013,7 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *mountpoint_fd) - * (https://bazaar.launchpad.net/~ecryptfs/ecryptfs/trunk/view/head:/src/utils/mount.ecryptfs_private.c#L225) - * but got expanded as we found more filesystems that needed to be - * overlayed. */ -- typeof(fs_buf.f_type) f_type_whitelist[] = { -+ __typeof__(fs_buf.f_type) f_type_whitelist[] = { - 0x61756673 /* AUFS_SUPER_MAGIC */, - 0x00000187 /* AUTOFS_SUPER_MAGIC */, - 0xCA451A4E /* BCACHEFS_STATFS_MAGIC */, --- -2.22.0 - diff --git a/pkg/fuse/patch/0005-Fix-build-without-symbol-versioning.patch b/pkg/fuse/patch/0005-Fix-build-without-symbol-versioning.patch deleted file mode 100644 index 997e31da..00000000 --- a/pkg/fuse/patch/0005-Fix-build-without-symbol-versioning.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 39bf781c0bf997fe434103b5a1f01765e9bc88e4 Mon Sep 17 00:00:00 2001 -From: Michael Forney -Date: Wed, 3 Jul 2019 00:52:16 -0700 -Subject: [PATCH] Fix build without symbol versioning - ---- - include/fuse.h | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/include/fuse.h b/include/fuse.h -index a92d5ee..d8e923d 100644 ---- a/include/fuse.h -+++ b/include/fuse.h -@@ -919,7 +919,11 @@ void fuse_lib_help(struct fuse_args *args); - * `struct fuse_operations.init` handler. - * @return the created FUSE handle - */ --#if FUSE_USE_VERSION == 30 -+#if FUSE_USE_VERSION == 31 -+struct fuse *fuse_new_31(struct fuse_args *args, const struct fuse_operations *op, -+ size_t op_size, void *private_data); -+#define fuse_new(args, op, size, data) fuse_new_31(args, op, size, data) -+#elif FUSE_USE_VERSION == 30 - struct fuse *fuse_new_30(struct fuse_args *args, const struct fuse_operations *op, - size_t op_size, void *private_data); - #define fuse_new(args, op, size, data) fuse_new_30(args, op, size, data) --- -2.25.1 - diff --git a/pkg/fuse/src b/pkg/fuse/src index db9b4fa1..0105e061 160000 --- a/pkg/fuse/src +++ b/pkg/fuse/src @@ -1 +1 @@ -Subproject commit db9b4fa148e6c22c0d4b4c567fa65d1cd5368152 +Subproject commit 0105e061b97a97d9836128aea5bcdfc9593c9b82 diff --git a/pkg/fuse/ver b/pkg/fuse/ver index 3d4d3089..1b9fd27f 100644 --- a/pkg/fuse/ver +++ b/pkg/fuse/ver @@ -1 +1 @@ -3.9.4 r0 +3.10.0 r0 -- cgit v1.2.3