From 295e653331b82fa3cddf4d25df73645661798092 Mon Sep 17 00:00:00 2001 From: Jeff DeCew Date: Fri, 4 Dec 2020 18:05:42 +0000 Subject: [PATCH] Revert "rusty-gd: add stack start stubs, define shim library" Revert submission 1512686 Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=mainline_modules&lkgb=7010703&lkbb=7011903&fkbb=7010786, bug b/174815635 Bug: 174815635 Reverted Changes: I163111bc8:rusty-gd: move init_flag parsing to rust I54cffe93d:rusty-gd: compile into libbluetooth I5207f4df9:rusty-gd: add stack start stubs, define shim libra... Change-Id: I760eea76d21b768acb76b8b9dd7f58c2519e0723 --- build/Android.bp | 6 ++-- gd/Android.bp | 36 ++++++++++--------- gd/rust/common/Android.bp | 36 ++++++++++++++++--- gd/rust/common/src/init_flags.rs | 28 +++++++++++---- gd/rust/common/src/lib.rs | 6 ++-- gd/rust/shim/Android.bp | 64 ---------------------------------- gd/rust/shim/src/init_flags.rs | 20 ----------- gd/rust/shim/src/lib.rs | 4 --- gd/rust/shim/src/stack.rs | 15 -------- main/Android.bp | 2 +- main/shim/stack.cc | 11 ------ stack/test/fuzzers/Android.bp | 1 - test/headless/Android.bp | 3 -- test/rootcanal/Android.bp | 2 -- vendor_libs/test_vendor_lib/Android.bp | 1 - 15 files changed, 79 insertions(+), 156 deletions(-) delete mode 100644 gd/rust/shim/Android.bp delete mode 100644 gd/rust/shim/src/init_flags.rs delete mode 100644 gd/rust/shim/src/lib.rs delete mode 100644 gd/rust/shim/src/stack.rs diff --git a/build/Android.bp b/build/Android.bp index ed2bdeb96..d7643e987 100644 --- a/build/Android.bp +++ b/build/Android.bp @@ -90,9 +90,6 @@ fluoride_defaults { }, static_libs: [ "libbluetooth_gd", - "libbluetooth_rust_interop", - "libbt_shim_ffi", - "libcxxbridge05", ], target: { darwin: { @@ -100,6 +97,9 @@ fluoride_defaults { enabled: false, }, }, + generated_headers: [ + "libbt_common_bridge_header", + ], } // Enables code coverage for a set of source files. Must be combined with diff --git a/gd/Android.bp b/gd/Android.bp index d42595116..116c32451 100644 --- a/gd/Android.bp +++ b/gd/Android.bp @@ -76,6 +76,7 @@ cc_defaults { name: "gd_clang_tidy", tidy: true, tidy_checks: [ + "cppcoreguidelines-pro-type-member-init", "clang-analyzer-core.CallAndMessage", "clang-analyzer-optin.cplusplus.UninitializedObject", "-google*", @@ -153,6 +154,7 @@ cc_defaults { "BluetoothGeneratedDumpsysDataSchema_h", "BluetoothGeneratedDumpsysBundledSchema_h", "BluetoothGeneratedPackets_h", + "libbt_common_bridge_header", ], shared_libs: [ "libchrome", @@ -162,10 +164,26 @@ cc_defaults { static_libs: [ "libbluetooth-protos", "libbluetooth_rust_interop", - "libbt_shim_ffi", + "libbt_common_ffi", "libcxxbridge05", ], - export_static_lib_headers: [ "libbluetooth_rust_interop" ], +} + +cc_library_static { + name: "libbluetooth_rust_interop", + generated_headers: ["libbt_common_bridge_header"], + generated_sources: ["libbt_common_bridge_code"], + cflags: [ + "-Wno-unused-const-variable", + ], + host_supported: true, + apex_available: [ + "//apex_available:platform", + "com.android.bluetooth.updatable", + ], + static_libs: [ + "libbt_common_ffi", + ], } cc_library { @@ -224,9 +242,6 @@ cc_binary { "libbluetooth-protos", "libbluetooth_gd", "libflatbuffers-cpp", - "libbluetooth_rust_interop", - "libbt_shim_ffi", - "libcxxbridge05", ], shared_libs: [ "libbacktrace", @@ -315,9 +330,6 @@ cc_test { "libc++fs", "libflatbuffers-cpp", "libgmock", - "libbluetooth_rust_interop", - "libbt_shim_ffi", - "libcxxbridge05", ], shared_libs: [ "libchrome", @@ -348,11 +360,6 @@ cc_test { address: true, cfi: true, }, - static_libs: [ - "libbluetooth_rust_interop", - "libbt_shim_ffi", - "libcxxbridge05", - ], } cc_defaults { @@ -368,9 +375,6 @@ cc_defaults { "libchrome", "libgmock", "libgtest", - "libbluetooth_rust_interop", - "libbt_shim_ffi", - "libcxxbridge05", ], host_supported: true, generated_headers: [ diff --git a/gd/rust/common/Android.bp b/gd/rust/common/Android.bp index 040b269c1..2a77c981e 100644 --- a/gd/rust/common/Android.bp +++ b/gd/rust/common/Android.bp @@ -1,5 +1,6 @@ -rust_library { - name: "libbt_common", +rust_defaults { + name: "libbt_common_defaults", + stem: "libbt_common", crate_name: "bt_common", srcs: ["src/lib.rs"], edition: "2018", @@ -27,6 +28,16 @@ rust_library { host_supported: true, } +rust_library { + name: "libbt_common", + defaults: ["libbt_common_defaults"], +} + +rust_ffi_static { + name: "libbt_common_ffi", + defaults: ["libbt_common_defaults"], +} + rust_test_host { name: "libbt_common_inline_tests", srcs: ["src/lib.rs"], @@ -39,7 +50,22 @@ rust_test_host { "libenv_logger", "libcxx", ], - proc_macros: [ - "libpaste", - ], } + +genrule { + name: "libbt_common_bridge_header", + tools: ["cxxbridge"], + cmd: "$(location cxxbridge) $(in) --header > $(out)", + srcs: ["src/init_flags.rs"], + out: ["src/init_flags.rs.h"], +} + +genrule { + name: "libbt_common_bridge_code", + tools: ["cxxbridge"], + cmd: "$(location cxxbridge) $(in) >> $(out)", + srcs: ["src/init_flags.rs"], + out: ["init_flags.cc"], +} + + diff --git a/gd/rust/common/src/init_flags.rs b/gd/rust/common/src/init_flags.rs index 9367f90ad..b550c34c1 100644 --- a/gd/rust/common/src/init_flags.rs +++ b/gd/rust/common/src/init_flags.rs @@ -2,6 +2,24 @@ use log::{error, info}; use paste::paste; use std::sync::Mutex; +#[cxx::bridge(namespace = bluetooth::common::init_flags)] +mod ffi { + extern "Rust" { + fn load(flags: Vec); + fn set_all_for_testing(); + + fn gd_core_is_enabled() -> bool; + fn gd_security_is_enabled() -> bool; + fn gd_advertising_is_enabled() -> bool; + fn gd_acl_is_enabled() -> bool; + fn gd_l2cap_is_enabled() -> bool; + fn gd_hci_is_enabled() -> bool; + fn gd_controller_is_enabled() -> bool; + fn gatt_robust_caching_is_enabled() -> bool; + fn btaa_hci_is_enabled() -> bool; + } +} + macro_rules! init_flags { (flags: { $($flag:ident),* }, dependencies: { $($parent:ident => $child:ident),* }) => { #[derive(Default)] @@ -9,7 +27,6 @@ macro_rules! init_flags { $($flag: bool,)* } - /// Sets all flags to true, for testing pub fn set_all_for_testing() { *FLAGS.lock().unwrap() = InitFlags { $($flag: true,)* }; } @@ -64,7 +81,6 @@ macro_rules! init_flags { paste! { $( - #[allow(missing_docs)] pub fn [<$flag _is_enabled>]() -> bool { FLAGS.lock().unwrap().$flag } @@ -83,8 +99,7 @@ init_flags!( gd_hci, gd_controller, gatt_robust_caching, - btaa_hci, - gd_rust + btaa_hci }, dependencies: { gd_core => gd_security, @@ -98,11 +113,12 @@ lazy_static! { static ref FLAGS: Mutex = Mutex::new(InitFlags::default()); } -/// Loads the flag values from the passed-in vector of string values -pub fn load(flags: Vec) { +fn load(flags: Vec) { crate::init_logging(); let flags = InitFlags::parse(flags); flags.log(); *FLAGS.lock().unwrap() = flags; } + + diff --git a/gd/rust/common/src/lib.rs b/gd/rust/common/src/lib.rs index 051bf10af..ca1e1cc39 100644 --- a/gd/rust/common/src/lib.rs +++ b/gd/rust/common/src/lib.rs @@ -12,8 +12,7 @@ mod ready; #[macro_use] mod asserts; -/// Provides runtime configured-at-startup flags -pub mod init_flags; +mod init_flags; /// Inits logging for Android #[cfg(target_os = "android")] @@ -31,6 +30,5 @@ pub fn init_logging() { env_logger::Builder::new() .filter(None, log::LevelFilter::Debug) .parse_default_env() - .try_init() - .ok(); + .init(); } diff --git a/gd/rust/shim/Android.bp b/gd/rust/shim/Android.bp deleted file mode 100644 index c4035db4a..000000000 --- a/gd/rust/shim/Android.bp +++ /dev/null @@ -1,64 +0,0 @@ -rust_ffi_static { - name: "libbt_shim_ffi", - crate_name: "bt_shim", - srcs: ["src/lib.rs"], - rustlibs: [ - "libbt_hal", - "libbt_hci", - "libbt_common", - "libcxx", - ], - host_supported: true, -} - -cc_library_static { - name: "libbluetooth_rust_interop", - generated_headers: ["libbt_init_flags_bridge_header", "libbt_shim_bridge_header"], - generated_sources: ["libbt_init_flags_bridge_code", "libbt_shim_bridge_code"], - export_generated_headers: ["libbt_init_flags_bridge_header", "libbt_shim_bridge_header"], - cflags: [ - "-Wno-unused-const-variable", - ], - host_supported: true, - apex_available: [ - "//apex_available:platform", - "com.android.bluetooth.updatable", - ], - static_libs: [ - "libbt_shim_ffi", - ], -} - -genrule { - name: "libbt_shim_bridge_header", - tools: ["cxxbridge"], - cmd: "$(location cxxbridge) $(in) --header > $(out)", - srcs: ["src/stack.rs"], - out: ["src/stack.rs.h"], -} - -genrule { - name: "libbt_shim_bridge_code", - tools: ["cxxbridge"], - cmd: "$(location cxxbridge) $(in) >> $(out)", - srcs: ["src/stack.rs"], - out: ["stack.cc"], -} - -genrule { - name: "libbt_init_flags_bridge_header", - tools: ["cxxbridge"], - cmd: "$(location cxxbridge) $(in) --header > $(out)", - srcs: ["src/init_flags.rs"], - out: ["src/init_flags.rs.h"], -} - -genrule { - name: "libbt_init_flags_bridge_code", - tools: ["cxxbridge"], - cmd: "$(location cxxbridge) $(in) >> $(out)", - srcs: ["src/init_flags.rs"], - out: ["init_flags.cc"], -} - - diff --git a/gd/rust/shim/src/init_flags.rs b/gd/rust/shim/src/init_flags.rs deleted file mode 100644 index e598af6c3..000000000 --- a/gd/rust/shim/src/init_flags.rs +++ /dev/null @@ -1,20 +0,0 @@ -#[cxx::bridge(namespace = bluetooth::common::init_flags)] -mod ffi { - extern "Rust" { - fn load(flags: Vec); - fn set_all_for_testing(); - - fn gd_core_is_enabled() -> bool; - fn gd_security_is_enabled() -> bool; - fn gd_advertising_is_enabled() -> bool; - fn gd_acl_is_enabled() -> bool; - fn gd_l2cap_is_enabled() -> bool; - fn gd_hci_is_enabled() -> bool; - fn gd_controller_is_enabled() -> bool; - fn gatt_robust_caching_is_enabled() -> bool; - fn btaa_hci_is_enabled() -> bool; - fn gd_rust_is_enabled() -> bool; - } -} - -use bt_common::init_flags::*; diff --git a/gd/rust/shim/src/lib.rs b/gd/rust/shim/src/lib.rs deleted file mode 100644 index bf75103af..000000000 --- a/gd/rust/shim/src/lib.rs +++ /dev/null @@ -1,4 +0,0 @@ -//! The main entry point for the legacy C++ code - -mod stack; -mod init_flags; diff --git a/gd/rust/shim/src/stack.rs b/gd/rust/shim/src/stack.rs deleted file mode 100644 index 89dc97a87..000000000 --- a/gd/rust/shim/src/stack.rs +++ /dev/null @@ -1,15 +0,0 @@ -//! Stack management - -#[cxx::bridge(namespace = bluetooth::rust::stack)] -mod ffi { - extern "Rust" { - fn start(); - fn stop(); - } -} - -pub fn start() { -} - -pub fn stop() { -} diff --git a/main/Android.bp b/main/Android.bp index 5df610c79..7673b8b39 100644 --- a/main/Android.bp +++ b/main/Android.bp @@ -112,7 +112,7 @@ cc_library_shared { "libudrv-uipc", "libbluetooth_gd", // Gabeldorsche "libbluetooth_rust_interop", - "libbt_shim_ffi", + "libbt_common_ffi", "libcxxbridge05", ], whole_static_libs: [ diff --git a/main/shim/stack.cc b/main/shim/stack.cc index 2c9c73024..03876040d 100644 --- a/main/shim/stack.cc +++ b/main/shim/stack.cc @@ -45,7 +45,6 @@ #include "main/shim/le_advertising_manager.h" #include "main/shim/shim.h" #include "main/shim/stack.h" -#include "src/stack.rs.h" namespace bluetooth { namespace shim { @@ -68,11 +67,6 @@ void Stack::StartIdleMode() { } void Stack::StartEverything() { - if (common::init_flags::gd_rust_is_enabled()) { - rust::stack::start(); - return; - } - std::lock_guard lock(mutex_); ASSERT_LOG(!is_running_, "%s Gd stack already running", __func__); LOG_INFO("%s Starting Gd stack", __func__); @@ -152,11 +146,6 @@ void Stack::Start(ModuleList* modules) { } void Stack::Stop() { - if (common::init_flags::gd_rust_is_enabled()) { - rust::stack::stop(); - return; - } - std::lock_guard lock(mutex_); if (!common::init_flags::gd_core_is_enabled()) { bluetooth::shim::hci_on_shutting_down(); diff --git a/stack/test/fuzzers/Android.bp b/stack/test/fuzzers/Android.bp index aa2f8a89c..4b10b777a 100644 --- a/stack/test/fuzzers/Android.bp +++ b/stack/test/fuzzers/Android.bp @@ -29,7 +29,6 @@ cc_defaults { "libudrv-uipc", "libbt-protos-lite", "libbluetooth_gd", - "libcxxbridge05", ], shared_libs: [ "libbinder", diff --git a/test/headless/Android.bp b/test/headless/Android.bp index 4cd4dc823..16b322da5 100644 --- a/test/headless/Android.bp +++ b/test/headless/Android.bp @@ -40,9 +40,6 @@ cc_test { "libprotobuf-cpp-lite", "libudrv-uipc", "libz", - "libbluetooth_rust_interop", - "libbt_shim_ffi", - "libcxxbridge05", ], shared_libs: [ "android.hardware.bluetooth.a2dp@1.0", diff --git a/test/rootcanal/Android.bp b/test/rootcanal/Android.bp index a4dfac891..1094afc55 100644 --- a/test/rootcanal/Android.bp +++ b/test/rootcanal/Android.bp @@ -45,7 +45,6 @@ cc_binary { generated_headers: [ "RootCanalGeneratedPackets_h", "BluetoothGeneratedPackets_h", - "libbt_init_flags_bridge_header", ], static_libs: [ "android.hardware.bluetooth-async", @@ -94,7 +93,6 @@ cc_library_shared { generated_headers: [ "RootCanalGeneratedPackets_h", "BluetoothGeneratedPackets_h", - "libbt_init_flags_bridge_header", ], static_libs: [ "android.hardware.bluetooth-async", diff --git a/vendor_libs/test_vendor_lib/Android.bp b/vendor_libs/test_vendor_lib/Android.bp index 77e57cf46..12162e3b8 100644 --- a/vendor_libs/test_vendor_lib/Android.bp +++ b/vendor_libs/test_vendor_lib/Android.bp @@ -57,7 +57,6 @@ cc_library_static { generated_headers: [ "RootCanalGeneratedPackets_h", "BluetoothGeneratedPackets_h", - "libbt_init_flags_bridge_header", ], include_dirs: [ "system/bt", -- 2.11.0