aboutsummaryrefslogtreecommitdiffstats
path: root/meson.build
AgeCommit message (Collapse)AuthorLines
2025-06-25meson: Check for some Linux-specific headersGleb Popov-0/+7
Signed-off-by: Gleb Popov <6yearold@gmail.com>
2025-04-28fuse: Add ring creationBernd Schubert-0/+26
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-04-26meson.build: make special_funcs check more reliableGiulio Benetti-2/+2
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. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
2025-04-25Fix meson function testsBernd Schubert-18/+49
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 <linux/close_range.h>" : 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 Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-04-23Check if pthread_setname_np() exists before use itGiulio Benetti-1/+2
Since pthread_setname_np() is the only pthread function that requires NPTL and it basically only set thread name, let's check if pthread_setname_np() does exist, otherwise let's not call pthread_setname_np() to shrink dependencies. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
2025-04-04meson: add option for enabling usdtJoanne Koong-0/+2
Default is having usdt disabled. Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
2025-04-04Fix static_assert build failure with C++ version < 11Giulio Benetti-1/+1
At the moment build fails due to lack of static_assert: https://gitlab.com/jolivain/buildroot/-/jobs/9606292537 this means that the check per date is not enough, so let's use meson to check if static_assert() is present or not and simplify fuse_static_assert() definition by only checking HAVE_STATIC_ASSERT. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
2025-04-02Fix build with kernel < 5.9Giulio Benetti-1/+5
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 <linux/close_range.h> and calling close_range() instead of checking for close_range() function in meson and check against HAVE_CLOSE_RANGE. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
2025-03-18fusermount: prevent stdio FDs from being reusedBernd Schubert-1/+1
Redirect stdin/stdout/stderr to /dev/null to prevent newly opened file descriptors from reusing these low numbers (0,1,2) and potential issues with that. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-19Update meson.build for master branch to 3.18Bernd Schubert-1/+1
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-10Change version to 3.17.1-rc0Bernd Schubert-9/+16
Somehow really hard to set -rcX with meson. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2024-12-13examples: Add memfs_ll.ccBernd Schubert-1/+1
This is an initial implementation and quickly hacked together within a few hours - issues expected. This also increase to C++17 as memfs_ll makes use of more recent features. Background to create this was actually to be able to test large file names (3 * 1024B), which couldn't be achieved with passthrough file system as non of the underlying file systems seems to support that. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2024-04-27Use std=gnu11 (#940)Bernd Schubert-0/+1
We already have some C11 pieces like Static_assert and we are likely going to add more - tell meson to use C11. Plain C11 does not work as there are several language extension, like typeof - part of C23 only. We might be able to fix/workaround such extensions with compiler ifdef, but then I prefer gnu11 over checking which compiler is used (example gcc has __typeof vs clangs __typeof++). And compiler extension would also defeat pedantic.
2024-04-22 Use single place to define the version and increase version to 3.17.0 (#932)Bernd Schubert-1/+13
* Use single place to define the version Defining the version in fuse_common.h, is removed, it is defined through meson and provided by "libfuse_config.h". I.e. it avoids to define the version twice - once in meson and once in fuse_common.h. Ideal would be to set integers in the meson file and create the version string from these integers. However, meson requires that "project" is the first meson.build keyword - with that it requires to set the version from a string and then major/minor/hotfix integers are created from string split. Signed-off-by: Bernd Schubert <bernd.schubert@fastmail.fm> * Increase the version to 3.17.0 This is to prepare the branch for the next release. Signed-off-by: Bernd Schubert <bernd.schubert@fastmail.fm> --------- Signed-off-by: Bernd Schubert <bernd.schubert@fastmail.fm>
2024-03-20Add glibc backtrace to signal handlerBernd Schubert-0/+2
It is very hard to see in github tests what is actually failing with signals - add the gnu-libc backtrace handler.
2024-02-26meson: Point OSX (darwin) to https://www.fuse-t.org/Bernd Schubert-1/+2
www.fuse-t.org is a more recent fuse extension for OSX based on NFS.
2023-10-10Released fuse-3.16.2Nikolaus Rath-1/+1
2023-08-08Released fuse-3.16.1Nikolaus Rath-1/+1
2023-07-05Merge tag 'fuse-3.15.1'Nikolaus Rath-1/+1
2023-07-05Released fuse-3.15.1Nikolaus Rath-1/+1
2023-06-13Wrapper around test applications for cross compiler environment in ↵Rudi Heitbaum-4/+6
meson.build (#804) This enhances commit 7be56c57f93e3436b1fbd9ecc320de5c03a3e4b8 to allow build fuse to be built using a cross compiler Fixes: ../meson.build:180:12: ERROR: Can not run test applications in this cross environment.
2023-06-09Released 3.15.0Nikolaus Rath-1/+1
2023-06-08meson.build: pass -D_FILE_OFFSET_BITS=64 to C/C++ compiler (#799)wdlkmpx-2/+2
libfuse requires a 64bit off_t, it's not optional ../include/fuse_common.h:938:1: error: Kstatic assertion failed: "fuse: off_t must be 64bit" so this only takes effect if compiling for a 32bit glibc system, it's ignored everywhere else meson by default adds -D_FILE_OFFSET_BITS=64 to C/C++ compilers, and removes duplicate declarations There are several opened issues in meson's git repo requesting to remove that behavior, so this makes sense even more now this fixes compilation with muon (a C99 (mostly) meson compatible build app) in a 32bit glibc system ...
2023-04-07Fix deprecated udev.get_pkgconfig_variable in mesonMatthias Goergens-1/+1
And slightly bump minimum meson version.
2023-04-02Workaround musl bug when mountdir has whitespace (#761)Matthias Görgens-0/+32
Fixes https://github.com/libfuse/libfuse/issues/634 and https://github.com/mpartel/bindfs/issues/106
2023-03-29Fix typos and configure spellcheck for PRsYaroslav Halchenko-1/+1
2023-03-26Released 3.14.1Nikolaus Rath-1/+1
2023-03-12Respect includedir when installing libfuse_config.hHeiko Becker-1/+1
2023-02-20Change define for C++ tooPierre Labastie-1/+1
Commit d7560cc has split defines into private and public, and passed -DHAVE_LIBFUSE-PRIVATE_CONFIG_H to all C programs. But the arguments of C++ programs have not been changed. This leads to a test failure as reported in issue #734. Pass -DHAVE_LIBFUSE-PRIVATE_CONFIG_H to C++ programs too. Fixes: #734
2023-02-17Released 3.14.0Nikolaus Rath-1/+1
2023-02-09Split config.h into private and public configBernd Schubert-14/+31
This addresses https://github.com/libfuse/libfuse/issues/729 commit db35a37def14b72181f3630efeea0e0433103c41 introduced a public config.h (rename to fuse_config.h to avoid conflicts) that was installed with the package and included by libfuse users through fuse_common.h. Probablem is that this file does not have unique defines so that they are unique to libfuse - on including the file conflicts with libfuse users came up. In principle all defines could be prefixed, but then most of them are internal for libfuse compilation only. So this splits out publically required defines to a new file 'libfuse_config.h' and changes back to include of "fuse_config.h" only when HAVE_LIBFUSE_PRIVATE_CONFIG_H is defined. This also renames HAVE_LIBC_VERSIONED_SYMBOLS to LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS, as it actually better explains for libfuse users what that variable is for.
2023-02-03Released 3.13.1Nikolaus Rath-1/+1
2023-01-28Install a the configure_file (config.h) and use in headersBernd Schubert-3/+4
This addresses: https://github.com/libfuse/libfuse/issues/724 HAVE_LIBC_VERSIONED_SYMBOLS configures the library if to use versioned symbols and is set at meson configuration time. External filesystems (the main target, actually) include fuse headers and the preprocessor then acts on HAVE_LIBC_VERSIONED_SYMBOLS. Problem was now that 'config.h' was not distributed with libfuse and so HAVE_LIBC_VERSIONED_SYMBOLS was never defined with external tools and the preprocessor did the wrong decision. This commit also increases the the minimal meson version, as this depends on meson feature only available in 0.50 <quote 'meson' > WARNING: Project specifies a minimum meson_ version '>= 0.42' but uses features which were added in newer versions: * 0.50.0: {'install arg in configure_file'} </quote> Additionally the config file has been renamed to "fuse_config.h" to avoid clashes - 'config.h' is not very specific.
2023-01-13Released 3.13.0Nikolaus Rath-1/+1
2023-01-04convert __APPLE__ and __ULIBC__ to HAVE_LIBC_VERSIONED_SYMBOLSBernd Schubert-21/+51
In fact only gnu-libc fully supports symbol versioning, so it is better to have a generic macro for it. This also allows to manually disable symbol version and allows to run tests with that configuration on gnu-libc. That testing will still not catch compat issues, but least ensures the code can compile. Testing for __APPLE__ and __ULIBC__ is now done by meson. More of such checks can be added by people using other libcs.
2022-09-04API update for fuse_loop_config additionsBernd Schubert-1/+1
struct fuse_loop_config was passed as a plain struct, without any version identifer. This had two implications 1) Any addition of new parameters required a FUSE_SYMVER for fuse_session_loop_mt() and fuse_loop_mt() as otherwise a read beyond end-of previous struct size might have happened. 2) Filesystems also might have been recompiled and the developer might not have noticed the struct extensions and unexpected for the developer (or people recomliling the code) uninitialized parameters would have been passed. Code is updated to have struct fuse_loop_config as an opaque/private data type for file systems that want version 312 (FUSE_MAKE_VERSION(3, 12)). The deprecated fuse_loop_config_v1 is visible, but should not be used outside of internal conversion functions File systems that want version >= 32 < 312 get the previous struct (through ifdefs) and the #define of fuse_loop_mt and fuse_session_loop_mt ensures that these recompiled file systems call into the previous API, which then converts the struct. This is similar to existing compiled applications when just libfuse updated, but binaries it is solved with the FUSE_SYMVER ABI compact declarations. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2022-07-02Revert "Increase meson min version and avoid get_pkgconfig_variable warning ↵Nikolaus Rath-1/+1
(#682)" This reverts commit 8db2ba06fef10f38f90b0f3213dd39ec07678e2f. This Meson version is not yet generally available, so we do not want to depend on it..
2022-06-20Increase meson min version and avoid get_pkgconfig_variable warning (#682)Bernd Schubert-1/+1
meson was complaining: Build targets in project: 27 NOTICE: Future-deprecated features used: * 0.56.0: {'Dependency.get_pkgconfig_variable'} So change to .get_variable(pkgconfig : 'type' and also increase the meson minimal version to be able to handle it. Co-authored-by: Bernd Schubert <bschubert@ddn.com>
2022-05-02Released 3.11.0Nikolaus Rath-1/+1
2021-09-06Released 3.10.5Nikolaus Rath-1/+1
2021-08-04meson.build: fix wrong .symver detectionGiulio Benetti-9/+7
As pointed here [1] __has_attribute() is broken for many attributes and if it doesn't support the specific attribute it returns true, so we can't really rely on that for this check. This lead to Buildroot libfuse3 build failure [2] where that shows up with: ``` error: symver is only supported on ELF platforms ``` Indeed Microblaze doesn't support ELF since it doesn't include elfos.h, but __has_attribute(symver) returns true. So let's substitute the #ifdef __has_attribute() with a stronger test on a function foo() with __attribute__((symver ("test@TEST"))). [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 [2]: http://autobuild.buildroot.net/results/d6c/d6cfaf2aafaeda3c12d127f6a2d2e175b25e654f/build-end.log Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
2021-06-09Released 3.10.4Nikolaus Rath-1/+1
2021-06-09Add an option to disable building tests (#533)asafkahlon-1/+5
Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
2021-04-13Fix a few meson warnings (#596)Heiko Becker-5/+8
* Use meson's warning_level instead of passing -Wflags "-Wall" is included by default and level 2 adds "-Wextra". Avoids a warning from meson. Signed-off-by: Heiko Becker <heirecka@exherbo.org> * Set the C++ language standard through a meson option Avoids a warning from meson. Signed-off-by: Heiko Becker <heirecka@exherbo.org>
2021-04-12Released 3.10.3Nikolaus Rath-1/+1
2021-02-05Released 3.10.2Nikolaus Rath-1/+1
2020-12-07Released 3.10.1Nikolaus Rath-1/+1
2020-10-09Released 3.10.0Nikolaus Rath-1/+1
2020-09-14Fix compilation for compilers not supporting __has_attributeTom Callaway-2/+6
2020-09-12Update Travis to Ubuntu BionicTom Callaway-4/+9