[GH-ISSUE #29] build error on ubuntu 22.04.5 with io_uring, need suggestion and help #21

Open
opened 2026-10-26 09:43:31 +00:00 by bsakaguchi · 4 comments
Owner

Originally created by @gaowayne on GitHub (Mar 1, 2025).
Original GitHub issue: https://github.com/deepseek-ai/3FS/issues/29

hello expert
I installed liburing as below

root@salab-bncbeta03:~/wayne/3fs/3FS# apt install liburing*
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'liburing2' for glob 'liburing*'
Note, selecting 'liburing-dev' for glob 'liburing*'
liburing-dev is already the newest version (2.1-2build1).
liburing2 is already the newest version (2.1-2build1).
0 upgraded, 0 newly installed, 0 to remove and 54 not upgraded.

my kernel is: root@salab-bncbeta03:/wayne/3fs/3FS# uname -a
Linux salab-bncbeta03 6.8.0-49-generic #49
22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

my OS is ubuntu 22.04.5

after I follow instruction to build code, I suffer below error at Folly and IO_Uring. please help!~

-- Found Git: /usr/bin/git (found version "2.34.1") 
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
-- Git Commit hash: 4e8c49f5 4e8c49f5ec988ea48259d655fdd4dba6e646001c
-- Git Commit Date & Timestamp: 20250301 1740806805
-- Git Commit Tag & Seq Num: 250228 1
[  1%] Built target AlwaysCheckGit
Consolidate compiler generated dependencies of target version-info
[  1%] Built target version-info
Consolidate compiler generated dependencies of target fmt
[  1%] Built target fmt
Consolidate compiler generated dependencies of target libzstd_static
[  4%] Built target libzstd_static
Consolidate compiler generated dependencies of target folly_base
[  4%] Building CXX object third_party/folly/CMakeFiles/folly_base.dir/folly/experimental/io/AsyncIoUringSocket.cpp.o
/root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:714:26: error: use of undeclared identifier 'IORING_RECV_MULTISHOT'
          ioprio_flags = IORING_RECV_MULTISHOT;
                         ^
/root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:872:7: error: no member named 'io_uring_prep_sendmsg_zc' in the global namespace; did you mean 'io_uring_prep_sendmsg'?
    ::io_uring_prep_sendmsg_zc(
    ~~^~~~~~~~~~~~~~~~~~~~~~~~
      io_uring_prep_sendmsg
/usr/include/liburing.h:340:20: note: 'io_uring_prep_sendmsg' declared here
static inline void io_uring_prep_sendmsg(struct io_uring_sqe *sqe, int fd,
                   ^
/root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1270:17: error: use of undeclared identifier 'IORING_CQE_F_NOTIF'
    if (flags & IORING_CQE_F_NOTIF) {
                ^
/root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1288:39: error: use of undeclared identifier 'IORING_CQE_F_NOTIF'
           << " notif=" << !!(flags & IORING_CQE_F_NOTIF);
                                      ^
/root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1302:39: error: use of undeclared identifier 'IORING_CQE_F_NOTIF'
           << " notif=" << !!(flags & IORING_CQE_F_NOTIF)
                                      ^
/root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1319:15: error: use of undeclared identifier 'IORING_CQE_F_NOTIF'
  if (flags & IORING_CQE_F_NOTIF) {
              ^
6 errors generated.
gmake[2]: *** [third_party/folly/CMakeFiles/folly_base.dir/build.make:1560: third_party/folly/CMakeFiles/folly_base.dir/folly/experimental/io/AsyncIoUringSocket.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2466: third_party/folly/CMakeFiles/folly_base.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
root@salab-bncbeta03:~/wayne/3fs/3FS# apt install liburing*
Originally created by @gaowayne on GitHub (Mar 1, 2025). Original GitHub issue: https://github.com/deepseek-ai/3FS/issues/29 hello expert I installed liburing as below ``` root@salab-bncbeta03:~/wayne/3fs/3FS# apt install liburing* Reading package lists... Done Building dependency tree... Done Reading state information... Done Note, selecting 'liburing2' for glob 'liburing*' Note, selecting 'liburing-dev' for glob 'liburing*' liburing-dev is already the newest version (2.1-2build1). liburing2 is already the newest version (2.1-2build1). 0 upgraded, 0 newly installed, 0 to remove and 54 not upgraded. ``` my kernel is: root@salab-bncbeta03:~/wayne/3fs/3FS# uname -a Linux salab-bncbeta03 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux my OS is ubuntu 22.04.5 after I follow instruction to build code, I suffer below error at Folly and IO_Uring. please help!~ ``` -- Found Git: /usr/bin/git (found version "2.34.1") fatal: No names found, cannot describe anything. fatal: No names found, cannot describe anything. -- Git Commit hash: 4e8c49f5 4e8c49f5ec988ea48259d655fdd4dba6e646001c -- Git Commit Date & Timestamp: 20250301 1740806805 -- Git Commit Tag & Seq Num: 250228 1 [ 1%] Built target AlwaysCheckGit Consolidate compiler generated dependencies of target version-info [ 1%] Built target version-info Consolidate compiler generated dependencies of target fmt [ 1%] Built target fmt Consolidate compiler generated dependencies of target libzstd_static [ 4%] Built target libzstd_static Consolidate compiler generated dependencies of target folly_base [ 4%] Building CXX object third_party/folly/CMakeFiles/folly_base.dir/folly/experimental/io/AsyncIoUringSocket.cpp.o /root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:714:26: error: use of undeclared identifier 'IORING_RECV_MULTISHOT' ioprio_flags = IORING_RECV_MULTISHOT; ^ /root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:872:7: error: no member named 'io_uring_prep_sendmsg_zc' in the global namespace; did you mean 'io_uring_prep_sendmsg'? ::io_uring_prep_sendmsg_zc( ~~^~~~~~~~~~~~~~~~~~~~~~~~ io_uring_prep_sendmsg /usr/include/liburing.h:340:20: note: 'io_uring_prep_sendmsg' declared here static inline void io_uring_prep_sendmsg(struct io_uring_sqe *sqe, int fd, ^ /root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1270:17: error: use of undeclared identifier 'IORING_CQE_F_NOTIF' if (flags & IORING_CQE_F_NOTIF) { ^ /root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1288:39: error: use of undeclared identifier 'IORING_CQE_F_NOTIF' << " notif=" << !!(flags & IORING_CQE_F_NOTIF); ^ /root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1302:39: error: use of undeclared identifier 'IORING_CQE_F_NOTIF' << " notif=" << !!(flags & IORING_CQE_F_NOTIF) ^ /root/wayne/3fs/3FS/third_party/folly/folly/experimental/io/AsyncIoUringSocket.cpp:1319:15: error: use of undeclared identifier 'IORING_CQE_F_NOTIF' if (flags & IORING_CQE_F_NOTIF) { ^ 6 errors generated. gmake[2]: *** [third_party/folly/CMakeFiles/folly_base.dir/build.make:1560: third_party/folly/CMakeFiles/folly_base.dir/folly/experimental/io/AsyncIoUringSocket.cpp.o] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:2466: third_party/folly/CMakeFiles/folly_base.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2 root@salab-bncbeta03:~/wayne/3fs/3FS# apt install liburing* ```
Author
Owner

@wushap commented on GitHub (Mar 1, 2025):

/usr/include/liburing.h:340

/usr/include/liburing.h:340:20: note: 'io_uring_prep_sendmsg' declared here

The dependency check found the system's built-in liburing, which caused an error. Updating the system's liburing or using the one from third-party could resolve the problem.

<!-- gh-comment-id:2692463370 --> @wushap commented on GitHub (Mar 1, 2025): > /usr/include/liburing.h:340 `/usr/include/liburing.h:340:20: note: 'io_uring_prep_sendmsg' declared here` The dependency check found the system's built-in liburing, which caused an error. Updating the system's liburing or using the one from third-party could resolve the problem.
Author
Owner

@bugwz commented on GitHub (Mar 11, 2025):

In my testing, I discovered that manually installing any liburing packages is unnecessary. Once removed, the compilation completes successfully. It appears the project relies on the ./third_party/liburing dependency package. As a side note, the community recently added a dockerfile based on ubuntu 22.04, which is more convenient.

@gaowayne

<!-- gh-comment-id:2714852203 --> @bugwz commented on GitHub (Mar 11, 2025): In my testing, I discovered that manually installing any liburing packages is unnecessary. Once removed, the compilation completes successfully. It appears the project relies on the `./third_party/liburing` dependency package. As a side note, the community recently added a dockerfile based on ubuntu 22.04, which is more convenient. @gaowayne
Author
Owner

@microyahoo commented on GitHub (Mar 12, 2025):

for ubuntu 22.04

dpkg -S /usr/include/liburing.h
apt remove liburing-dev

then remove build directory and cmake again.

<!-- gh-comment-id:2716985906 --> @microyahoo commented on GitHub (Mar 12, 2025): for ubuntu 22.04 ``` dpkg -S /usr/include/liburing.h apt remove liburing-dev ``` then remove `build` directory and cmake again.
Author
Owner

@HuangShumin commented on GitHub (Mar 13, 2025):

for ubuntu 22.04

dpkg -S /usr/include/liburing.h
apt remove liburing-dev

then remove build directory and cmake again.

@microyahoo what's the minimum required version of liburing?

<!-- gh-comment-id:2719747992 --> @HuangShumin commented on GitHub (Mar 13, 2025): > for ubuntu 22.04 > > ``` > dpkg -S /usr/include/liburing.h > apt remove liburing-dev > ``` > > then remove `build` directory and cmake again. @microyahoo what's the minimum required version of liburing?
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/3FS#21
No description provided.