Merge pie-platform-release to aosp-master - DO NOT MERGE

Change-Id: I9a59730bcc2130499c0ad97877d7e289c9151a33
diff --git a/Android.bp b/Android.bp
index 5b7459f..89d675a 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,7 +16,7 @@
     "tests",
 ]
 
-cc_library_shared {
+cc_library {
     name: "libfmq",
     shared_libs: [
         "libbase",
diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk
index 3f481cb..6b94f04 100644
--- a/benchmarks/Android.mk
+++ b/benchmarks/Android.mk
@@ -30,9 +30,11 @@
     libhidlbase \
     libhidltransport
 
-LOCAL_REQUIRED_MODULES := \
-    android.hardware.tests.msgq@1.0-impl_32 \
-    android.hardware.tests.msgq@1.0-impl
+LOCAL_REQUIRED_MODULES := android.hardware.tests.msgq@1.0-impl
+
+ifneq ($(TARGET_2ND_ARCH),)
+LOCAL_REQUIRED_MODULES += android.hardware.tests.msgq@1.0-impl$(TARGET_2ND_ARCH_MODULE_SUFFIX)
+endif
 
 LOCAL_SHARED_LIBRARIES += android.hardware.tests.msgq@1.0 libfmq
 LOCAL_MODULE := mq_benchmark_client
diff --git a/tests/Android.mk b/tests/Android.mk
index 36258d9..c6b6026 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -24,14 +24,14 @@
     android.hardware.tests.msgq@1.0-service-test    \
     hidl_test_helper
 
-LOCAL_REQUIRED_MODULES_arm64 := android.hardware.tests.msgq@1.0-service-test_32 mq_test_client_32
-LOCAL_REQUIRED_MODULES_mips64 := android.hardware.tests.msgq@1.0-service-test_32 mq_test_client_32
-LOCAL_REQUIRED_MODULES_x86_64 := android.hardware.tests.msgq@1.0-service-test_32 mq_test_client_32
+ifneq ($(TARGET_2ND_ARCH),)
+LOCAL_REQUIRED_MODULES += android.hardware.tests.msgq@1.0-service-test$(TARGET_2ND_ARCH_MODULE_SUFFIX)
+LOCAL_REQUIRED_MODULES += mq_test_client$(TARGET_2ND_ARCH_MODULE_SUFFIX)
+endif
 
 include $(BUILD_PREBUILT)
 
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsFmqUnitTests
-VTS_CONFIG_SRC_DIR := system/libfmq/tests
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/tests/msgq_test_client.cpp b/tests/msgq_test_client.cpp
index 50664f7..ce7e340 100644
--- a/tests/msgq_test_client.cpp
+++ b/tests/msgq_test_client.cpp
@@ -72,17 +72,19 @@
     }
 
     virtual void SetUp() {
+        static constexpr size_t kNumElementsInQueue = 1024;
         mService = waitGetTestService();
         ASSERT_NE(mService, nullptr);
         ASSERT_TRUE(mService->isRemote());
-        mService->configureFmqSyncReadWrite([this](
-                bool ret, const MQDescriptorSync<uint16_t>& in) {
-            ASSERT_TRUE(ret);
-            mQueue = new (std::nothrow) MessageQueueSync(in);
-        });
+        // create a queue on the client side
+        mQueue = new (std::nothrow)
+            MessageQueueSync(kNumElementsInQueue, true /* configure event flag word */);
         ASSERT_NE(nullptr, mQueue);
         ASSERT_TRUE(mQueue->isValid());
         mNumMessagesMax = mQueue->getQuantumCount();
+
+        // tell server to set up the queue on its end
+        ASSERT_TRUE(mService->configureFmqSyncReadWrite(*mQueue->getDesc()));
     }
 
     sp<ITestMsgQ> mService;