From 120868e75c824063f8010d49d27221db41e3c6f3 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Tue, 1 Apr 2025 00:53:07 +0200 Subject: Fix build with kernel < 5.9 linux/close_range.h is only available since kernel 5.9 and https://github.com/torvalds/linux/commit/60997c3d45d9a67daf01c56d805ae4fec37e0bd8 resulting in the following build failure: ../util/fusermount.c:40:10: fatal error: linux/close_range.h: No such file or directory So let's check for header presence and emit HAVE_LINUX_CLOSE_RANGE_H accordingly and check for it when including and calling close_range() instead of checking for close_range() function in meson and check against HAVE_CLOSE_RANGE. Signed-off-by: Giulio Benetti --- meson.build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 494bb3d..ffe4623 100644 --- a/meson.build +++ b/meson.build @@ -72,7 +72,7 @@ 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', 'close_range' ] + '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)) @@ -84,6 +84,10 @@ private_cfg.set('HAVE_ICONV', 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 ')) + # Test if structs have specific member private_cfg.set('HAVE_STRUCT_STAT_ST_ATIM', cc.has_member('struct stat', 'st_atim', -- cgit v1.2.3