diff --git a/package/libfuse3/0001-Fix-meson-function-tests.patch b/package/libfuse3/0001-Fix-meson-function-tests.patch new file mode 100644 index 0000000000..7af9721337 --- /dev/null +++ b/package/libfuse3/0001-Fix-meson-function-tests.patch @@ -0,0 +1,121 @@ +From 4840ffe9e8610934d91b27061ff149cc74b41c28 Mon Sep 17 00:00:00 2001 +From: Bernd Schubert +Date: Thu, 24 Apr 2025 16:49:08 +0200 +Subject: [PATCH] Fix meson function tests + +Several meson tests were incorrectly failing + +Checking for function "static_assert" : NO (cached) +Checking for function "pthread_setname_np" : NO (cached) +Check usable header "#include " : NO (cached) + +These functions get now tested with compilation tests +and get found on my system. + +Checking if "static_assert check" compiles: YES +Checking if "pthread_setname_np check" compiles: YES +Checking if "close_range check" compiles: YES + +Upstream: https://github.com/libfuse/libfuse/commit/82bcd818fb3e7d5ced9b0c04b7b7a98a892e807e +Signed-off-by: Bernd Schubert +Signed-off-by: Giulio Benetti +--- + meson.build | 67 +++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 49 insertions(+), 18 deletions(-) + +diff --git a/meson.build b/meson.build +index ba551ed..d1346d0 100644 +--- a/meson.build ++++ b/meson.build +@@ -59,6 +59,8 @@ include_default = ''' + #include + #include + #include ++#include /* For static_assert */ ++#include /* For pthread_setname_np */ + ''' + args_default = [ '-D_GNU_SOURCE' ] + +@@ -72,32 +74,61 @@ private_cfg.set_quoted('PACKAGE_VERSION', meson.project_version()) + # Test for presence of some functions + test_funcs = [ 'fork', 'fstatat', 'openat', 'readlinkat', 'pipe2', + 'splice', 'vmsplice', 'posix_fallocate', 'fdatasync', +- 'utimensat', 'copy_file_range', 'fallocate', 'static_assert', +- 'pthread_setname_np' ] ++ 'utimensat', 'copy_file_range', 'fallocate' ] + foreach func : test_funcs + private_cfg.set('HAVE_' + func.to_upper(), + cc.has_function(func, prefix: include_default, args: args_default)) + endforeach +-private_cfg.set('HAVE_SETXATTR', +- cc.has_function('setxattr', prefix: '#include ')) +-private_cfg.set('HAVE_ICONV', +- cc.has_function('iconv', prefix: '#include ')) +-private_cfg.set('HAVE_BACKTRACE', +- cc.has_function('backtrace', prefix: '#include ')) + +-# Test if headers exist +-private_cfg.set('HAVE_LINUX_CLOSE_RANGE_H', +- cc.check_header('#include ')) ++# Special case checks that need custom code ++special_funcs = { ++ 'static_assert': ''' ++ #include ++ static_assert(1, "test"); ++ int main(void) { return 0; } ++ ''', ++ 'pthread_setname_np': ''' ++ #include ++ int main(void) { ++ pthread_t thread = pthread_self(); ++ pthread_setname_np(thread, "test"); ++ return 0; ++ } ++ ''', ++ 'close_range': ''' ++ #include ++ #include ++ #include ++ int main(void) { ++ unsigned int flags = CLOSE_RANGE_UNSHARE; ++ return close_range(3, ~0U, flags); ++ } ++ ''' ++} ++ ++foreach name, code : special_funcs ++ private_cfg.set('HAVE_' + name.to_upper(), ++ cc.compiles(code, args: ['-Werror'] + args_default, ++ name: name + ' check')) ++endforeach ++ ++# Regular function checks ++private_cfg.set('HAVE_SETXATTR', ++ cc.has_function('setxattr', prefix: '#include ')) ++private_cfg.set('HAVE_ICONV', ++ cc.has_function('iconv', prefix: '#include ')) ++private_cfg.set('HAVE_BACKTRACE', ++ cc.has_function('backtrace', prefix: '#include ')) + +-# Test if structs have specific member ++# Struct member checks + private_cfg.set('HAVE_STRUCT_STAT_ST_ATIM', +- cc.has_member('struct stat', 'st_atim', +- prefix: include_default, +- args: args_default)) ++ cc.has_member('struct stat', 'st_atim', ++ prefix: include_default + '#include ', ++ args: args_default)) + private_cfg.set('HAVE_STRUCT_STAT_ST_ATIMESPEC', +- cc.has_member('struct stat', 'st_atimespec', +- prefix: include_default, +- args: args_default)) ++ cc.has_member('struct stat', 'st_atimespec', ++ prefix: include_default + '#include ', ++ args: args_default)) + + # + # Compiler configuration +-- +2.39.5 + diff --git a/package/libfuse3/0002-meson.build-make-special_funcs-check-more-reliable.patch b/package/libfuse3/0002-meson.build-make-special_funcs-check-more-reliable.patch new file mode 100644 index 0000000000..dccaf52326 --- /dev/null +++ b/package/libfuse3/0002-meson.build-make-special_funcs-check-more-reliable.patch @@ -0,0 +1,41 @@ +From 6f50c950d09ad09339437b81ce22b36e0e2749c9 Mon Sep 17 00:00:00 2001 +From: Giulio Benetti +Date: Fri, 25 Apr 2025 19:00:14 +0200 +Subject: [PATCH] meson.build: make special_funcs check more reliable + +Unfortunately while cross-compiling with build tools like Buildroot it +happens to have repeated flags or anything that could lead to a warning. +This way the check fails because of a warning not related to the special +function. So let's use cc.links() and increase minimum meson_version to +0.60 since cc.links() has been added during that version. + +Upstream: https://github.com/libfuse/libfuse/commit/8e226c6af6f386a88ed53d0a0940ff6b869b372d +Signed-off-by: Giulio Benetti +--- + meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index d1346d0..d3d236d 100644 +--- a/meson.build ++++ b/meson.build +@@ -1,6 +1,6 @@ + project('libfuse3', ['c'], + version: '3.17.2', +- meson_version: '>= 0.51.0', ++ meson_version: '>= 0.60.0', + default_options: [ + 'buildtype=debugoptimized', + 'c_std=gnu11', +@@ -108,7 +108,7 @@ special_funcs = { + + foreach name, code : special_funcs + private_cfg.set('HAVE_' + name.to_upper(), +- cc.compiles(code, args: ['-Werror'] + args_default, ++ cc.links(code, args: args_default, + name: name + ' check')) + endforeach + +-- +2.39.5 +