Bring back upstream support for no_std in Android am: e2e12f853d am: 320bea9721
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/memoffset/+/2952668
Change-Id: Ic32a5419ab3666bf8f941ce70f80fe1f7fca20a5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index c2f83d7..b617d11 100644
--- a/Android.bp
+++ b/Android.bp
@@ -25,7 +25,7 @@
cargo_env_compat: true,
cargo_pkg_version: "0.9.0",
srcs: ["src/lib.rs"],
- edition: "2015",
+ edition: "2018",
features: ["default"],
cfgs: [
"allow_clippy",
@@ -34,6 +34,7 @@
"raw_ref_macros",
"stable_const",
"tuple_ty",
+ "aosp_force_use_std",
],
apex_available: [
"//apex_available:platform",
@@ -56,7 +57,7 @@
test_options: {
unit_test: true,
},
- edition: "2015",
+ edition: "2018",
features: ["default"],
cfgs: [
"allow_clippy",
@@ -65,5 +66,6 @@
"raw_ref_macros",
"stable_const",
"tuple_ty",
+ "aosp_force_use_std",
],
}
diff --git a/Cargo.toml b/Cargo.toml
index 77fe68f..bc62b4a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,6 +10,7 @@
# See Cargo.toml.orig for the original contents.
[package]
+edition = "2018" # ANDROID: Required to build dylib in no_std.
name = "memoffset"
version = "0.9.0"
authors = ["Gilad Naaman <gilad.naaman@gmail.com>"]
diff --git a/cargo_embargo.json b/cargo_embargo.json
index c458c58..0ff27f0 100644
--- a/cargo_embargo.json
+++ b/cargo_embargo.json
@@ -9,6 +9,9 @@
"variants": [
{
"min_sdk_version": "29",
+ "extra_cfg": [
+ "aosp_force_use_std"
+ ],
"tests": true
}
]
diff --git a/patches/std.diff b/patches/std.diff
index fc4bdbc..034f559 100644
--- a/patches/std.diff
+++ b/patches/std.diff
@@ -1,40 +1,21 @@
+diff --git a/Cargo.toml b/Cargo.toml
+index 77fe68f..bc62b4a 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -10,4 +10,5 @@
+ # See Cargo.toml.orig for the original contents.
+
+ [package]
++edition = "2018" # ANDROID: Required to build dylib in no_std.
+ name = "memoffset"
diff --git a/src/lib.rs b/src/lib.rs
index c85fb01..25b0444 100644
--- a/src/lib.rs
+++ b/src/lib.rs
-@@ -56,7 +56,8 @@
+@@ -55,5 +55,5 @@
//! let checksum = crc16(checksum_range);
//! ```
-#![no_std]
-+// ANDROID: include standard library to build as a dylib
-+//#![no_std]
++#![cfg_attr(not(aosp_force_use_std), no_std)]
#![cfg_attr(
- feature = "unstable_const",
- feature(
-@@ -78,9 +79,9 @@
- #[doc(hidden)]
- pub mod __priv {
- #[doc(hidden)]
-- pub use core::mem;
-+ pub use std::mem; // ANDROID: use std instead of core, since we're not building with no-std.
- #[doc(hidden)]
-- pub use core::ptr;
-+ pub use std::ptr; // ANDROID: use std instead of core, since we're not building with no-std.
-
- /// Use type inference to obtain the size of the pointee (without actually using the pointer).
- #[doc(hidden)]
-diff --git a/src/span_of.rs b/src/span_of.rs
-index 0592dbd..369e5c6 100644
---- a/src/span_of.rs
-+++ b/src/span_of.rs
-@@ -155,7 +155,8 @@ macro_rules! span_of {
-
- #[cfg(test)]
- mod tests {
-- use core::mem;
-+ // ANDROID: use std instead of core, since we're not building wiht no-std.
-+ use std::mem;
-
- #[test]
- fn span_simple() {
\ No newline at end of file
diff --git a/src/lib.rs b/src/lib.rs
index f0aab7b..8d65d9a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -55,8 +55,7 @@
//! let checksum = crc16(checksum_range);
//! ```
-// ANDROID: include standard library to build as a dylib
-//#![no_std]
+#![cfg_attr(not(aosp_force_use_std), no_std)]
#![cfg_attr(
all(feature = "unstable_const", not(stable_const)),
feature(const_ptr_offset_from)
@@ -76,9 +75,9 @@
#[doc(hidden)]
pub mod __priv {
#[doc(hidden)]
- pub use std::mem; // ANDROID: use std instead of core, since we're not building with no-std.
+ pub use core::mem;
#[doc(hidden)]
- pub use std::ptr; // ANDROID: use std instead of core, since we're not building with no-std.
+ pub use core::ptr;
/// Use type inference to obtain the size of the pointee (without actually using the pointer).
#[doc(hidden)]
diff --git a/src/span_of.rs b/src/span_of.rs
index c2030b7..89fccce 100644
--- a/src/span_of.rs
+++ b/src/span_of.rs
@@ -155,8 +155,7 @@
#[cfg(test)]
mod tests {
- // ANDROID: use std instead of core, since we're not building wiht no-std.
- use std::mem;
+ use core::mem;
#[test]
fn span_simple() {