Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ymbstm opened this issue Jun 9, 2024 · 1 comment

Comments

@ymbstm
Copy link

ymbstm commented Jun 9, 2024

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.

@piste-jp
Copy link
Member

piste-jp commented Jun 18, 2024

Hmm, I cannot make anything from the description you provided...

Could you provide the info below at least.

  • OS version
  • Complete error log
  • Commit hash that you are trying to compile

For sched_yield(), I'm not sure we must to do it now because we need to consider supporting older OSs. May be the best time is when we update the main target of OS from RHEL7/8 to RHEL9. (See #456)

I don't believe sched_yield() is an item of this issue at all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants