Snap for 11426397 from 3f24285bb77e426aa060bb6dc649ace224b8fc0a to 24Q2-release
Change-Id: If33b3d2b6bc4d3264388ffee794072eaa4f2c2a4
diff --git a/Android.bp b/Android.bp
index c2f83d7..6aec059 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,26 @@
test_options: {
unit_test: true,
},
- edition: "2015",
+ edition: "2018",
+ features: ["default"],
+ cfgs: [
+ "allow_clippy",
+ "doctests",
+ "maybe_uninit",
+ "raw_ref_macros",
+ "stable_const",
+ "tuple_ty",
+ "aosp_force_use_std",
+ ],
+}
+
+rust_library_rlib {
+ name: "libmemoffset_nostd",
+ crate_name: "memoffset",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.9.0",
+ srcs: ["src/lib.rs"],
+ edition: "2018",
features: ["default"],
cfgs: [
"allow_clippy",
@@ -66,4 +86,17 @@
"stable_const",
"tuple_ty",
],
+ apex_available: [
+ "//apex_available:platform",
+ "//apex_available:anyapex",
+ ],
+ prefer_rlib: true,
+ no_stdlibs: true,
+ stdlibs: [
+ "liballoc.rust_sysroot",
+ "libcompiler_builtins.rust_sysroot",
+ "libcore.rust_sysroot",
+ ],
+ product_available: true,
+ vendor_available: true,
}
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..a503b0a 100644
--- a/cargo_embargo.json
+++ b/cargo_embargo.json
@@ -9,7 +9,23 @@
"variants": [
{
"min_sdk_version": "29",
+ "extra_cfg": [
+ "aosp_force_use_std"
+ ],
"tests": true
+ },
+ {
+ "module_name_overrides": {
+ "libmemoffset": "libmemoffset_nostd"
+ },
+ "package": {
+ "memoffset": {
+ "alloc": true,
+ "force_rlib": true,
+ "host_supported": false,
+ "no_std": 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() {