Provide a cut down variant of libcrypto for static linking into ART and
libcore.
Test: See https://r.android.com/3089446
Bug: 340868296
Change-Id: I3758079588b8b258ac5d268f6d1ff399f66e093f
diff --git a/Android.bp b/Android.bp
index 9b5004c..32de129 100644
--- a/Android.bp
+++ b/Android.bp
@@ -178,9 +178,6 @@
"//apex_available:platform",
"com.android.adbd",
"com.android.adservices",
- "com.android.art",
- "com.android.art.debug",
- "com.android.art.testing",
"com.android.btservices",
"com.android.compos",
"com.android.conscrypt",
@@ -283,9 +280,6 @@
"//apex_available:platform",
"com.android.adbd",
"com.android.adservices",
- "com.android.art",
- "com.android.art.debug",
- "com.android.art.testing",
"com.android.btservices",
"com.android.compos",
"com.android.conscrypt",
@@ -348,8 +342,6 @@
cc_library_static {
name: "libcrypto_static",
visibility: [
- "//art/build/sdk",
- "//art/dex2oat", // Only for test use (note this module isn't in apex_available).
"//bootable/recovery/updater",
"//bootable/deprecated-ota/updater",
"//external/conscrypt",
@@ -412,6 +404,46 @@
],
}
+// For static linking into the ART module to provide limited functionality:
+// bignums and SHA1 for ELF checksums.
+cc_library_static {
+ name: "libcrypto_for_art",
+ defaults: [
+ "libcrypto_defaults",
+ "boringssl_defaults",
+ ],
+ srcs: [
+ "src/crypto/cpu_*.c",
+ "src/crypto/crypto.c",
+ "src/crypto/err/err.c",
+ "src/crypto/fipsmodule/bn/*.c",
+ "src/crypto/fipsmodule/bn/asm/*.c",
+ "src/crypto/fipsmodule/rand/*.c",
+ "src/crypto/fipsmodule/sha/sha1.c",
+ "src/crypto/mem.c",
+ "src/crypto/stack/stack.c",
+ "src/crypto/thread_pthread.c",
+ "src/gen/crypto/err_data.c",
+ ],
+ target: {
+ linux: {
+ srcs: [
+ "src/gen/bcm/*-linux.S",
+ ],
+ },
+ },
+ visibility: [
+ "//art:__subpackages__",
+ "//libcore:__subpackages__",
+ ],
+ apex_available: [
+ "com.android.art",
+ "com.android.art.debug",
+ "com.android.art.testing",
+ ],
+ min_sdk_version: "29",
+}
+
// Common defaults for lib*_fuzz_unsafe. These are unsafe and deterministic
// libraries for testing and fuzzing only. See src/FUZZING.md.
cc_defaults {