summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosayoda <git@siek.dev>2023-02-14 14:44:12 -0500
committerkosayoda <git@siek.dev>2023-02-14 14:44:12 -0500
commit2c46c2ac9b6c5f1443ca5b56b1cf3be918eab43c (patch)
treef5841a54fb46f1e1a3d17c514a1eda05cb4c100d
parent7349741e84fd409930bd3498e636e5c094dd249f (diff)
downloadrust-libc-2c46c2ac9b6c5f1443ca5b56b1cf3be918eab43c.tar.gz
Add glibc extensions for posix_spawn*.
-rw-r--r--libc-test/semver/linux-gnu.txt4
-rw-r--r--src/unix/linux_like/linux/gnu/mod.rs24
2 files changed, 28 insertions, 0 deletions
diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt
index 665b085a7e..127eab62fe 100644
--- a/libc-test/semver/linux-gnu.txt
+++ b/libc-test/semver/linux-gnu.txt
@@ -626,6 +626,10 @@ ntp_adjtime
ntp_gettime
ntptimeval
open_wmemstream
+posix_spawn_file_actions_addchdir_np
+posix_spawn_file_actions_addfchdir_np
+posix_spawn_file_actions_addclosefrom_np
+posix_spawn_file_actions_addtcsetpgrp_np
preadv2
preadv64
prlimit
diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs
index b8b6dedeb7..088135ba91 100644
--- a/src/unix/linux_like/linux/gnu/mod.rs
+++ b/src/unix/linux_like/linux/gnu/mod.rs
@@ -1377,6 +1377,30 @@ extern "C" {
pub fn gnu_get_libc_version() -> *const ::c_char;
}
+// posix/spawn.h
+extern "C" {
+ // Added in `glibc` 2.29
+ pub fn posix_spawn_file_actions_addchdir_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ path: *const ::c_char,
+ ) -> ::c_int;
+ // Added in `glibc` 2.29
+ pub fn posix_spawn_file_actions_addfchdir_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ fd: ::c_int,
+ ) -> ::c_int;
+ // Added in `glibc` 2.34
+ pub fn posix_spawn_file_actions_addclosefrom_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ from: ::c_int,
+ ) -> ::c_int;
+ // Added in `glibc` 2.35
+ pub fn posix_spawn_file_actions_addtcsetpgrp_np(
+ actions: *mut ::posix_spawn_file_actions_t,
+ tcfd: ::c_int,
+ ) -> ::c_int;
+}
+
cfg_if! {
if #[cfg(any(target_arch = "x86",
target_arch = "arm",