Skip to content

Build Failure: FUSE API error and deprecated pthread_yield in CentOS-Stream-9-latest-x86_64-dvd1.iso #465

Description

@ymbstm

Description
I am trying to compile LTFS on CentOS, but the build process fails with errors related to the FUSE API version and deprecated pthread_yield function.

Steps to Reproduce
Run ./configure
Run make
Encounter errors during the build process
Expected behavior
The build should complete successfully without errors.

Actual behavior
The build fails with the following errors:

An error message stating that only FUSE API version 30 or greater is supported.
Compilation warnings about the deprecated pthread_yield, with the suggestion to use sched_yield instead.
Environment
OS: CentOS
FUSE version: 3.10.2
Compiler: GCC
Error Logs
plaintext

In file included from /usr/include/fuse3/fuse.h:19,
                 from ../../src/ltfs_fuse.h:70,
                 from iosched.c:53:
/usr/include/fuse3/fuse_common.h:852:4: ERROR:#error only API version 30 or greater is supported
  852 | #  error only API version 30 or greater is supported
      |    ^~~~~

In file included from ../../src/libltfs/ltfstrace.h:72,
                 from ../../src/libltfs/ltfs.h:109,
                 from ../../src/ltfs_fuse.h:71,
                 from iosched.c:53:
../../src/libltfs/ltfs_thread.h:214:9: WARN:‘pthread_yield’ is deprecated: pthread_yield is deprecated, use sched_yield instead [-Wdeprecated-declarations]
  214 |         return pthread_yield();
      |         ^~~~~~
Additional context

FUSE 3.10.2 should support the required API version 30, but the build script seems not to recognize this.
The usage of deprecated pthread_yield needs replacement with sched_yield across the project to resolve the deprecation warnings and potential future build failures.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions