tree 255deb113deb856d427f8bd11563bb6e4c781e1e
parent 0422296278dd325256642507b87463e6511a0f65
parent 2044b133f4ce20e4697cee8ecfaac93ff4ac4744
author Brian Carlstrom <bdc@google.com> 1385424047 -0800
committer Android Git Automerger <android-git-automerger@android.com> 1385424047 -0800

am 2044b133: Merge branch \'master\' of persistent-https://googleplex-android.git.corp.google.com/platform/art into merge-goog-master-to-aosp-master

* commit '2044b133f4ce20e4697cee8ecfaac93ff4ac4744': (162 commits)
  Update test/044-proxy/expected.txt
  Add NOTICE and MODULE_LICENSE_APACHE2 for art
  Update Backtrace::Create to use new define.
  Fix CTS failures caused by ignoring malformed dex files in dex2oat
  Revert "Ignore missing files in dex2oat"
  Change monitor checks to warnings in verifier.
  Set processes' comm names to their package names.
  Fix capability setting for the top 32 bits.
  Ignore missing files in dex2oat
  Fix BUILD_DALVIK_HOST_JAVA_LIBRARY to BUILD_HOST_DALVIK_JAVA_LIBRARY
  Fix handling of duplicate class definitions in boot classpath.
  Change thread.h to thread-inl.h for missing Thread::Current for mips
  Change thread.h to thread-inl.h for missing Thread::Current for x86
  Add missing error message propagation to ElfFile::SetMap
  Update compiler blacklist to include java.net.NetworkInterface.
  Do not instrument proxy methods.
  Make missing DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES an error
  Change thread.h to thread-inl.h to pick up missing Thread::Currnet for debug build in master
  Update ART for LLVM merge up to r187914.
  Support hardware divide instruction
  ...
