[llvm] [libc][bazel] Add recently added sys/socket functions and syscall wrappers (PR #209457)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 14 05:17:29 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Pavel Labath (labath)
<details>
<summary>Changes</summary>
This patch adds the missing functions to BUILD.bazel:
- recvmmsg
- sendmmsg
- setsockopt
- shutdown
I also add the corresponding syscall wrapper libraries that these functions depend on, along with a couple of additional type libraries.
I'm leaving the remaining sys/socket functions and test suites out for now since some of them require additional infrastructure or type definitions.
Assisted by Gemini.
---
Full diff: https://github.com/llvm/llvm-project/pull/209457.diff
2 Files Affected:
- (modified) utils/bazel/llvm-project-overlay/libc/BUILD.bazel (+195-40)
- (modified) utils/bazel/llvm-project-overlay/libc/test/src/sys/socket/BUILD.bazel (+86-19)
``````````diff
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index c80acca46ab39..4acbaa58bb66d 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -763,6 +763,11 @@ libc_support_library(
hdrs = ["hdr/types/ssize_t.h"],
)
+libc_support_library(
+ name = "types_sa_family_t",
+ hdrs = ["hdr/types/sa_family_t.h"],
+)
+
libc_support_library(
name = "types_socklen_t",
hdrs = ["hdr/types/socklen_t.h"],
@@ -773,6 +778,31 @@ libc_support_library(
hdrs = ["hdr/types/struct_sockaddr.h"],
)
+libc_support_library(
+ name = "types_struct_sockaddr_storage",
+ hdrs = ["hdr/types/struct_sockaddr_storage.h"],
+)
+
+libc_support_library(
+ name = "types_struct_sockaddr_un",
+ hdrs = ["hdr/types/struct_sockaddr_un.h"],
+)
+
+libc_support_library(
+ name = "types_struct_linger",
+ hdrs = ["hdr/types/struct_linger.h"],
+)
+
+libc_support_library(
+ name = "types_struct_iovec",
+ hdrs = ["hdr/types/struct_iovec.h"],
+)
+
+libc_support_library(
+ name = "types_struct_mmsghdr",
+ hdrs = ["hdr/types/struct_mmsghdr.h"],
+)
+
libc_support_library(
name = "types_struct_msghdr",
hdrs = ["hdr/types/struct_msghdr.h"],
@@ -2705,6 +2735,70 @@ libc_support_library(
],
)
+libc_support_library(
+ name = "__support_osutil_linux_syscall_wrappers_recvmmsg",
+ hdrs = ["src/__support/OSUtil/linux/syscall_wrappers/recvmmsg.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
+ deps = [
+ ":__support_common",
+ ":__support_error_or",
+ ":__support_macros_config",
+ ":__support_osutil_syscall",
+ ":types_struct_mmsghdr",
+ ":types_struct_timespec",
+ ],
+)
+
+libc_support_library(
+ name = "__support_osutil_linux_syscall_wrappers_sendmmsg",
+ hdrs = ["src/__support/OSUtil/linux/syscall_wrappers/sendmmsg.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
+ deps = [
+ ":__support_common",
+ ":__support_error_or",
+ ":__support_macros_config",
+ ":__support_osutil_syscall",
+ ":types_struct_mmsghdr",
+ ],
+)
+
+libc_support_library(
+ name = "__support_osutil_linux_syscall_wrappers_setsockopt",
+ hdrs = ["src/__support/OSUtil/linux/syscall_wrappers/setsockopt.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
+ deps = [
+ ":__support_common",
+ ":__support_error_or",
+ ":__support_macros_config",
+ ":__support_osutil_syscall",
+ ":types_socklen_t",
+ ],
+)
+
+libc_support_library(
+ name = "__support_osutil_linux_syscall_wrappers_shutdown",
+ hdrs = ["src/__support/OSUtil/linux/syscall_wrappers/shutdown.h"],
+ target_compatible_with = select({
+ "@platforms//os:linux": [],
+ "//conditions:default": ["@platforms//:incompatible"],
+ }),
+ deps = [
+ ":__support_common",
+ ":__support_error_or",
+ ":__support_macros_config",
+ ":__support_osutil_syscall",
+ ],
+)
+
libc_support_library(
name = "__support_osutil_linux_auxv",
hdrs = ["src/__support/OSUtil/linux/auxv.h"],
@@ -15956,43 +16050,48 @@ libc_function(
############################## sys/socket targets ##############################
libc_function(
- name = "socket",
- srcs = ["src/sys/socket/linux/socket.cpp"],
- hdrs = ["src/sys/socket/socket.h"],
+ name = "getsockopt",
+ srcs = ["src/sys/socket/linux/getsockopt.cpp"],
+ hdrs = ["src/sys/socket/getsockopt.h"],
deps = [
":__support_common",
":__support_libc_errno",
":__support_macros_config",
- ":__support_osutil_linux_syscall_wrappers_socket",
+ ":__support_osutil_linux_syscall_wrappers_getsockopt",
":__support_osutil_syscall",
":errno",
+ ":types_socklen_t",
],
)
libc_function(
- name = "socketpair",
- srcs = ["src/sys/socket/linux/socketpair.cpp"],
- hdrs = ["src/sys/socket/socketpair.h"],
+ name = "recv",
+ srcs = ["src/sys/socket/linux/recv.cpp"],
+ hdrs = ["src/sys/socket/recv.h"],
deps = [
":__support_common",
":__support_libc_errno",
":__support_macros_config",
":__support_macros_sanitizer",
- ":__support_osutil_linux_syscall_wrappers_socketpair",
+ ":__support_osutil_linux_syscall_wrappers_recvfrom",
":__support_osutil_syscall",
":errno",
+ ":types_socklen_t",
+ ":types_ssize_t",
+ ":types_struct_sockaddr",
],
)
libc_function(
- name = "send",
- srcs = ["src/sys/socket/linux/send.cpp"],
- hdrs = ["src/sys/socket/send.h"],
+ name = "recvfrom",
+ srcs = ["src/sys/socket/linux/recvfrom.cpp"],
+ hdrs = ["src/sys/socket/recvfrom.h"],
deps = [
":__support_common",
":__support_libc_errno",
":__support_macros_config",
- ":__support_osutil_linux_syscall_wrappers_sendto",
+ ":__support_macros_sanitizer",
+ ":__support_osutil_linux_syscall_wrappers_recvfrom",
":__support_osutil_syscall",
":errno",
":types_socklen_t",
@@ -16002,9 +16101,42 @@ libc_function(
)
libc_function(
- name = "sendto",
- srcs = ["src/sys/socket/linux/sendto.cpp"],
- hdrs = ["src/sys/socket/sendto.h"],
+ name = "recvmmsg",
+ srcs = ["src/sys/socket/linux/recvmmsg.cpp"],
+ hdrs = ["src/sys/socket/recvmmsg.h"],
+ deps = [
+ ":__support_common",
+ ":__support_libc_errno",
+ ":__support_macros_config",
+ ":__support_osutil_linux_syscall_wrappers_recvmmsg",
+ ":__support_osutil_syscall",
+ ":errno",
+ ":types_struct_mmsghdr",
+ ":types_struct_timespec",
+ ],
+)
+
+libc_function(
+ name = "recvmsg",
+ srcs = ["src/sys/socket/linux/recvmsg.cpp"],
+ hdrs = ["src/sys/socket/recvmsg.h"],
+ deps = [
+ ":__support_common",
+ ":__support_libc_errno",
+ ":__support_macros_config",
+ ":__support_macros_sanitizer",
+ ":__support_osutil_linux_syscall_wrappers_recvmsg",
+ ":__support_osutil_syscall",
+ ":errno",
+ ":types_ssize_t",
+ ":types_struct_msghdr",
+ ],
+)
+
+libc_function(
+ name = "send",
+ srcs = ["src/sys/socket/linux/send.cpp"],
+ hdrs = ["src/sys/socket/send.h"],
deps = [
":__support_common",
":__support_libc_errno",
@@ -16018,6 +16150,21 @@ libc_function(
],
)
+libc_function(
+ name = "sendmmsg",
+ srcs = ["src/sys/socket/linux/sendmmsg.cpp"],
+ hdrs = ["src/sys/socket/sendmmsg.h"],
+ deps = [
+ ":__support_common",
+ ":__support_libc_errno",
+ ":__support_macros_config",
+ ":__support_osutil_linux_syscall_wrappers_sendmmsg",
+ ":__support_osutil_syscall",
+ ":errno",
+ ":types_struct_mmsghdr",
+ ],
+)
+
libc_function(
name = "sendmsg",
srcs = ["src/sys/socket/linux/sendmsg.cpp"],
@@ -16035,69 +16182,77 @@ libc_function(
)
libc_function(
- name = "getsockopt",
- srcs = ["src/sys/socket/linux/getsockopt.cpp"],
- hdrs = ["src/sys/socket/getsockopt.h"],
+ name = "sendto",
+ srcs = ["src/sys/socket/linux/sendto.cpp"],
+ hdrs = ["src/sys/socket/sendto.h"],
deps = [
":__support_common",
":__support_libc_errno",
":__support_macros_config",
- ":__support_osutil_linux_syscall_wrappers_getsockopt",
+ ":__support_osutil_linux_syscall_wrappers_sendto",
+ ":__support_osutil_syscall",
":errno",
":types_socklen_t",
+ ":types_ssize_t",
+ ":types_struct_sockaddr",
],
)
libc_function(
- name = "recv",
- srcs = ["src/sys/socket/linux/recv.cpp"],
- hdrs = ["src/sys/socket/recv.h"],
+ name = "setsockopt",
+ srcs = ["src/sys/socket/linux/setsockopt.cpp"],
+ hdrs = ["src/sys/socket/setsockopt.h"],
deps = [
":__support_common",
":__support_libc_errno",
":__support_macros_config",
- ":__support_macros_sanitizer",
- ":__support_osutil_linux_syscall_wrappers_recvfrom",
+ ":__support_osutil_linux_syscall_wrappers_setsockopt",
":__support_osutil_syscall",
":errno",
":types_socklen_t",
- ":types_ssize_t",
- ":types_struct_sockaddr",
],
)
libc_function(
- name = "recvfrom",
- srcs = ["src/sys/socket/linux/recvfrom.cpp"],
- hdrs = ["src/sys/socket/recvfrom.h"],
+ name = "shutdown",
+ srcs = ["src/sys/socket/linux/shutdown.cpp"],
+ hdrs = ["src/sys/socket/shutdown.h"],
deps = [
":__support_common",
":__support_libc_errno",
":__support_macros_config",
- ":__support_macros_sanitizer",
- ":__support_osutil_linux_syscall_wrappers_recvfrom",
+ ":__support_osutil_linux_syscall_wrappers_shutdown",
":__support_osutil_syscall",
":errno",
- ":types_socklen_t",
- ":types_ssize_t",
- ":types_struct_sockaddr",
],
)
libc_function(
- name = "recvmsg",
- srcs = ["src/sys/socket/linux/recvmsg.cpp"],
- hdrs = ["src/sys/socket/recvmsg.h"],
+ name = "socket",
+ srcs = ["src/sys/socket/linux/socket.cpp"],
+ hdrs = ["src/sys/socket/socket.h"],
+ deps = [
+ ":__support_common",
+ ":__support_libc_errno",
+ ":__support_macros_config",
+ ":__support_osutil_linux_syscall_wrappers_socket",
+ ":__support_osutil_syscall",
+ ":errno",
+ ],
+)
+
+libc_function(
+ name = "socketpair",
+ srcs = ["src/sys/socket/linux/socketpair.cpp"],
+ hdrs = ["src/sys/socket/socketpair.h"],
deps = [
":__support_common",
":__support_libc_errno",
":__support_macros_config",
":__support_macros_sanitizer",
- ":__support_osutil_linux_syscall_wrappers_recvmsg",
+ ":__support_osutil_linux_syscall_wrappers_socketpair",
":__support_osutil_syscall",
":errno",
- ":types_ssize_t",
- ":types_struct_msghdr",
],
)
diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/sys/socket/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/sys/socket/BUILD.bazel
index 3cf290a9f0a8f..a8ca4ae685b87 100644
--- a/utils/bazel/llvm-project-overlay/libc/test/src/sys/socket/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/test/src/sys/socket/BUILD.bazel
@@ -11,35 +11,52 @@ package(default_visibility = ["//visibility:public"])
licenses(["notice"])
libc_test(
- name = "socket_test",
- srcs = ["linux/socket_test.cpp"],
+ name = "send_recv_test",
+ srcs = ["linux/send_recv_test.cpp"],
deps = [
"//libc:__support_cpp_scope",
"//libc:close",
- "//libc:socket",
+ "//libc:hdr_sys_socket_macros",
+ "//libc:recv",
+ "//libc:send",
+ "//libc:socketpair",
],
)
libc_test(
- name = "socketpair_test",
- srcs = ["linux/socketpair_test.cpp"],
+ name = "sendmsg_recvmsg_test",
+ srcs = ["linux/sendmsg_recvmsg_test.cpp"],
deps = [
"//libc:__support_cpp_scope",
"//libc:close",
+ "//libc:fcntl",
+ "//libc:getsockopt",
+ "//libc:hdr_fcntl_macros",
+ "//libc:hdr_sys_socket_macros",
+ "//libc:llvm_libc_macros_sys_socket_macros",
+ "//libc:memcpy",
+ "//libc:memset",
+ "//libc:recvmsg",
+ "//libc:sendmsg",
"//libc:socketpair",
+ "//libc:types_struct_cmsghdr",
],
)
libc_test(
- name = "send_recv_test",
- srcs = ["linux/send_recv_test.cpp"],
+ name = "sendrecvmmsg_test",
+ srcs = ["linux/sendrecvmmsg_test.cpp"],
deps = [
"//libc:__support_cpp_scope",
"//libc:close",
"//libc:hdr_sys_socket_macros",
- "//libc:recv",
- "//libc:send",
+ "//libc:recvmmsg",
+ "//libc:sendmmsg",
"//libc:socketpair",
+ "//libc:strlen",
+ "//libc:types_struct_iovec",
+ "//libc:types_struct_mmsghdr",
+ "//libc:types_struct_timespec",
],
)
@@ -56,21 +73,71 @@ libc_test(
)
libc_test(
- name = "sendmsg_recvmsg_test",
- srcs = ["linux/sendmsg_recvmsg_test.cpp"],
+ name = "shutdown_test",
+ srcs = ["linux/shutdown_test.cpp"],
deps = [
"//libc:__support_cpp_scope",
"//libc:close",
- "//libc:fcntl",
+ "//libc:hdr_sys_socket_macros",
+ "//libc:read",
+ "//libc:shutdown",
+ "//libc:socketpair",
+ "//libc:types_ssize_t",
+ ],
+)
+
+libc_test(
+ name = "sockaddr_storage_test",
+ srcs = [
+ "linux/sockaddr_storage_helper.cpp",
+ "linux/sockaddr_storage_test.cpp",
+ ],
+ deps = [
+ "//libc:hdr_sys_socket_macros",
+ "//libc:types_sa_family_t",
+ "//libc:types_struct_sockaddr_storage",
+ "//libc:types_struct_sockaddr_un",
+ ],
+)
+
+libc_test(
+ name = "socket_test",
+ srcs = ["linux/socket_test.cpp"],
+ deps = [
+ "//libc:__support_cpp_scope",
+ "//libc:close",
+ "//libc:socket",
+ ],
+)
+
+libc_test(
+ name = "socketopt_test",
+ srcs = ["linux/socketopt_test.cpp"],
+ deps = [
+ "//libc:__support_cpp_scope",
+ "//libc:__support_time_clock_gettime",
+ "//libc:close",
"//libc:getsockopt",
- "//libc:hdr_fcntl_macros",
"//libc:hdr_sys_socket_macros",
- "//libc:llvm_libc_macros_sys_socket_macros",
- "//libc:memcpy",
- "//libc:memset",
- "//libc:recvmsg",
- "//libc:sendmsg",
+ "//libc:hdr_time_macros",
+ "//libc:pipe",
+ "//libc:recv",
+ "//libc:setsockopt",
+ "//libc:socket",
+ "//libc:socketpair",
+ "//libc:types_socklen_t",
+ "//libc:types_struct_linger",
+ "//libc:types_struct_timespec",
+ "//libc:types_struct_timeval",
+ ],
+)
+
+libc_test(
+ name = "socketpair_test",
+ srcs = ["linux/socketpair_test.cpp"],
+ deps = [
+ "//libc:__support_cpp_scope",
+ "//libc:close",
"//libc:socketpair",
- "//libc:types_struct_cmsghdr",
],
)
``````````
</details>
https://github.com/llvm/llvm-project/pull/209457
More information about the llvm-commits
mailing list