[libc-commits] [libc] [libc] Introduce the ioctl syscall wrapper and port all callers (PR #204640)

LLVM Continuous Integration via libc-commits libc-commits at lists.llvm.org
Tue Jun 23 00:14:10 PDT 2026


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `libc-x86_64-debian-gcc-fullbuild-dbg` running on `libc-x86_64-debian-fullbuild` while building `libc` at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/131/builds/48888

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
-- For x86_64 builtins preferring x86_64/floatundidf.S to floatundidf.c
-- For x86_64 builtins preferring x86_64/floatundisf.S to floatundisf.c
-- For x86_64 builtins preferring x86_64/floatdixf.c to floatdixf.c
-- For x86_64 builtins preferring x86_64/floatundixf.S to floatundixf.c
-- Configuring done
-- Generating done
-- Build files have been written to: /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build
@@@BUILD_STEP build libc@@@
Running: ninja libc
[1/10] Building CXX object libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetsid.dir/tcgetsid.cpp.o
FAILED: libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetsid.dir/tcgetsid.cpp.o 
/usr/bin/g++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc -isystem /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -D__LIBC_USE_BUILTIN_ISNAN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffreestanding -DLIBC_FULL_BUILD -isystem/usr/lib/gcc/x86_64-linux-gnu/12//include -nostdinc -idirafter/usr/include -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wno-type-limits -Wno-attributes -Wno-sign-conversion -Wdeprecated -fext-numeric-literals -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetsid.dir/tcgetsid.cpp.o -MF libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetsid.dir/tcgetsid.cpp.o.d -o libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetsid.dir/tcgetsid.cpp.o -c /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetsid.cpp
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetsid.cpp: In function ‘pid_t __llvm_libc_20_0_0_git::__tcgetsid_impl__(int)’:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetsid.cpp:23:35: error: ‘sid’ may be used uninitialized [-Werror=maybe-uninitialized]
   23 |   auto ret = linux_syscalls::ioctl(fd, TIOCGSID, &sid);
      |              ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetsid.cpp:11:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h:33:15: note: by argument 2 of type ‘const void*’ to ‘__llvm_libc_20_0_0_git::linux_syscalls::IoctlArg::IoctlArg(const void*)’ declared here
   33 |   LIBC_INLINE IoctlArg(const void *ptr)
      |               ^~~~~~~~
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetsid.cpp:22:9: note: ‘sid’ declared here
   22 |   pid_t sid;
      |         ^~~
cc1plus: all warnings being treated as errors
[2/10] Building CXX object libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcdrain.dir/tcdrain.cpp.o
[3/10] Building CXX object libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcflush.dir/tcflush.cpp.o
[4/10] Building CXX object libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcflow.dir/tcflow.cpp.o
[5/10] Building CXX object libc/src/unistd/linux/CMakeFiles/libc.src.unistd.linux.isatty.dir/isatty.cpp.o
[6/10] Building CXX object libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcsendbreak.dir/tcsendbreak.cpp.o
[7/10] Building CXX object libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcsetattr.dir/tcsetattr.cpp.o
[8/10] Building CXX object libc/src/sys/ioctl/linux/CMakeFiles/libc.src.sys.ioctl.linux.ioctl.dir/ioctl.cpp.o
[9/10] Building CXX object libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetattr.dir/tcgetattr.cpp.o
FAILED: libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetattr.dir/tcgetattr.cpp.o 
/usr/bin/g++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc -isystem /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -D__LIBC_USE_BUILTIN_ISNAN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffreestanding -DLIBC_FULL_BUILD -isystem/usr/lib/gcc/x86_64-linux-gnu/12//include -nostdinc -idirafter/usr/include -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wno-type-limits -Wno-attributes -Wno-sign-conversion -Wdeprecated -fext-numeric-literals -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetattr.dir/tcgetattr.cpp.o -MF libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetattr.dir/tcgetattr.cpp.o.d -o libc/src/termios/linux/CMakeFiles/libc.src.termios.linux.tcgetattr.dir/tcgetattr.cpp.o -c /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetattr.cpp
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetattr.cpp: In function ‘int __llvm_libc_20_0_0_git::__tcgetattr_impl__(int, termios*)’:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetattr.cpp:23:35: error: ‘kt’ may be used uninitialized [-Werror=maybe-uninitialized]
   23 |   auto ret = linux_syscalls::ioctl(fd, TCGETS, &kt);
      |              ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetattr.cpp:10:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h:33:15: note: by argument 2 of type ‘const void*’ to ‘__llvm_libc_20_0_0_git::linux_syscalls::IoctlArg::IoctlArg(const void*)’ declared here
   33 |   LIBC_INLINE IoctlArg(const void *ptr)
      |               ^~~~~~~~
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/termios/linux/tcgetattr.cpp:22:34: note: ‘kt’ declared here
   22 |   LIBC_NAMESPACE::kernel_termios kt;
      |                                  ^~
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.
['ninja', 'libc'] exited with return code 1.
The build step threw an exception...

```

</details>

https://github.com/llvm/llvm-project/pull/204640


More information about the libc-commits mailing list