summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlibc-test/build.rs3
-rw-r--r--libc-test/semver/android.txt1
-rw-r--r--libc-test/semver/linux-gnu.txt1
-rw-r--r--libc-test/semver/linux-musl.txt1
-rw-r--r--src/unix/linux_like/android/mod.rs2
-rw-r--r--src/unix/linux_like/linux/gnu/mod.rs2
-rw-r--r--src/unix/linux_like/linux/musl/mod.rs2
7 files changed, 12 insertions, 0 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index b394453638..fec534fb48 100755
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -1629,6 +1629,7 @@ fn test_android(target: &str) {
// We skip the test here since here _GNU_SOURCE is defined, and
// test the XSI version below.
"strerror_r" => true,
+ "reallocarray" => true,
_ => false,
}
@@ -2873,6 +2874,8 @@ fn test_linux(target: &str) {
// Needs glibc 2.33 or later.
"mallinfo2" => true,
+ "reallocarray" if musl => true,
+
_ => false,
}
});
diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt
index 89e831ce5a..0f291179cf 100644
--- a/libc-test/semver/android.txt
+++ b/libc-test/semver/android.txt
@@ -3044,6 +3044,7 @@ readlink
readlinkat
readv
realloc
+reallocarray
realpath
recv
recvfrom
diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt
index 58a7396733..18811c7592 100644
--- a/libc-test/semver/linux-gnu.txt
+++ b/libc-test/semver/linux-gnu.txt
@@ -566,6 +566,7 @@ pthread_setname_np
pututxline
pwritev2
qsort_r
+reallocarray
semid_ds
seminfo
setutxent
diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt
index 53b3adfdde..672278b26d 100644
--- a/libc-test/semver/linux-musl.txt
+++ b/libc-test/semver/linux-musl.txt
@@ -1,2 +1,3 @@
# TODO: musl.
explicit_bzero
+reallocarray
diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs
index f48cd49fd1..b60776c9e2 100644
--- a/src/unix/linux_like/android/mod.rs
+++ b/src/unix/linux_like/android/mod.rs
@@ -2879,6 +2879,8 @@ extern "C" {
pub fn arc4random() -> u32;
pub fn arc4random_uniform(__upper_bound: u32) -> u32;
pub fn arc4random_buf(__buf: *mut ::c_void, __n: ::size_t);
+
+ pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void;
}
cfg_if! {
diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs
index 44d43904ec..f90ec98d21 100644
--- a/src/unix/linux_like/linux/gnu/mod.rs
+++ b/src/unix/linux_like/linux/gnu/mod.rs
@@ -1276,6 +1276,8 @@ extern "C" {
// Added in `glibc` 2.25
pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t);
+ // Added in `glibc` 2.29
+ pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void;
}
extern "C" {
diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs
index 03f13e2878..c3c82398b6 100644
--- a/src/unix/linux_like/linux/musl/mod.rs
+++ b/src/unix/linux_like/linux/musl/mod.rs
@@ -700,6 +700,8 @@ extern "C" {
// Added in `musl` 1.1.20
pub fn explicit_bzero(s: *mut ::c_void, len: ::size_t);
+ // Added in `musl` 1.2.2
+ pub fn reallocarray(ptr: *mut ::c_void, nmemb: ::size_t, size: ::size_t) -> *mut ::c_void;
}
cfg_if! {