[libc-commits] [libc] [libc] Implement recvmmsg (on linux) (PR #202328)
LLVM Continuous Integration via libc-commits
libc-commits at lists.llvm.org
Thu Jun 11 06:32:12 PDT 2026
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `libc-riscv32-qemu-yocto-fullbuild-dbg` running on `rv32gc-qemu-system` while building `libc` at step 4 "annotate".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/196/builds/19678
<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)
...
[53/95] Generating header netinet/udp.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/netinet/udp.yaml
[54/95] Generating header wchar.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/wchar.yaml
[55/95] Generating header complex.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/complex.yaml
[56/95] Generating header byteswap.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/byteswap.yaml
[57/95] Generating header stdckdint.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/stdckdint.yaml
[58/95] Generating header inttypes.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/inttypes.yaml
[59/72] Generating header cpio.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/cpio.yaml
[60/72] Generating header stdfix.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/stdfix.yaml
[61/72] Generating header sys/param.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/sys/param.yaml
[62/72] Building CXX object libc/src/sys/socket/linux/CMakeFiles/libc.src.sys.socket.linux.recvmmsg.dir/recvmmsg.cpp.o
FAILED: libc/src/sys/socket/linux/CMakeFiles/libc.src.sys.socket.linux.recvmmsg.dir/recvmmsg.cpp.o
/usr/local/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_21_0_0_git -D_DEBUG -I/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc -isystem /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/build/libc/include -mabi=ilp32d -march=rv32imafdc --target=riscv32-unknown-linux-gnu --sysroot=/opt/riscv/sysroot --gcc-toolchain=/opt/riscv -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -Xclang -fno-pch-timestamp -g -std=gnu++17 --target=riscv32-unknown-linux-gnu -D__LIBC_USE_BUILTIN_ISNAN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=element -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=element -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 -nostdlibinc -idirafter=/usr/include -ffixed-point -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 -fstack-protector-strong -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COMPILER_HAS_STDC_FENV_ACCESS -DLIBC_COPT_PUBLIC_PACKAGING -MD -MT libc/src/sys/socket/linux/CMakeFiles/libc.src.sys.socket.linux.recvmmsg.dir/recvmmsg.cpp.o -MF libc/src/sys/socket/linux/CMakeFiles/libc.src.sys.socket.linux.recvmmsg.dir/recvmmsg.cpp.o.d -o libc/src/sys/socket/linux/CMakeFiles/libc.src.sys.socket.linux.recvmmsg.dir/recvmmsg.cpp.o -c /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/src/sys/socket/linux/recvmmsg.cpp
In file included from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/src/sys/socket/linux/recvmmsg.cpp:15:
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/src/__support/OSUtil/linux/syscall_wrappers/recvmmsg.h:34:7: error: static assertion failed due to requirement 'sizeof (timespec::tv_nsec) == sizeof(long)': This legacy syscall fallback is only safe on platforms where tv_nsec matches the register size (long). It is unsafe on 32-bit platforms with 64-bit tv_nsec.
34 | sizeof(timespec::tv_nsec) == sizeof(long),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/src/__support/OSUtil/linux/syscall_wrappers/recvmmsg.h:34:33: note: expression evaluates to '8 == 4'
34 | sizeof(timespec::tv_nsec) == sizeof(long),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/src/__support/OSUtil/linux/syscall_wrappers/recvmmsg.h:38:31: error: use of undeclared identifier 'SYS_recvmmsg'
38 | return syscall_checked<int>(SYS_recvmmsg, sockfd, msgvec, vlen, flags,
| ^
2 errors generated.
[63/72] Building CXX object libc/src/sys/socket/linux/CMakeFiles/libc.src.sys.socket.linux.send.dir/send.cpp.o
[64/72] Building CXX object libc/src/sys/socket/linux/CMakeFiles/libc.src.sys.socket.linux.recv.dir/recv.cpp.o
[65/72] Generating header strings.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/strings.yaml
[66/72] Generating header math.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/math.yaml
[67/72] Generating header poll.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/poll.yaml
[68/72] Generating header wctype.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/wctype.yaml
[69/72] Generating header sys/personality.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/sys/personality.yaml
[70/72] Generating header stdbit.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/stdbit.yaml
[71/72] Generating header arpa/inet.h from /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/runtimes/../libc/include/arpa/inet.yaml
ninja: build stopped: subcommand failed.
['ninja', 'libc'] exited with return code 1.
The build step threw an exception...
Traceback (most recent call last):
File "/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 181, in step
yield
File "/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 143, in main
run_command(['ninja', 'libc'])
File "/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 196, in run_command
util.report_run_cmd(cmd, cwd=directory)
File "/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-zorg/zorg/buildbot/builders/annotated/util.py", line 49, in report_run_cmd
subprocess.check_call(cmd, shell=shell, *args, **kwargs)
File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ninja', 'libc']' returned non-zero exit status 1.
@@@STEP_FAILURE@@@
@@@BUILD_STEP build libc-startup@@@
```
</details>
https://github.com/llvm/llvm-project/pull/202328
More information about the libc-commits
mailing list