Skip to content

Commit 20d2b55

Browse files
Treehugger Robotandroid-build-merge-worker-robot
authored andcommitted
Merge "Update Trusty support patch" am: 814b17b am: e8f5819
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/libc/+/2124573 Change-Id: I1717b41a187b64316ebe7058e9417cdfbb6a0a3a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2 parents d1ca9e0 + e8f5819 commit 20d2b55

File tree

4 files changed

+43
-14
lines changed

4 files changed

+43
-14
lines changed

patches/std.diff

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
Index: libc/src/lib.rs
22
===================================================================
3-
--- libc.orig/src/lib.rs
4-
+++ libc/src/lib.rs
5-
@@ -30,6 +30,9 @@
6-
#![cfg_attr(target_os = "redox", feature(static_nobundle))]
3+
--- a/src/lib.rs
4+
+++ b/src/lib.rs
5+
@@ -30,6 +30,10 @@
6+
)]
77
#![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))]
88

99
+// ANDROID: Use std to allow building as a dylib.
10+
+#[cfg(android_dylib)]
1011
+extern crate std;
1112
+
1213
#[macro_use]

patches/trusty.patch

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
From dc028fa4f316bec221c9b59d02a1c2648bb1cbbd Mon Sep 17 00:00:00 2001
1+
From e8131d6a00005b4686f26d25d8617dd83540e98d Mon Sep 17 00:00:00 2001
22
From: David LeGare <legare@google.com>
3-
Date: Mon, 23 May 2022 17:58:51 +0000
3+
Date: Mon, 13 Jun 2022 22:23:23 +0000
44
Subject: [PATCH] Add support for the Trusty OS
55

66
---
77
src/lib.rs | 6 ++++++
8-
src/trusty.rs | 46 ++++++++++++++++++++++++++++++++++++++++++++++
9-
2 files changed, 52 insertions(+)
8+
src/trusty.rs | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++
9+
2 files changed, 66 insertions(+)
1010
create mode 100644 src/trusty.rs
1111

1212
diff --git a/src/lib.rs b/src/lib.rs
13-
index d87d0d8e1..2eeb88c83 100644
13+
index cce80f8c..a7eddaf2 100644
1414
--- a/src/lib.rs
1515
+++ b/src/lib.rs
16-
@@ -141,6 +141,12 @@ cfg_if! {
16+
@@ -144,6 +144,12 @@ cfg_if! {
1717

1818
mod hermit;
1919
pub use hermit::*;
@@ -28,13 +28,14 @@ index d87d0d8e1..2eeb88c83 100644
2828
pub use fixed_width_ints::*;
2929
diff --git a/src/trusty.rs b/src/trusty.rs
3030
new file mode 100644
31-
index 000000000..2b7d57285
31+
index 00000000..f06c0760
3232
--- /dev/null
3333
+++ b/src/trusty.rs
34-
@@ -0,0 +1,46 @@
34+
@@ -0,0 +1,60 @@
3535
+pub use core::ffi::c_void;
3636
+
3737
+pub type size_t = usize;
38+
+pub type ssize_t = isize;
3839
+
3940
+#[cfg(any(target_arch = "aarch64", target_arch = "arm"))]
4041
+pub type c_char = u8;
@@ -71,13 +72,25 @@ index 000000000..2b7d57285
7172
+pub type c_int32_t = i32;
7273
+pub type c_int64_t = i64;
7374
+
75+
+pub const STDOUT_FILENO: ::c_int = 1;
76+
+pub const STDERR_FILENO: ::c_int = 2;
77+
+
7478
+extern "C" {
7579
+ pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void;
7680
+ pub fn malloc(size: size_t) -> *mut c_void;
7781
+ pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void;
7882
+ pub fn free(p: *mut c_void);
83+
+ pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
7984
+ pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int;
85+
+ pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t;
86+
+ pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
87+
+}
88+
+
89+
+s! {
90+
+ pub struct iovec {
91+
+ pub iov_base: *mut ::c_void,
92+
+ pub iov_len: ::size_t,
93+
+ }
8094
+}
8195
--
82-
2.36.1.124.g0e6072fb45-goog
83-
96+
2.36.1.476.g0c4daa206d-goog

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#![cfg_attr(libc_const_extern_fn, feature(const_extern_fn))]
3232

3333
// ANDROID: Use std to allow building as a dylib.
34+
#[cfg(android_dylib)]
3435
extern crate std;
3536

3637
#[macro_use]

src/trusty.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
pub use core::ffi::c_void;
22

33
pub type size_t = usize;
4+
pub type ssize_t = isize;
45

56
#[cfg(any(target_arch = "aarch64", target_arch = "arm"))]
67
pub type c_char = u8;
@@ -37,10 +38,23 @@ pub type c_int16_t = i16;
3738
pub type c_int32_t = i32;
3839
pub type c_int64_t = i64;
3940

41+
pub const STDOUT_FILENO: ::c_int = 1;
42+
pub const STDERR_FILENO: ::c_int = 2;
43+
4044
extern "C" {
4145
pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void;
4246
pub fn malloc(size: size_t) -> *mut c_void;
4347
pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void;
4448
pub fn free(p: *mut c_void);
49+
pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
4550
pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int;
51+
pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t;
52+
pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
53+
}
54+
55+
s! {
56+
pub struct iovec {
57+
pub iov_base: *mut ::c_void,
58+
pub iov_len: ::size_t,
59+
}
4660
}

0 commit comments

Comments
 (0)