apple / apple/swift-system

Incompatibility (build failure) with Linux distros using kernel versions < 5.11

Open
#385 1 comment 1 reaction 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.