liblibfdt: Add no_std variant for libfdt_baremetal
Add a second rlib that wraps the newly-created libfdt_baremetal
cc_library to ensure that baremetal clients (using the *_nostd library
variants) don't use the non-_baremetal C library. This allows baremetal
code to be compiled with a different set of Clang flags.
Test: m pvmfw
Change-Id: I71b50eeafe257fa6086805ca5a6b4c0de935bb32
diff --git a/libs/libfdt/Android.bp b/libs/libfdt/Android.bp
index 4ec0cc5..09f288d 100644
--- a/libs/libfdt/Android.bp
+++ b/libs/libfdt/Android.bp
@@ -25,8 +25,8 @@
apex_available: ["com.android.virt"],
}
-rust_library_rlib {
- name: "liblibfdt",
+rust_defaults {
+ name: "liblibfdt_defaults",
crate_name: "libfdt",
defaults: ["avf_build_flags_rust"],
srcs: [
@@ -34,23 +34,36 @@
":liblibfdt_bindgen",
],
edition: "2021",
- no_stdlibs: true,
- prefer_rlib: true,
- stdlibs: [
- "libcore.rust_sysroot",
- ],
rustlibs: [
"libcstr",
"liblibfdt_bindgen",
"libstatic_assertions",
"libzerocopy_nostd",
],
+}
+
+rust_library_rlib {
+ name: "liblibfdt",
+ defaults: ["liblibfdt_defaults"],
whole_static_libs: [
"libfdt",
],
apex_available: ["com.android.virt"],
}
+rust_library_rlib {
+ name: "liblibfdt_nostd",
+ defaults: ["liblibfdt_defaults"],
+ no_stdlibs: true,
+ prefer_rlib: true,
+ stdlibs: [
+ "libcore.rust_sysroot",
+ ],
+ whole_static_libs: [
+ "libfdt_baremetal",
+ ],
+}
+
rust_test {
name: "liblibfdt.integration_test",
crate_name: "libfdt_test",