Adding oat_process
- Added oat_process, a version of app_process use to launch frameworks apps
- Added liboat_runtime, a version of libandroid_runtime that uses art instead of dvm
This is just a special makefile, frameworks/base/core/jni code is used for source
- Added support for build a boot.oat with the full BOOTCLASSPATH
The older smaller boat.oat is now core.oat
- Added mem_map code for making sure a requested memory region is available
Moved mem_map code to cc file to make easier to debug with smaller rebuild
- Moved oat base address to 0x6000000 as a work around to host addres conflict
- Added -Xms and -Xmx options to dex2oat to allow build specific memory options
- Fixed miranda method initialization problem found compiling full bootclasspath
- Made compiler.cc tolerant of verification errors found compiling full bootclasspath
- Bumped arena block alloc warning to avoid noise when compiling full bootclasspath
- Marked implicit GC unimplemented to fail fast
- Added --output argument to oatdump
- Made many object asserts tolerate access in IsErroneous state
now that verifier is failing validation of some classes during compilation
- Made runtime tolerate unknown access as short term solution for oat_process
- Workaround SSA issue to restore full bootclasspath compilation
- Added test-art-target-processs to excercise oat_process with "am"
"am" found bug where class_linker was using Method::GetClass and not ::GetDeclaringClass
Change-Id: I1a645a142b163e06bab9e72eb094ae1f1dbfbd97
diff --git a/src/runtime.cc b/src/runtime.cc
index 0990851..e6bd6e2 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -300,8 +300,9 @@
} else {
if (!ignore_unrecognized) {
// TODO: print usage via vfprintf
- LOG(FATAL) << "Unrecognized option " << option;
- return NULL;
+ LOG(ERROR) << "Unrecognized option " << option;
+ // TODO: this should exit, but for now tolerate unknown options
+ //return NULL;
}
}
}
@@ -321,7 +322,9 @@
if (parsed->boot_class_path_.empty()) {
if (parsed->boot_class_path_string_ == NULL) {
const char* BOOTCLASSPATH = getenv("BOOTCLASSPATH");
- parsed->boot_class_path_string_ = BOOTCLASSPATH;
+ if (BOOTCLASSPATH != NULL) {
+ parsed->boot_class_path_string_ = BOOTCLASSPATH;
+ }
}
CreateClassPath(parsed->boot_class_path_string_, parsed->boot_class_path_);
}