LinearTapeFileSystem / LinearTapeFileSystem/ltfs

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

Open
#465 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C
Stars
352
Forks
110
Avg merge
2h 50m
Merged PRs (30d)
2

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure by running ./configure and make on CentOS with FUSE 3.10.2. Start with src/ltfs_fuse.h and src/libltfs/ltfs_thread.h at line 214, then trace the build configuration related to the reported FUSE API error. Done means the project builds without the API error or pthread_yield deprecation warning.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.