blob: 14ebb713b6ae235558c4a037ffcae2f8047611ac [file] [log] [blame]
Colin Cross45c0d712019-03-28 22:31:35 -07001cc_binary {
2 name: "app_process",
3
4 srcs: ["app_main.cpp"],
5
6 multilib: {
7 lib32: {
Martin Stjernholmc7c462a2020-04-17 00:03:41 +01008 // TODO(b/142944043): Remove version script when libsigchain is a DSO.
9 version_script: "version-script32.txt",
Roland Levillain7103a892019-06-05 18:26:44 +010010 suffix: "32",
Colin Cross45c0d712019-03-28 22:31:35 -070011 },
12 lib64: {
Martin Stjernholmc7c462a2020-04-17 00:03:41 +010013 // TODO(b/142944043): Remove version script when libsigchain is a DSO.
14 version_script: "version-script64.txt",
Roland Levillain7103a892019-06-05 18:26:44 +010015 suffix: "64",
Colin Cross45c0d712019-03-28 22:31:35 -070016 },
17 },
18
19 ldflags: ["-Wl,--export-dynamic"],
20
21 shared_libs: [
22 "libandroid_runtime",
23 "libbinder",
24 "libcutils",
25 "libdl",
Steven Morelandef6a7da2019-06-17 15:23:41 -070026 "libhidlbase",
Colin Cross45c0d712019-03-28 22:31:35 -070027 "liblog",
28 "libnativeloader",
29 "libutils",
30
31 // This is a list of libraries that need to be included in order to avoid
32 // bad apps. This prevents a library from having a mismatch when resolving
33 // new/delete from an app shared library.
34 // See b/21032018 for more details.
35 "libwilhelm",
36 ],
37
38 whole_static_libs: ["libsigchain"],
39
40 compile_multilib: "both",
41
42 cflags: [
43 "-Wall",
44 "-Werror",
45 "-Wunused",
46 "-Wunreachable-code",
47 ],
48
49 // If SANITIZE_LITE is revived this will need:
50 //product_variables: {
51 // sanitize_lite: {
52 // // In SANITIZE_LITE mode, we create the sanitized binary in a separate location (but reuse
53 // // the same module). Using the same module also works around an issue with make: binaries
54 // // that depend on sanitized libraries will be relinked, even if they set LOCAL_SANITIZE := never.
55 // //
56 // // Also pull in the asanwrapper helper.
57 // relative_install_path: "asan",
58 // required: ["asanwrapper"],
59 // },
60 //},
61
62 // Create a symlink from app_process to app_process32 or 64
63 // depending on the target configuration.
64 symlink_preferred_arch: true,
Mitch Phillips17de8892021-01-13 14:37:08 -080065
66 // Enable ASYNC MTE in the zygote, in order to allow apps and the system
67 // server to use MTE. We use ASYNC because we don't expect the pre-fork
68 // zygote to have substantial memory corruption bugs (as it's primarily Java
69 // code), and we don't want to waste memory recording malloc/free stack
70 // traces (which happens in SYNC mode).
71 sanitize: {
72 memtag_heap: true,
73 },
Colin Cross45c0d712019-03-28 22:31:35 -070074}