LinearTapeFileSystem / LinearTapeFileSystem/ltfs
Build Failure: FUSE API error and deprecated pthread_yield in CentOS-Stream-9-latest-x86_64-dvd1.iso
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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