aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_misc.h
AgeCommit message (Collapse)AuthorLines
2023-02-09Split config.h into private and public configBernd Schubert-1/+1
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-01-04convert __APPLE__ and __ULIBC__ to HAVE_LIBC_VERSIONED_SYMBOLSBernd Schubert-1/+1
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-0/+3
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>
2020-10-29remove fuse_mutex_initRosen Penev-14/+0
This seems to have been added before 2006 to fix a uclibc bug. It doesn't seem to be the case anymore so just get rid of it. Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-29remove old uclibc hackRosen Penev-2/+1
This actually prevents sshfs linking to it as fuse_new becomes unavailable. According to the git history, this seems to predate 2006. Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-09-11Implement GCC 10 style symbol versioning (#545)Tom Callaway-2/+6
2017-07-08Added public fuse_lib_help(), bumped minor versionNikolaus Rath-0/+11
2014-07-15libfuse: allow setting ctime in ->setattr()Miklos Szeredi-0/+3
2013-07-24libfuse: remove "-D_FILE_OFFSET_BITS=64" from fuse.pcMiklos Szeredi-1/+0
add AC_SYS_LARGEFILE to your configure.ac instead.
2012-07-19Remove old symbol versionsMiklos Szeredi-11/+0
2012-01-13Disable symbol versions on MacOSXAnatol Pomozov-2/+6
MacOSX uses MachO binary format that does not support symbols. This change comes from fuse4x project (fuse implementation for macosx).
2007-12-12change indentingMiklos Szeredi-9/+9
2007-12-12Disable old symbol versions if __UCLIBC__ is definedMiklos Szeredi-0/+8
2007-10-16Clarify licence version to be "LGPLv2" for the libraryMiklos Szeredi-1/+1
2007-04-25update copyright datesMiklos Szeredi-1/+1
2007-04-01fix some FreeBSD related macrosCsaba Henk-3/+3
2007-02-03Add filesystem stacking support to high level APIMiklos Szeredi-8/+16
2006-09-24Support for nanosec times on FBSD and other FBSD fixesCsaba Henk-3/+13
2006-09-03fixMiklos Szeredi-0/+27