summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-16 02:13:06 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-16 02:13:06 +0000
commitf2b49f2775e5ec4788b9476ad3b50fbccf140576 (patch)
treef773466316b489aae75734c71b0d2da64dca4fda
parentf8557be7e4e3668a7951ac91db35c60211c253ae (diff)
parentd41763c53c1aea7c96171df94b84e9a499888241 (diff)
downloadring-android14-qpr3-s2-release.tar.gz
Change-Id: Ia7009b3e26b960d6c9089b30f3684f310ab05e0a
-rw-r--r--Android.bp373
-rw-r--r--cargo2android.json30
-rw-r--r--cargo_embargo.json51
-rw-r--r--patches/Android.bp.patch46
-rw-r--r--patches/hardcode_prefix.patch53
-rw-r--r--src/prefixed.rs30
6 files changed, 420 insertions, 163 deletions
diff --git a/Android.bp b/Android.bp
index fe6f70f..1ec8356 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,4 +1,4 @@
-// This file is generated by cargo2android.py --config cargo2android.json.
+// This file is generated by cargo_embargo.
// Do not modify this file as changes will be overridden on upgrade.
package {
@@ -36,7 +36,6 @@ license {
rust_library {
name: "libring",
- // has rustc warnings
host_supported: true,
crate_name: "ring",
cargo_env_compat: true,
@@ -50,6 +49,7 @@ rust_library {
"once_cell",
"std",
],
+ cfgs: ["soong"],
rustlibs: [
"liblibc",
"libonce_cell",
@@ -69,43 +69,8 @@ rust_library {
min_sdk_version: "29",
}
-rust_library_rlib {
- name: "libring_nostd",
- // has rustc warnings
- crate_name: "ring",
- cargo_env_compat: true,
- cargo_pkg_version: "0.17.0-alpha.11",
- srcs: ["src/lib.rs"],
- edition: "2018",
- features: ["once_cell"],
- rustlibs: [
- "liblibc",
- "libonce_cell",
- "libspin_nostd",
- "libuntrusted",
- ],
- whole_static_libs: [
- "libring-core",
- "libring-test",
- ],
- apex_available: [
- "//apex_available:platform",
- "com.android.resolv",
- ],
- prefer_rlib: true,
- no_stdlibs: true,
- stdlibs: [
- "libcompiler_builtins.rust_sysroot",
- "libcore.rust_sysroot",
- ],
- product_available: true,
- vendor_available: true,
- min_sdk_version: "29",
-}
-
rust_test {
name: "ring_test_src_lib",
- // has rustc warnings
host_supported: true,
crate_name: "ring",
cargo_env_compat: true,
@@ -124,6 +89,7 @@ rust_test {
"once_cell",
"std",
],
+ cfgs: ["soong"],
rustlibs: [
"liblibc",
"libonce_cell",
@@ -136,13 +102,18 @@ rust_test {
],
}
-rust_defaults {
- name: "ring_test_defaults",
- crate_name: "ring",
+rust_test {
+ name: "ring_test_tests_aead_tests",
+ host_supported: true,
+ crate_name: "aead_tests",
cargo_env_compat: true,
cargo_pkg_version: "0.17.0-alpha.11",
+ srcs: ["tests/aead_tests.rs"],
test_suites: ["general-tests"],
auto_gen_config: true,
+ test_options: {
+ unit_test: true,
+ },
edition: "2018",
features: [
"alloc",
@@ -151,6 +122,7 @@ rust_defaults {
"once_cell",
"std",
],
+ cfgs: ["soong"],
rustlibs: [
"liblibc",
"libonce_cell",
@@ -161,146 +133,397 @@ rust_defaults {
}
rust_test {
- name: "ring_test_tests_aead_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
- host_supported: true,
- srcs: ["tests/aead_tests.rs"],
- test_options: {
- unit_test: true,
- },
-}
-
-rust_test {
name: "ring_test_tests_agreement_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "agreement_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/agreement_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_constant_time_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "constant_time_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/constant_time_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_digest_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "digest_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/digest_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_ecdsa_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "ecdsa_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/ecdsa_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_ed25519_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "ed25519_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/ed25519_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_hkdf_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "hkdf_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/hkdf_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_hmac_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "hmac_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/hmac_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_pbkdf2_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "pbkdf2_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/pbkdf2_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_quic_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "quic_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/quic_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_rand_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "rand_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/rand_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_rsa_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "rsa_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/rsa_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
}
rust_test {
name: "ring_test_tests_signature_tests",
- defaults: ["ring_test_defaults"],
- // has rustc warnings
host_supported: true,
+ crate_name: "signature_tests",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
srcs: ["tests/signature_tests.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
test_options: {
unit_test: true,
},
+ edition: "2018",
+ features: [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std",
+ ],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libring",
+ "libspin",
+ "libuntrusted",
+ ],
+}
+
+rust_library_rlib {
+ name: "libring_nostd",
+ crate_name: "ring",
+ cargo_env_compat: true,
+ cargo_pkg_version: "0.17.0-alpha.11",
+ srcs: ["src/lib.rs"],
+ edition: "2018",
+ features: ["once_cell"],
+ cfgs: ["soong"],
+ rustlibs: [
+ "liblibc",
+ "libonce_cell",
+ "libspin_nostd",
+ "libuntrusted",
+ ],
+ whole_static_libs: [
+ "libring-core",
+ "libring-test",
+ ],
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.resolv",
+ ],
+ prefer_rlib: true,
+ no_stdlibs: true,
+ stdlibs: [
+ "libcompiler_builtins.rust_sysroot",
+ "libcore.rust_sysroot",
+ ],
+ product_available: true,
+ vendor_available: true,
+ min_sdk_version: "29",
}
cc_library_static {
diff --git a/cargo2android.json b/cargo2android.json
deleted file mode 100644
index e7b015e..0000000
--- a/cargo2android.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "add-toplevel-block": "cargo2android_cc.bp",
- "apex-available": [
- "//apex_available:platform",
- "com.android.resolv"
- ],
- "dependencies": true,
- "device": true,
- "features": "alloc,default,dev_urandom_fallback,once_cell,std",
- "min-sdk-version": "29",
- "patch": "patches/Android.bp.patch",
- "run": true,
- "tests": true,
- "whole-static-libs": [
- "ring-core",
- "ring-test"
- ],
- "variants": [
- {},
- {
- "no-host": true,
- "suffix": "_nostd",
- "no-std": true,
- "alloc": false,
- "force-rlib": true,
- "features": "once_cell",
- "tests": false
- }
- ]
-}
diff --git a/cargo_embargo.json b/cargo_embargo.json
new file mode 100644
index 0000000..bc68e9c
--- /dev/null
+++ b/cargo_embargo.json
@@ -0,0 +1,51 @@
+{
+ "apex_available": [
+ "//apex_available:platform",
+ "com.android.resolv"
+ ],
+ "extra_cfg": ["soong"],
+ "min_sdk_version": "29",
+ "package": {
+ "ring": {
+ "add_toplevel_block": "cargo2android_cc.bp",
+ "whole_static_libs": [
+ "libring-core",
+ "libring-test"
+ ]
+ }
+ },
+ "variants": [
+ {
+ "features": [
+ "alloc",
+ "default",
+ "dev_urandom_fallback",
+ "once_cell",
+ "std"
+ ],
+ "module_name_overrides": {
+ "libring_core_0_17_0_alpha_11_": "libring-core",
+ "libring_core_0_17_0_alpha_11_test": "libring-test"
+ },
+ "tests": true
+ },
+ {
+ "features": [
+ "once_cell"
+ ],
+ "module_name_overrides": {
+ "libring_core_0_17_0_alpha_11_": "libring-core",
+ "libring_core_0_17_0_alpha_11_test": "libring-test",
+ "libring": "libring_nostd",
+ "libspin": "libspin_nostd"
+ },
+ "package": {
+ "ring": {
+ "force_rlib": true,
+ "host_supported": false,
+ "no_std": true
+ }
+ }
+ }
+ ]
+}
diff --git a/patches/Android.bp.patch b/patches/Android.bp.patch
deleted file mode 100644
index 9e02f93..0000000
--- a/patches/Android.bp.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/Android.bp b/Android.bp
-index 9690d3d..9c28b81 100644
---- a/Android.bp
-+++ b/Android.bp
-@@ -56,9 +56,9 @@ rust_library {
- "libspin",
- "libuntrusted",
- ],
-- static_libs: [
-- "libring_core_0_17_0_alpha_11_",
-- "libring_core_0_17_0_alpha_11_test",
-+ whole_static_libs: [
-+ "libring-core",
-+ "libring-test",
- ],
- apex_available: [
- "//apex_available:platform",
-@@ -82,12 +80,12 @@ rust_library_rlib {
- rustlibs: [
- "liblibc",
- "libonce_cell",
-- "libspin",
-+ "libspin_nostd",
- "libuntrusted",
- ],
-- static_libs: [
-- "libring_core_0_17_0_alpha_11_",
-- "libring_core_0_17_0_alpha_11_test",
-+ whole_static_libs: [
-+ "libring-core",
-+ "libring-test",
- ],
- apex_available: [
- "//apex_available:platform",
-@@ -131,9 +129,9 @@ rust_test {
- "libspin",
- "libuntrusted",
- ],
-- static_libs: [
-- "libring_core_0_17_0_alpha_11_",
-- "libring_core_0_17_0_alpha_11_test",
-+ whole_static_libs: [
-+ "libring-core",
-+ "libring-test",
- ],
- }
diff --git a/patches/hardcode_prefix.patch b/patches/hardcode_prefix.patch
index a37c68a..41d00ec 100644
--- a/patches/hardcode_prefix.patch
+++ b/patches/hardcode_prefix.patch
@@ -1,14 +1,45 @@
-diff --git a/src/prefixed.rs b/src/prefixed.rs
-index 0f1c13e8c..c8ac807ee 100644
---- a/src/prefixed.rs
-+++ b/src/prefixed.rs
-@@ -68,7 +68,8 @@ macro_rules! prefixed_item {
- } => {
- prefixed_item! {
- $attr
-- { concat!(env!("RING_CORE_PREFIX"), stringify!($name)) }
-+ //{ concat!(env!("RING_CORE_PREFIX"), stringify!($name)) }
-+ { concat!("ring_core_android_platform_", stringify!($name)) }
+--- src/prefixed.rs.orig 2023-11-21 14:54:21.563997351 +0000
++++ src/prefixed.rs 2023-11-21 14:48:18.346428666 +0000
+@@ -73,6 +73,7 @@
+ };
+ }
+
++#[cfg(not(soong))]
+ macro_rules! prefixed_item {
+ // Calculate the prefixed name in a separate layer of macro expansion
+ // because rustc won't currently accept a non-literal expression as
+@@ -88,6 +89,34 @@
{ $( $item )+ }
}
};
++
++ // Output the item.
++ {
++ $attr:ident
++ { $prefixed_name:expr }
++ { $( $item:tt )+ }
++ } => {
++ #[$attr = $prefixed_name]
++ $( $item )+
++ };
++}
++
++#[cfg(soong)]
++macro_rules! prefixed_item {
++ // Calculate the prefixed name in a separate layer of macro expansion
++ // because rustc won't currently accept a non-literal expression as
++ // the value for `#[link_name = value]`.
++ {
++ $attr:ident
++ $name:ident
++ { $( $item:tt )+ }
++ } => {
++ prefixed_item! {
++ $attr
++ { concat!("ring_core_android_platform_", stringify!($name)) }
++ { $( $item )+ }
++ }
++ };
+
+ // Output the item.
+ {
diff --git a/src/prefixed.rs b/src/prefixed.rs
index a35f921..0b90721 100644
--- a/src/prefixed.rs
+++ b/src/prefixed.rs
@@ -73,6 +73,35 @@ macro_rules! prefixed_export {
};
}
+#[cfg(not(soong))]
+macro_rules! prefixed_item {
+ // Calculate the prefixed name in a separate layer of macro expansion
+ // because rustc won't currently accept a non-literal expression as
+ // the value for `#[link_name = value]`.
+ {
+ $attr:ident
+ $name:ident
+ { $( $item:tt )+ }
+ } => {
+ prefixed_item! {
+ $attr
+ { concat!(env!("RING_CORE_PREFIX"), stringify!($name)) }
+ { $( $item )+ }
+ }
+ };
+
+ // Output the item.
+ {
+ $attr:ident
+ { $prefixed_name:expr }
+ { $( $item:tt )+ }
+ } => {
+ #[$attr = $prefixed_name]
+ $( $item )+
+ };
+}
+
+#[cfg(soong)]
macro_rules! prefixed_item {
// Calculate the prefixed name in a separate layer of macro expansion
// because rustc won't currently accept a non-literal expression as
@@ -84,7 +113,6 @@ macro_rules! prefixed_item {
} => {
prefixed_item! {
$attr
- //{ concat!(env!("RING_CORE_PREFIX"), stringify!($name)) }
{ concat!("ring_core_android_platform_", stringify!($name)) }
{ $( $item )+ }
}