Loading cmds/app_process/app_main.cpp +2 −16 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ #include <sys/stat.h> #include <unistd.h> #include <android-base/macros.h> #include <binder/IPCThreadState.h> #include <hwbinder/IPCThreadState.h> #include <utils/Log.h> Loading Loading @@ -137,27 +138,12 @@ static size_t computeArgBlockSize(int argc, char* const argv[]) { } static void maybeCreateDalvikCache() { #if defined(__aarch64__) static const char kInstructionSet[] = "arm64"; #elif defined(__x86_64__) static const char kInstructionSet[] = "x86_64"; #elif defined(__arm__) static const char kInstructionSet[] = "arm"; #elif defined(__i386__) static const char kInstructionSet[] = "x86"; #elif defined (__mips__) && !defined(__LP64__) static const char kInstructionSet[] = "mips"; #elif defined (__mips__) && defined(__LP64__) static const char kInstructionSet[] = "mips64"; #else #error "Unknown instruction set" #endif const char* androidRoot = getenv("ANDROID_DATA"); LOG_ALWAYS_FATAL_IF(androidRoot == NULL, "ANDROID_DATA environment variable unset"); char dalvikCacheDir[PATH_MAX]; const int numChars = snprintf(dalvikCacheDir, PATH_MAX, "%s/dalvik-cache/%s", androidRoot, kInstructionSet); "%s/dalvik-cache/" ABI_STRING, androidRoot); LOG_ALWAYS_FATAL_IF((numChars >= PATH_MAX || numChars < 0), "Error constructing dalvik cache : %s", strerror(errno)); Loading core/jni/AndroidRuntime.cpp +3 −18 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <android_runtime/AndroidRuntime.h> #include <android-base/macros.h> #include <android-base/properties.h> #include <binder/IBinder.h> #include <binder/IPCThreadState.h> Loading Loading @@ -866,34 +867,18 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) // The runtime will compile a boot image, when necessary, not using installd. Thus, we need to // pass the instruction-set-features/variant as an image-compiler-option. // TODO: Find a better way for the instruction-set. #if defined(__arm__) constexpr const char* instruction_set = "arm"; #elif defined(__aarch64__) constexpr const char* instruction_set = "arm64"; #elif defined(__mips__) && !defined(__LP64__) constexpr const char* instruction_set = "mips"; #elif defined(__mips__) && defined(__LP64__) constexpr const char* instruction_set = "mips64"; #elif defined(__i386__) constexpr const char* instruction_set = "x86"; #elif defined(__x86_64__) constexpr const char* instruction_set = "x86_64"; #else constexpr const char* instruction_set = "unknown"; #endif // Note: it is OK to reuse the buffer, as the values are exactly the same between // * compiler-option, used for runtime compilation (DexClassLoader) // * image-compiler-option, used for boot-image compilation on device // Copy the variant. sprintf(dex2oat_isa_variant_key, "dalvik.vm.isa.%s.variant", instruction_set); sprintf(dex2oat_isa_variant_key, "dalvik.vm.isa.%s.variant", ABI_STRING); parseCompilerOption(dex2oat_isa_variant_key, dex2oat_isa_variant, "--instruction-set-variant=", "-Ximage-compiler-option"); parseCompilerOption(dex2oat_isa_variant_key, dex2oat_isa_variant, "--instruction-set-variant=", "-Xcompiler-option"); // Copy the features. sprintf(dex2oat_isa_features_key, "dalvik.vm.isa.%s.features", instruction_set); sprintf(dex2oat_isa_features_key, "dalvik.vm.isa.%s.features", ABI_STRING); parseCompilerOption(dex2oat_isa_features_key, dex2oat_isa_features, "--instruction-set-features=", "-Ximage-compiler-option"); parseCompilerOption(dex2oat_isa_features_key, dex2oat_isa_features, Loading Loading
cmds/app_process/app_main.cpp +2 −16 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ #include <sys/stat.h> #include <unistd.h> #include <android-base/macros.h> #include <binder/IPCThreadState.h> #include <hwbinder/IPCThreadState.h> #include <utils/Log.h> Loading Loading @@ -137,27 +138,12 @@ static size_t computeArgBlockSize(int argc, char* const argv[]) { } static void maybeCreateDalvikCache() { #if defined(__aarch64__) static const char kInstructionSet[] = "arm64"; #elif defined(__x86_64__) static const char kInstructionSet[] = "x86_64"; #elif defined(__arm__) static const char kInstructionSet[] = "arm"; #elif defined(__i386__) static const char kInstructionSet[] = "x86"; #elif defined (__mips__) && !defined(__LP64__) static const char kInstructionSet[] = "mips"; #elif defined (__mips__) && defined(__LP64__) static const char kInstructionSet[] = "mips64"; #else #error "Unknown instruction set" #endif const char* androidRoot = getenv("ANDROID_DATA"); LOG_ALWAYS_FATAL_IF(androidRoot == NULL, "ANDROID_DATA environment variable unset"); char dalvikCacheDir[PATH_MAX]; const int numChars = snprintf(dalvikCacheDir, PATH_MAX, "%s/dalvik-cache/%s", androidRoot, kInstructionSet); "%s/dalvik-cache/" ABI_STRING, androidRoot); LOG_ALWAYS_FATAL_IF((numChars >= PATH_MAX || numChars < 0), "Error constructing dalvik cache : %s", strerror(errno)); Loading
core/jni/AndroidRuntime.cpp +3 −18 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <android_runtime/AndroidRuntime.h> #include <android-base/macros.h> #include <android-base/properties.h> #include <binder/IBinder.h> #include <binder/IPCThreadState.h> Loading Loading @@ -866,34 +867,18 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) // The runtime will compile a boot image, when necessary, not using installd. Thus, we need to // pass the instruction-set-features/variant as an image-compiler-option. // TODO: Find a better way for the instruction-set. #if defined(__arm__) constexpr const char* instruction_set = "arm"; #elif defined(__aarch64__) constexpr const char* instruction_set = "arm64"; #elif defined(__mips__) && !defined(__LP64__) constexpr const char* instruction_set = "mips"; #elif defined(__mips__) && defined(__LP64__) constexpr const char* instruction_set = "mips64"; #elif defined(__i386__) constexpr const char* instruction_set = "x86"; #elif defined(__x86_64__) constexpr const char* instruction_set = "x86_64"; #else constexpr const char* instruction_set = "unknown"; #endif // Note: it is OK to reuse the buffer, as the values are exactly the same between // * compiler-option, used for runtime compilation (DexClassLoader) // * image-compiler-option, used for boot-image compilation on device // Copy the variant. sprintf(dex2oat_isa_variant_key, "dalvik.vm.isa.%s.variant", instruction_set); sprintf(dex2oat_isa_variant_key, "dalvik.vm.isa.%s.variant", ABI_STRING); parseCompilerOption(dex2oat_isa_variant_key, dex2oat_isa_variant, "--instruction-set-variant=", "-Ximage-compiler-option"); parseCompilerOption(dex2oat_isa_variant_key, dex2oat_isa_variant, "--instruction-set-variant=", "-Xcompiler-option"); // Copy the features. sprintf(dex2oat_isa_features_key, "dalvik.vm.isa.%s.features", instruction_set); sprintf(dex2oat_isa_features_key, "dalvik.vm.isa.%s.features", ABI_STRING); parseCompilerOption(dex2oat_isa_features_key, dex2oat_isa_features, "--instruction-set-features=", "-Ximage-compiler-option"); parseCompilerOption(dex2oat_isa_features_key, dex2oat_isa_features, Loading