Incompatibility (build failure) with Linux distros using kernel versions < 5.11
- Dominant language
- Swift
- Stars
- 1.4k
- Forks
- 154
- PR merge metrics
- No merged PRs in 30d
Description
Since `swift-system` 1.7.0, more specifically #329, the `io_uring` implementation has used the `IORING_ENTER_EXT_ARG` flag, which is only supported in Linux kernel version 5.11 or newer. This breaks build compatibility with distros running older kernels, such as Oracle Linux 8 (kernel 5.4.17), as the `linux/io_uring.h` header does not include the flag. Any project which uses `swift-system`, even indirectly (such as via NIO), is affected.
Contributor guide
Research direction
Start by examining the io_uring implementation and the use of IORING_ENTER_EXT_ARG, then compare it with the linux/io_uring.h header available on kernels older than 5.11. Reproduce the build on a system such as Oracle Linux 8 with kernel 5.4.17. Done means swift-system and projects that use it can build with older Linux kernel headers without losing supported io_uring behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, swift
- Domain
- build-system, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100