Explicitly include libgui as a shared library in libgui_test.
Currently, libgui is compiled statically into the test binary by virtue
of `src` attribute of `libgui-defaults`, and also loaded as a shared
library by transitive dependency. This leads to double-delete and
use-after-delete issues in the test on global mutexes defined by
android::Singleton<>.
Flag: EXEMPT refactor
Test: presubmit
Bug: 399711310
Change-Id: I31408237f345632bfd8f2d2ac880dfac53e75ae4
diff --git a/libs/gui/Android.bp b/libs/gui/Android.bp
index b5fa321..158c548 100644
--- a/libs/gui/Android.bp
+++ b/libs/gui/Android.bp
@@ -295,7 +295,6 @@
cc_defaults {
name: "libgui-defaults",
defaults: ["libgui_bufferqueue-defaults"],
- srcs: [":libgui-sources"],
static_libs: [
"libgui_aidl_static",
"libgui_window_info_static",
@@ -319,6 +318,10 @@
"libgui-defaults",
],
+ srcs: [
+ ":libgui-sources",
+ ],
+
export_static_lib_headers: [
"libgui_aidl_static",
"libgui_window_info_static",
diff --git a/libs/gui/tests/Android.bp b/libs/gui/tests/Android.bp
index e20345d..308b2ab 100644
--- a/libs/gui/tests/Android.bp
+++ b/libs/gui/tests/Android.bp
@@ -100,6 +100,7 @@
"android.hardware.configstore-utils",
"libSurfaceFlingerProp",
"libGLESv1_CM",
+ "libgui",
"libgui_test_server_aidl-cpp",
"libinput",
"libnativedisplay",