Make static libtistress version
It turned out to be difficult to actually run the libtistress on
actual apps due to the fact it linked shared to a lot of libraries.
This adds libtistresss and libtistressds targets which build static
versions of libtistress both without and with debug checks.
This also adds a simple Agent_OnAttach entrypoint for the agent. No
special processing is performed. The agent is setup as though it were
running OnLoad.
Test: m -j50 libtistressds
adb push $OUT/data/nativetest64/art/arm64/libtistressds.so /data/local/tmp
adb shell setenforce 0
adb shell am start-activity \
--attach-agent /data/local/tmp/libtistressds.so=jvmti-stress,trace \
com.antonioleiva.bandhookkotlin/.ui.screens.main.MainActivity
Change-Id: I75d3a81011864c62cde785fd7351c59dbd269237
diff --git a/test/Android.bp b/test/Android.bp
index 76189f6..84f2e22 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -370,22 +370,27 @@
}
art_cc_defaults {
- name: "libtistress-defaults",
+ name: "libtistress-srcs",
defaults: ["libartagent-defaults"],
srcs: [
"ti-stress/stress.cc",
],
+ header_libs: ["libopenjdkjvmti_headers"],
+}
+
+art_cc_defaults {
+ name: "libtistress-defaults",
+ defaults: ["libtistress-srcs"],
shared_libs: [
"libbase",
"slicer",
],
- header_libs: ["libopenjdkjvmti_headers"],
}
art_cc_test_library {
name: "libtistress",
defaults: ["libtistress-defaults"],
- shared_libs: ["libart"],
+ shared_libs: ["libartbase"],
}
art_cc_test_library {
@@ -394,7 +399,30 @@
"art_debug_defaults",
"libtistress-defaults",
],
- shared_libs: ["libartd"],
+ shared_libs: ["libartbased"],
+}
+
+art_cc_defaults {
+ name: "libtistress-static-defaults",
+ defaults: ["libtistress-srcs"],
+ static_libs: art_static_dependencies + [
+ "slicer",
+ ],
+}
+
+art_cc_test_library {
+ name: "libtistresss",
+ defaults: ["libtistress-static-defaults"],
+ static_libs: ["libartbase"],
+}
+
+art_cc_test_library {
+ name: "libtistressds",
+ defaults: [
+ "art_debug_defaults",
+ "libtistress-static-defaults"
+ ],
+ static_libs: ["libartbased"],
}
cc_defaults {
diff --git a/test/ti-stress/stress.cc b/test/ti-stress/stress.cc
index bbe7465..0eba742 100644
--- a/test/ti-stress/stress.cc
+++ b/test/ti-stress/stress.cc
@@ -25,7 +25,6 @@
#include <jni.h>
#include "base/utils.h"
-#include "exec_utils.h"
#include "jvmti.h"
#pragma clang diagnostic push
@@ -920,4 +919,8 @@
return 0;
}
+extern "C" JNIEXPORT jint JNICALL Agent_OnAttach(JavaVM* vm, char* options, void* reserved) {
+ return Agent_OnLoad(vm, options, reserved);
+}
+
} // namespace art