diff options
author | Andreas Gampe <agampe@google.com> | 2015-04-27 17:21:40 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-04-27 17:21:40 +0000 |
commit | 1fbd37921166e0439c4f715318f92497a82a1843 (patch) | |
tree | a4d96a5b7b8a62865e718ce24b3a9bbf8c96d9f2 /cmds | |
parent | 104e268c3222b1481bd20f8fc85eea0e364f5962 (diff) | |
parent | f4c64bb7bd5069238e65e71968a841314fc9f8cb (diff) | |
download | frameworks_native-1fbd37921166e0439c4f715318f92497a82a1843.zip frameworks_native-1fbd37921166e0439c4f715318f92497a82a1843.tar.gz frameworks_native-1fbd37921166e0439c4f715318f92497a82a1843.tar.bz2 |
am f4c64bb7: am bec3de4a: Merge "Installd: Add debug.gencfi to run_dex2oat"
* commit 'f4c64bb7bd5069238e65e71968a841314fc9f8cb':
Installd: Add debug.gencfi to run_dex2oat
Diffstat (limited to 'cmds')
-rw-r--r-- | cmds/installd/commands.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/cmds/installd/commands.cpp b/cmds/installd/commands.cpp index de6fd96..6aa2bb4 100644 --- a/cmds/installd/commands.cpp +++ b/cmds/installd/commands.cpp @@ -684,6 +684,15 @@ static void run_patchoat(int input_fd, int oat_fd, const char* input_file_name, ALOGE("execv(%s) failed: %s\n", PATCHOAT_BIN, strerror(errno)); } +static bool check_boolean_property(const char* property_name, bool default_value = false) { + char tmp_property_value[PROPERTY_VALUE_MAX]; + bool have_property = property_get(property_name, tmp_property_value, nullptr) > 0; + if (!have_property) { + return default_value; + } + return strcmp(tmp_property_value, "true") == 0; +} + static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, const char* output_file_name, int swap_fd, const char *pkgname, const char *instruction_set, bool vm_safe_mode, bool debuggable) @@ -744,9 +753,8 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, (strcmp(vold_decrypt, "trigger_restart_min_framework") == 0 || (strcmp(vold_decrypt, "1") == 0))); - char use_jit_property[PROPERTY_VALUE_MAX]; - bool have_jit_property = property_get("debug.usejit", use_jit_property, NULL) > 0; - bool use_jit = have_jit_property && strcmp(use_jit_property, "true") == 0; + bool use_jit = check_boolean_property("debug.usejit"); + bool gen_cfi = check_boolean_property("debug.gencfi"); static const char* DEX2OAT_BIN = "/system/bin/dex2oat"; @@ -839,6 +847,7 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, + (have_dex2oat_threads_flag ? 1 : 0) + (have_dex2oat_swap_fd ? 1 : 0) + (have_dex2oat_relocation_skip_flag ? 2 : 0) + + (gen_cfi ? 1 : 0) + (debuggable ? 1 : 0) + dex2oat_flags_count]; int i = 0; @@ -877,6 +886,9 @@ static void run_dex2oat(int zip_fd, int oat_fd, const char* input_file_name, if (have_dex2oat_swap_fd) { argv[i++] = dex2oat_swap_fd; } + if (gen_cfi) { + argv[i++] = "--include-cfi"; + } if (debuggable) { argv[i++] = "--debuggable"; } |