)]}'
{
  "log": [
    {
      "commit": "f040914a122be86e280efe5e31af1168f2b7c72e",
      "tree": "8ea3fa76be8f215d36977477015ed7f9f3a2f65c",
      "parents": [
        "b4bd92f27fb143135870d07b459ea52637afcfa5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 22 15:45:03 2021 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 06 10:52:35 2021 +0000"
      },
      "message": "Uncouple ART gtests from the ART APEX.\n\nIntroduce standalone versions of ART gtests on target, not bundled\nwith the ART APEX.\n\nSo far ART gtests have always been built as debug artifacts (and\nlinked against ART debug libraries). Make some adjustments in some of\nthese tests so that they can also work as non-debug artifacts and be\nused with the Release ART APEX (which contains only non-debug\nartifacts).\n\nNewly added tests:\n* `art_standalone_cmdline_tests`\n* `art_standalone_compiler_tests`\n* `art_standalone_dex2oat_tests`\n* `art_standalone_dexdump_tests`\n* `art_standalone_dexlist_tests`\n* `art_standalone_dexoptanalyzer_tests`\n  * Note: Requires root access to the device.\n* `art_standalone_libartbase_tests`\n* `art_standalone_libartpalette_tests`\n* `art_standalone_libartservice_tests`\n* `art_standalone_libarttools_tests`\n* `art_standalone_libdexfile_support_tests`\n* `art_standalone_libdexfile_tests`\n* `art_standalone_libprofile_tests`\n* `art_standalone_oatdump_tests`\n* `art_standalone_odrefresh_tests`\n* `art_standalone_profman_tests`\n  * Note: Requires root access to the device.\n  * Note: Some tests (2 out of 37) are failing in multi-ABI\n    contexts and have been temporarily disabled.\n* `art_standalone_runtime_compiler_tests`\n* `art_standalone_runtime_tests`\n  * Note: Some tests (16 out of 686) are failing and have been\n    temporarily disabled.\n  * Note: Some tests (4 out of 686) are failing in multi-ABI\n    contexts and have been temporarily disabled.\n* `art_standalone_sigchain_tests`\n\nTests not added:\n* `art_standalone_dexanalyze_tests`\n  * Reason: ART binary `dexanalyze` is not part of the Release ART APEX.\n* `art_standalone_dexdiag_tests`\n  * Reason: ART binary `dexdiag` is not part of the Release ART APEX.\n* `art_standalone_dexlayout_tests`\n  * Reason: ART binary `dexlayout` is not part of the Release ART APEX.\n* `art_standalone_imgdiag_tests`\n  * Reason: ART binary `imgdiag` is not part of the Release ART APEX.\n\nTest: atest -a art_standalone_cmdline_tests\nTest: atest -a art_standalone_compiler_tests\nTest: atest -a art_standalone_dex2oat_tests\nTest: atest -a art_standalone_dexdump_tests\nTest: atest -a art_standalone_dexlist_tests\nTest: atest -a art_standalone_dexoptanalyzer_tests\nTest: atest -a art_standalone_libartbase_tests\nTest: atest -a art_standalone_libartpalette_tests\nTest: atest -a art_standalone_libartservice_tests\nTest: atest -a art_standalone_libarttools_tests\nTest: atest -a art_standalone_libdexfile_support_tests\nTest: atest -a art_standalone_libdexfile_tests\nTest: atest -a art_standalone_libprofile_tests\nTest: atest -a art_standalone_oatdump_tests\nTest: atest -a art_standalone_odrefresh_tests\nTest: atest -a art_standalone_profman_tests\nTest: atest -a art_standalone_runtime_compiler_tests\nTest: atest -a art_standalone_runtime_tests\nTest: atest -a art_standalone_sigchain_tests\nTest: atest -a art_standalone_\\*_tests\nTest: m art_chroot \u0026\u0026 atest ArtGtestsTargetChroot\nBug: 162834439\nBug: 162734417\nChange-Id: I8beda9159d48c4ca495698357dc3bd95e3ff84d5\n"
    },
    {
      "commit": "c2753e6beec483b5b14161b6bbc8e0a86aef9397",
      "tree": "070107ce0d907ab246d4a33f4d3aac7e679006c7",
      "parents": [
        "546243375d7e129aa02ca7ea9663ed7c40b4880e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 25 15:34:09 2021 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 01 01:52:04 2021 +0000"
      },
      "message": "Fix compiler filter / reason reporting and add the ISA to the metrics\n\nThe compiler filter / reason reporting was not accurate for a variety\nof reasons. (e.g. reporting was only done at startup, it was relying\non imprecise APIs and had errors in the logic).\n\nIn order to keep track of the precise optimization status, this CL\nintroduces the concept of AppInfo, which encapsulates the data about\nthe application / system server code paths, their optimization status\nand possible other metadata (e.g. profiles).\n\nTo populate it, we rely on 2 distinct events:\n1) The framework calling VMRuntime#registerAppInfo to inform the\nruntime about the applications code paths and their types (e.g. primary,\nsplit, secondary).\n2) Class loading, when we can determine the actual optimization status\nlike filters, reasons, and whether or not we can load the odex files.\n\nThese events may happen in any order so we could deal with a partial\nstate at some point in time, but in the majority of cases they always\nhappen at Class Loading, followed by RegisterAppInfo.\n\nThis CL also deletes the OatFileManager#getPrimaryOatFile which was\na misleading API as it didn\u0027t work in most cases. It also adds more\ntests to the metrics/reporting infra for previous missing or\nunimplemented cases.\n\nTest: gtest\nBug: 170149255\nChange-Id: If0a7a25d06ff6fb89fe4861139b7dee61c05814d\n"
    },
    {
      "commit": "55ffe7fa9ead8b501a756bb53f2571e3e7602f5e",
      "tree": "c4f63e30679b3e11d65268e52bf7548416f26792",
      "parents": [
        "8bf1da992a15a79ae76bcf53e9a2909912fbe96a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 14 15:18:54 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 28 11:40:15 2021 +0000"
      },
      "message": "Rename some ART gtest related Soong modules.\n\nART gtests currently link with the debug (\"d\") versions of ART\nlibraries. The gtests themselves and their libraries are compiled as\ndebug artifacts. For the sake of consistency, perform the following\nrenaming of ART gtest related Soong modules:\n\n* `libart-compiler-gtest` -\u003e `libartd-compiler-gtest`\n* `libart-dex2oat-gtest`  -\u003e `libartd-dex2oat-gtest`\n* `libart-gtest-defaults` -\u003e `libartd-gtest-defaults`\n* `libart-gtest`          -\u003e `libartd-gtest`\n* `libart-runtime-gtest`  -\u003e `libartd-runtime-gtest`\n* `libartbase-art-gtest`  -\u003e `libartbased-art-gtest`\n\nAs we plan to introduce non-debug (\"non-d\"), standalone versions of\nART gtests in the context of uncoupling ART (target) gtests from the\nART APEX (b/162834439), this renaming will help us, as we\u0027ll be able\nto use the old names of a \"d\" module for the corresponding \"non-d\"\nversion.\n\nTest: mmma art\nTest: Run ART gtests on host and target\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dfalse art/build/apex/runtests.sh\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue  art/build/apex/runtests.sh\nBug: b/162834439\nChange-Id: I4ca27a7f445a760398f41a9e60a7008d77294505\n"
    },
    {
      "commit": "5fef55677ed3ce5e2255030aa58b8a39cf77fab1",
      "tree": "feb27e131521d1a911e08174ebc933635939423d",
      "parents": [
        "30bb6af110e0999a87c6e9fd0145fdd4a59e98d8"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Jun 21 23:33:33 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jun 24 11:19:37 2021 +0000"
      },
      "message": "Clean up ART APEX manifests.\n\nmanifest-art.json: Rely on the build system to populate all required\nlibs. Besides some duplicate entries, this drops libicuuc.so,\nlibicui18n.so, and libneuralnetworks.so from the required list. None of\nthose libraries are dependencies of the ART module itself, and hence\ndon\u0027t get loaded from the ART namespace. They used to be necessary\nbefore linkerconfig supported creating links for JNI libs and from\npublic.libraries.txt, and when libnativeloader still defaulted to the\nART namespace for loading such libs.\n\ntest_apex_manifest.json: Used by test_com.android.art and should be\nidentical to manifest-art.json except for the version number. Besides\nthe above, this file contained several stale libraries.\n\nAlso try to configure proper runtime_libs dependencies for libart(d)\nfor the things it dlopen\u0027s from the ART namespace, although most\nlibraries cannot be listed there for various reasons.\n\nTest: m droid deapexer\n      deapexer info \\\n        out/target/product/vsoc_x86_64/system/apex/com.android.art.capex\n  Compare the output before and after this CL.\nTest: m test_com.android.art deapexer\n      deapexer info \\\n        out/target/product/vsoc_x86_64/obj/ETC/test_com.android.art_intermediates/test_com.android.art.apex\n  Compare the output before and after this CL.\nBug: 184148353\nChange-Id: I0d9c2a090702a95551208aad4be97ea867004a3c\n"
    },
    {
      "commit": "f5958f8881e299c42ac923e4751f8f34d72db7f0",
      "tree": "db15e90ad9152c5cbd9515209841c7e71764a67f",
      "parents": [
        "1282f3805b1b6f50761f3e136d569e85dbda7090"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 02 14:48:14 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 24 07:54:05 2021 +0000"
      },
      "message": "Add x86 implementation for nterp.\n\nBug: 112676029\nTest: test.py, run-libcore-tests, run-libjdwp-tests\nChange-Id: I06bd2c9dde6834f371f042fadda2ced23e02b7ed\n"
    },
    {
      "commit": "ec11cf1e4a7400af1befae3a5194206f16a58047",
      "tree": "613b1e67a1b8b28209a8e893374eb93d50d1a3b0",
      "parents": [
        "9b8d8198236b73489a28f46a1b62220da471c4b2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 17 15:41:08 2021 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 23 02:28:17 2021 +0000"
      },
      "message": "Add period reporting to the metrics infra\n\nThe metric reporting can now be condifured to report at\ndifferent periods, according to a predefined spec.\n\nThe period spec is given as a string (e.g. \"S,1,2,4,8,*\")\nand can specify:\n  - startup reporting\n  - fixed period reporting\n  - continuous reporting\n\nFor example \"S,1,2,4,*\" means that we will report at\nstartup, then after 1 seconds, then after 2 and 4,\nand finally, that we will continue to report every other 4s.\n\nThe specs for system server and the apps are given by different\nflags, so that we can have different reporting configurations\nfor each.\n\nAlso, this CL adds much more robust testing to the metrics\nreporter, something that was missing before.\n\nTest: gtest\nBug: 170149255\n\nChange-Id: Ifbe32b3877d2e1cdf43d30b67672f6ebfb42dadf\n"
    },
    {
      "commit": "04c9f3a978f3e219e7d407f08f4063b3fbb53907",
      "tree": "5360195b36cb3d2976fd1601b23441e534c6aac5",
      "parents": [
        "1e7faf706563593de8e9d47bb5ef366f68dce1a2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 04 09:51:28 2021 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 07 08:09:55 2021 +0000"
      },
      "message": "x86: Don\u0027t use the GOT to access art::Runtime::instance_.\n\nAnd also get the address of art_quick_instrumentation_exit\nwithout going through GOT.\n\nBecause ART is built with -fvisibility\u003dprotected, the\nlocation of these symbols can be statically resolved by the\nlinker, so there is no need to go via the GOT.\n\nAlso rewrite macros to avoid the __x86.get_pc_thunk.bx and\nuse a local `call +0` instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --32 --optimizing --interpreter\nBug: 112676029\nChange-Id: Ib63aa71518ab7c015626a99a0bbfc587032f4a76\n"
    },
    {
      "commit": "1e7faf706563593de8e9d47bb5ef366f68dce1a2",
      "tree": "4e65e4a59cc3cf95f82149f0fb417a4beba8e893",
      "parents": [
        "530552ac735c59a3ae44b16f751df265e820dad2"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Thu May 27 13:05:22 2021 +0000"
      },
      "committer": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Mon Jun 07 08:01:11 2021 +0000"
      },
      "message": "Use tinyxml2-based generated Apex Info List sources\n\nWe can reduce the size of odrefresh and runtime binaries by switching from\nlibxml2 to libtinyxml2. The dependency comes from the usage of the Apex Info\nList.\n\nSince the xsdc tool has been updated to have a new option, -t/--tinyxml, which\ngenerates the source files that use the libtinyxml2 API, we should use this\nfeature to gain the binary size advantage.\n\nSize of odrefresh when using libxml2: 444752\nSize of odrefresh when using libtinyxml2: 137724\n\nBug: 177209057\nTest: m\nChange-Id: I5c92d44f9ccbe94507a2dd8653814451ed10c645\n"
    },
    {
      "commit": "07ff2833c7425cef87abad3e21b3f884597dc58c",
      "tree": "a7ab412fa286c7af891aa438b187b6bf9f9f907b",
      "parents": [
        "ca7de40e2d0f1f5c3c29aec2899f6fbe8d7217f3"
      ],
      "author": {
        "name": "Collin Fijalkovich",
        "email": "cfijalkovich@google.com",
        "time": "Tue Aug 25 10:43:12 2020 -0700"
      },
      "committer": {
        "name": "Collin Fijalkovich",
        "email": "cfijalkovich@google.com",
        "time": "Tue May 18 21:23:45 2021 +0000"
      },
      "message": "Compile libart.so and libart-compiler.so with 2MB section alignment.\n\nAdds the appropriate linker flags for libart and libart-compiler to have\n2MB section alignment. This allows the executable segment of these\nlibraries to be backed by transparent hugepages on supporting systems.\n\nBug: 158135888\nTest: Verified ELF format\n\nChange-Id: Ia6455418cf1fdd3a1a98d662bf381db4b58b8536\n"
    },
    {
      "commit": "93c28ed5e8303eed09d6286725029a21293d3f56",
      "tree": "2194b6025407b02be2f87e2e2b597dd7ad0660e7",
      "parents": [
        "2ef367acf3f95ee4c0459b73c3b18613cfa7d74d"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri May 14 14:11:42 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri May 14 17:51:59 2021 +0000"
      },
      "message": "Use the system namespace to get the right permitted paths for loading OAT files.\n\nThe ART namespace doesn\u0027t permit e.g. /product/apps, and there may be\nother locations too that need to be configurable from the system linker\nconfig.\n\nTest: Boot\nBug: 188078687\nBug: 130340935\nChange-Id: Id23c45dec6aef8379b125d70f2a47289f34c5a3a\n"
    },
    {
      "commit": "8ffaef9fbd1dc5194dbdcd3405360f8eb1e47a9e",
      "tree": "b73775bad6edbc0884225f40246aee72a2f18e76",
      "parents": [
        "022f9e555bbad95b3e8699731ca5455151dfca8a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 13 12:51:30 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 14 08:22:44 2021 +0000"
      },
      "message": "Remove BUILDING_LIBART macro.\n\nIt has been used only to prevent including the libart header\n`runtime_asm_entrypoints.h` when compiling other targets.\nInstead make symbols in that header hidden so that using\nthem from other targets shall yield a link time error. (This\nis somewhat pointless because the header defines only inline\nfunctions but the actual entrypoint symbols defined in\nassembly are already hidden anyway.)\n\nThis change adds the symbol visibility macros `HIDDEN` and\n`EXPORT` which were originally included in the reverted CL\n    https://android-review.googlesource.com/1137699 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 186902856\nChange-Id: Ia9fed6b3f49d7356888d702f4ad3bb48e5884793\n"
    },
    {
      "commit": "053e1383c721b0a1c4f87b2d391ab392c64caf84",
      "tree": "d6698eaf3f64440b47c06e5d6f670be06cfcc80e",
      "parents": [
        "bcec38f7b7dc92d89ce9d49b8c1ba9afe87dab6b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 05 16:07:27 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 10 08:12:24 2021 +0000"
      },
      "message": "Link libvixl statically.\n\nInstead of including shared library libvixl.so in the ART\nModule, link libvixl statically to all binaries that use it,\nnamely libart-compiler.so and libart-disassembler.so which\nshall increase in size with the additional libvixl code.\n\nThe ART Module size with default libvixl symbol visibility:\n  - before: 88460730B\n  - after: 86973943B (-1.42MiB)\nWith hidden libvixl symbol visibility:\n  - before: 88337851B\n  - after: 84962808B (-3.22MiB)\n(This is with master-art where we do not have a boot\nprofile and therefore compile more code in boot image.)\nThe change from default to hidden visibility is done in\n    https://android-review.googlesource.com/1697237 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 186902856\nChange-Id: I040b0115b94b8690ee7be53e3ded8610d9f13e99\n"
    },
    {
      "commit": "d3c45c298b02163e402e1eec97e7ba21a2ba333e",
      "tree": "3d45d277e8b85a08225c149c778b2b403853b969",
      "parents": [
        "ba320165975387e780be2bd16fac4a522411b59c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 27 13:21:28 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 30 08:42:29 2021 +0000"
      },
      "message": "Add apex versions in oat file headers.\n\nUse the versions to know whether we need to recompile.\n\nTest: oat_file_assistant_test\nBug: 182465342\nChange-Id: Ic656ed4465d35d325c1823d531f7c4c5bc74598d\n"
    },
    {
      "commit": "61c624239ced1203d1c77cbeb5a57f9ad2c5c73d",
      "tree": "63e392ba73e02ddb7fb8fc73ca87bf47d6452332",
      "parents": [
        "1dab575cd635706f03d510763cb4ea1b115a2cee"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 27 16:22:48 2021 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 28 10:44:11 2021 +0000"
      },
      "message": "Remove RETURN_VOID_NO_BARRIER byte-code.\n\nUnused and obsolete quickened byte-code.\n\nBug: 170086509\nTest: test.py -b --host --64\nChange-Id: I1e917c189da7bf64418412522676dc6b081d5c0b\n"
    },
    {
      "commit": "baf563dc6f17075583cc5dbffcf9a27e28d5ed17",
      "tree": "00ab52dc55f84a7cd1867d81262deb043e8c7e11",
      "parents": [
        "957fb15e70533874f1e60da2ef89fdd0f1469a6d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Apr 08 07:53:54 2021 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 28 07:34:37 2021 +0000"
      },
      "message": "odrefresh: Add support for uploading stats\n\nAdds support for loading odrefresh metrics saved to file and uploading\nthem when system_server starts.\n\nBug: 169925964\nTest: manual module update with instrumentation showing statsd got data\n\n(cherry picked from commit 55ca8ab5216e4c20638f34b44c6bc53866b991ce)\nMerged-In: Iccc6ede1583235d09dbfd42996eb4ba118b700f8\nChange-Id: Iad588f05622864b37d40333d081bd89fbf76051c\n"
    },
    {
      "commit": "13ab541da6fb9d56958c0aace0b4ec2b0a135427",
      "tree": "0279e48158c1a8967871ad52c20c15b208ab7b5c",
      "parents": [
        "52f1f57df7fa36bcbc05d4f044874c0332d4086f"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Apr 21 14:15:45 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Apr 21 16:09:32 2021 +0000"
      },
      "message": "Static libunwindstack has a static dependency on libasync_safe.\n\nCf.\nhttps://cs.android.com/android/platform/superproject/+/master:system/unwinding/libunwindstack/Android.bp;l\u003d100;drc\u003d7b46d3741e3915091fec30877f46a6e8327db6bb\n\nWithout this static linking may fail, e.g. in libdex2oat_static.\n\nTest: env DIST_DIR\u003dout/dist ALLOW_MISSING_DEPENDENCIES\u003dtrue \\\n  TARGET_PRODUCT\u003darmv8 TARGET_BUILD_VARIANT\u003deng \\\n  ./art/tools/dist_linux_bionic.sh -j80 com.android.art.host\nBug: 185984634\nChange-Id: I6d445bb5bc676b92239b464c8917879e1b648e28\n"
    },
    {
      "commit": "d3e9ff326a511ef48ea85afd2de9c292aa6ea20b",
      "tree": "da924af40549dca5fb679173036049e70ca395e9",
      "parents": [
        "4531afd0d813fdfa2bb115522bc5918477c03dc2"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 16 00:44:25 2021 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Apr 12 16:36:03 2021 +0000"
      },
      "message": "Merge libdexfile_external into libdexfile (reland 2).\n\nTo reduce the number of DSO\u0027s. libdexfile_external only adds a few\nsmall functions on top of libdexfile, and it\u0027s still only those\nfunctions that are available in the APEX stubs.\n\nAlso rename libdexfile_external_static to libdexfile_static, for\nconsistency.\n\nSince libdexfile now has stubs, we need to add test_for properties to\navoid linking against the stubs in tests.\n\nThis relands https://r.android.com/1666119 that got submitted out of\norder from https://r.android.com/1664026 - prerequisite changes now\nsubmitted with https://r.android.com/1671709.\n\nTest: Flash and boot with userdebug and eng to try both release and\n  debug modules.\nTest: art/tools/buildbot-build.sh {--target,--host}\nTest: art/build/apex/runtests.sh\nTest: mmm art\nBug: 143978909\nChange-Id: I6de99052d6d8a9d01d748baabbbcecfe1f4509dc\n"
    },
    {
      "commit": "a2f48a424c3d62efb5a14ccaea740e3f6c0b0032",
      "tree": "668f61d2231be94a7bc764223164da52f3c77869",
      "parents": [
        "e38d78871261ec567d45095ea09b1950bb021fae"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Apr 09 13:23:21 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Apr 12 07:22:07 2021 +0000"
      },
      "message": "Fix apex_available lists to avoid APEX stubs between internal libs.\n\nTest: m TARGET_PRODUCT\u003dfull TARGET_BUILD_VARIANT\u003deng \\\n  out/soong/.intermediates/art/compiler/libartd-compiler/android_arm_armv7-a-neon_shared/unstripped/libartd-compiler.so\nTest: mmm art\nBug: 184929782\nBug: 143978909\nBug: 183882457\nChange-Id: I6350257ad1fc9dfb7115bff6c2caa1bc4ac86898\n"
    },
    {
      "commit": "669756df2f4aea67d00e7b3598b2d91f61537141",
      "tree": "86d7ac86af3ee50c3a1f3163f1a80de396279094",
      "parents": [
        "14d9155cc5ac661961aa6718eaf2bfcc704d3c98"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Apr 09 11:35:11 2021 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Apr 09 11:35:11 2021 +0000"
      },
      "message": "Revert \"Merge libdexfile_external into libdexfile (reland).\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static (...\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static (...\"\n\nRevert submission 1666119-libdexfile-noext-2\n\nReason for revert: broken build 7270939 on aosp-master on full-eng\nReverted Changes:\nI582e49ae7:Merge libdexfile_external into libdexfile (reland)...\nIaa6a90f41:Rename libdexfile_external_static to libdexfile_st...\nI4315189b2:libdexfile_external is replaced by libdexfile (rel...\nIa065119c2:Rename libdexfile_external_static to libdexfile_st...\n\nBug: 184929782\nChange-Id: Ie69a73f4f0f745ab988e627c568f4ccb83fd1c71\nTest: forrest build for aosp-master on full-eng\n"
    },
    {
      "commit": "14d9155cc5ac661961aa6718eaf2bfcc704d3c98",
      "tree": "413aa4746ef3a6cbcbdbf8d75387e85be87f6460",
      "parents": [
        "a191bbfd53a0c7df9b5639bfbefeb8b531c833db"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 16 00:44:25 2021 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Apr 09 09:18:30 2021 +0000"
      },
      "message": "Merge libdexfile_external into libdexfile (reland).\n\nTo reduce the number of DSO\u0027s. libdexfile_external only adds a few\nsmall functions on top of libdexfile, and it\u0027s still only those\nfunctions that are available in the APEX stubs.\n\nAlso rename libdexfile_external_static to libdexfile_static, for\nconsistency.\n\nSince libdexfile now has stubs, we need to add test_for properties to\navoid linking against the stubs in tests.\n\nThis relands https://r.android.com/1643424 with leaving out\ndex_file_ext.cc on Windows (cf. build issue b/184239856): mapped_file.h\nbrings in windows.h in Windows builds, which has several defines that\nare incompatible with dex internals (e.g. CONST).\n\nTest: Flash and boot with userdebug and eng to try both release and\n  debug modules.\nTest: art/tools/buildbot-build.sh {--target,--host}\nTest: art/build/apex/runtests.sh\nTest: mmm art\nTest: m TARGET_PRODUCT\u003dfull TARGET_BUILD_VARIANT\u003deng checkbuild\nBug: 143978909\nChange-Id: I582e49ae797744837849db056cef2fbeacc0681e\n"
    },
    {
      "commit": "6f7e98ec2cd62ae31aefac88fc84216627b9071b",
      "tree": "1b3c96fabfeaea9888f46704f73cf44206dc6c9f",
      "parents": [
        "cda3d47149b41d85c38d1f3ffbc312a930b147b2"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Apr 02 22:59:59 2021 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Apr 06 21:43:31 2021 +0000"
      },
      "message": "Add a __x86.get_pc_thunk.bx helper function\n\nCopied from bionic/libc/arch-x86/bionic/__x86.get_pc_thunk.S\n\nOrdinarily, GCC would emit this function into any object file that\ncalls it, but ART isn\u0027t necessarily linked against any GCC-compiled\ncode anymore on Android. Clang\u0027s way of doing this is to use a pattern\nlike:\n\n  call 1f; 1: popl %ebx; 2: addl $_GLOBAL_OFFSET_TABLE_+(2b-1b), %ebx\n\n...but it seems fragile to use local labels buried under several macro\nexpansions. .altmacro\u0027s LOCAL directive seems like it would help with\nthe scoping, but LLVM doesn\u0027t have it yet.\n\nCurrently ART is probably calling one of the copies of this function in\nlibatomic.a, a prebuilt packaged with GCC. After removing libatomic.a,\nthis thunk needs to be defined somewhere else.\n\nBug: none\nTest: treehugger\nChange-Id: I0254932abcfa0bae3af5ebfb237b97d594c45d34\n"
    },
    {
      "commit": "f442a84ca02002cd52aebdc724d84de9e8f2dd36",
      "tree": "14d8e9b4b1f11fed23459b0dc520da431ebab4d6",
      "parents": [
        "5557553ae9568dcd8923173e7f32fac3900909c4"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 01 10:58:24 2021 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 01 14:22:52 2021 +0000"
      },
      "message": "Revert \"Merge libdexfile_external into libdexfile.\"\n\nRevert \"libdexfile_external is replaced by libdexfile.\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static.\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static.\"\n\nRevert \"Allow dependencies from platform variants to APEX modules.\"\n\nRevert submission 1658000\n\nReason for revert: Breaks full-eng build: b/184239856\nReverted Changes:\nI4f8ead785:Avoid internal APEX stubs for libsigchain and clea...\nI68affdf69:Allow dependencies from platform variants to APEX ...\nI54b33784e:Rename libdexfile_external_static to libdexfile_st...\nId68ae9438:libdexfile_external is being replaced by libdexfil...\nI12ac84eb4:libdexfile_external is replaced by libdexfile.\nIf05dbffc8:Rename libdexfile_external_static to libdexfile_st...\nIa011fa3a8:Merge libdexfile_external into libdexfile.\n\nChange-Id: I9064dd8debe2f385782c8cc6c1830e4cc5cb7221\n"
    },
    {
      "commit": "5557553ae9568dcd8923173e7f32fac3900909c4",
      "tree": "301a30fe901e15f503e7da04b69e8580983b9e01",
      "parents": [
        "30ba3a02a5c904bbab68b25888f353b94ab42016"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 01 10:58:24 2021 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 01 14:22:52 2021 +0000"
      },
      "message": "Revert \"Avoid internal APEX stubs for libsigchain and clean up e...\"\n\nRevert \"libdexfile_external is replaced by libdexfile.\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static.\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static.\"\n\nRevert \"Allow dependencies from platform variants to APEX modules.\"\n\nRevert submission 1658000\n\nReason for revert: Breaks full-eng build: b/184239856\nReverted Changes:\nI4f8ead785:Avoid internal APEX stubs for libsigchain and clea...\nI68affdf69:Allow dependencies from platform variants to APEX ...\nI54b33784e:Rename libdexfile_external_static to libdexfile_st...\nId68ae9438:libdexfile_external is being replaced by libdexfil...\nI12ac84eb4:libdexfile_external is replaced by libdexfile.\nIf05dbffc8:Rename libdexfile_external_static to libdexfile_st...\nIa011fa3a8:Merge libdexfile_external into libdexfile.\n\nChange-Id: Ia94bbe80ac9379af1a46afb33f51c084c6f13345\n"
    },
    {
      "commit": "73d4e1174b71e70f15593d762762b4f4310ec331",
      "tree": "7843a4459b4775f313ae81ca47c334ded0057548",
      "parents": [
        "848fc80db9bbe04eeb1e1c9732d137711a9903d3"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 30 13:45:05 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Apr 01 06:53:10 2021 +0000"
      },
      "message": "Avoid internal APEX stubs for libsigchain and clean up exported symbols.\n\nTest: art/tools/buildbot-build.sh {--target,--host}\n  on master-art\nTest: m droid\n  on AOSP master\nBug: 182563345\nBug: 183882457\nChange-Id: I4f8ead7853042fec19a4aba4dd37be02ab0202b8\n"
    },
    {
      "commit": "848fc80db9bbe04eeb1e1c9732d137711a9903d3",
      "tree": "49beb193d63a7d1a342a855157af430fd7b8a723",
      "parents": [
        "8e0f6aaef615bbfb0f43a28d7976ac46c74ed754"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 16 00:44:25 2021 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Apr 01 06:53:10 2021 +0000"
      },
      "message": "Merge libdexfile_external into libdexfile.\n\nTo reduce the number of DSO\u0027s. libdexfile_external only adds a few\nsmall functions on top of libdexfile, and it\u0027s still only those\nfunctions that are available in the APEX stubs.\n\nAlso rename libdexfile_external_static to libdexfile_static, for\nconsistency.\n\nSince libdexfile now has stubs, we need to add test_for properties to\navoid linking against the stubs in tests.\n\nTest: Flash and boot with userdebug and eng to try both release and\n  debug modules.\nTest: art/build/apex/runtests.sh\nBug: 143978909\nChange-Id: Ia011fa3a86509839ea0d80ad5fcad67ee5ce68d9\n"
    },
    {
      "commit": "22a6162374589eb1c56572db131849b739b50dd0",
      "tree": "ce19db1714731e07fcf7ed847e1f2bad735b4979",
      "parents": [
        "8706b9c9bf9292ec313d8590f7f6c0c8a753a79d"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Mar 17 13:30:25 2021 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Mar 24 08:03:23 2021 +0000"
      },
      "message": "Inherit art_defaults in some recently added native libraries.\n\nIt\u0027s useful to have a place to add flags that should cover all ART\ncode, so keep it that way as far as possible.\n\nTest: m\nBug: 178236337\nBug: 177273468\nChange-Id: I66796e89f054705c4af5fab867a3b8b715a83937\n"
    },
    {
      "commit": "ec388c026a5709dea339ad43f8bca10b2d991d6e",
      "tree": "49cf87249facd3c8dabb33ab10f8273a75fe2a50",
      "parents": [
        "e017bb072ac577eee5413bd7e5e136f4eaf75908"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 03 22:09:06 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 19 07:09:56 2021 +0000"
      },
      "message": "Add min_sdk_version for ART module.\n\nBug: 180399951\nTest: m\nChange-Id: I5e2a1ddc3063be26c602bf4db8e6b77f2d54b656\n"
    },
    {
      "commit": "45a9fc9b683449bc0e996e64f3b37e2de071be76",
      "tree": "918e373ac2e24ed0759b8e093fd420aa42bb0784",
      "parents": [
        "f2893adb27211609c17c4cc8d083371da4888032"
      ],
      "author": {
        "name": "Wessam Hassanein",
        "email": "wessam@google.com",
        "time": "Tue Feb 09 14:09:10 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 10 21:07:35 2021 +0000"
      },
      "message": "Add API to ART/Perfetto Java Heap Profiler (reland)\n\nAdd Perfetto API calls to ART Sampling Java Heap Profiler.\n\nTest: Passing Tests\nLocal Testing\nBug: 160214819\n\nTest: art/tools/run-gtests.sh\n  in ART chroot built on master-art (silvermont target)\nTest: art/test/testrunner/testrunner.py --target --optimizing\n  in ART chroot built on master-art (silvermont target)\nTest: art/tools/run-libcore-tests.sh --mode\u003ddevice\n  in ART chroot built on master-art (silvermont target)\nTest: m test-art-host-gtest\n  on master-art\nTest: art/tools/buildbot-build.sh --host \u0026\u0026 \\\n        art/test/testrunner/testrunner.py --host --64 --optimizing\n  on master-art\nBug: 179915934\n\nThis reverts commit 2291439187b06d995bb298683246416c75d92740\n\nChange-Id: I600313b9515a2a3ff64361d7307b88d9a76c07e4\n"
    },
    {
      "commit": "2291439187b06d995bb298683246416c75d92740",
      "tree": "8ae6ebb82f270ff7065e24105e57c79b8e7d83af",
      "parents": [
        "08e44f1a6289695530fcae887312fe69079ddf9a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 09 08:59:55 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 09 08:59:55 2021 +0000"
      },
      "message": "Revert \"Add API to ART/Perfetto Java Heap Profiler\"\n\nThis reverts commit 08e44f1a6289695530fcae887312fe69079ddf9a.\n\nBug: 160214819\n\nReason for revert: Tests breakage on target:\n+CANNOT LINK EXECUTABLE \"/apex/com.android.art/bin/dex2oatd32\": library \"heapprofd_client_api.so\" not found: needed by /apex/com.android.art/lib/libartd.so in namespace com_android_art\n\nChange-Id: I9509cc1e3c85ed4b1ec3347317c0e33fc1f96dea\n"
    },
    {
      "commit": "08e44f1a6289695530fcae887312fe69079ddf9a",
      "tree": "455dc5fa7b1d8b3ddfce5907aa6c2d790c78c1ca",
      "parents": [
        "4e01411757ea36c5930151d0168031e4cc716dbb"
      ],
      "author": {
        "name": "Wessam Hassanein",
        "email": "wessam@google.com",
        "time": "Tue Feb 09 14:09:10 2021 -0800"
      },
      "committer": {
        "name": "Wessam Hassanein",
        "email": "wessam@google.com",
        "time": "Mon Mar 08 23:37:59 2021 +0000"
      },
      "message": "Add API to ART/Perfetto Java Heap Profiler\n\nAdd Perfetto API calls to ART Sampling Java Heap Profiler.\n\nTest: Passing Tests\nLocal Testing\n\nBug: 160214819\nChange-Id: I4f4740eed89bd7c762888d9f032e6bed970db634\n"
    },
    {
      "commit": "39d529f45bad3ecf2bd6b376a049fde6cb0c21b4",
      "tree": "79cc268c360fb4f054bf242c8f4d35d7a90f30ee",
      "parents": [
        "4e7b3c78854d9639758e2519ae29f86a6799857b"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed Feb 17 12:48:53 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 04 16:39:03 2021 +0000"
      },
      "message": "Revert^2 \"[metrics] Add StatsdBackend\"\n\nAdds a new backend that allows reporting ART\u0027s metrics to statsd, where\nthey can then be uploaded to Westworld.\n\nManual Testing Instructions:\n\nRun the following commands.\n\n    m statsd_testdrive\n    adb shell setprop dalvik.vm.extra-opts              \\\n                      -Xwrite-metrics-to-statsd\\\\\\      \\\n                      -Xwrite-metrics-to-log\\\\\\         \\\n                      -Xmetrics-reporting-period\u003d10\n    adb shell stop \u0026\u0026 adb shell start\n    statsd_testdrive 332\n\nAfter about a minute, you should see several atoms logged from ART.\n\nThis reverts commit dbad1ef673140c66cdbcbbf40424674ae8e2b4c8.\nReason for revert: Added statsd apex to prebuilts\n\nBug: 178236337\nTest: Manual, see above\nTest: see instructions on https://r.android.com/1591932\nChange-Id: I2071983c04c51efe88df6a56c59fc418fe6e9424\n"
    },
    {
      "commit": "9150de6901996679c0ea6b34e74c8ddcc718d309",
      "tree": "496386b00b2a1b0b3bfbc36b09cf8083e3922f9b",
      "parents": [
        "8da26145fba859a5aba047f6280568565ffb8bfc"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 03:22:24 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 02 07:18:14 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to art\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  adbconnection/Android.bp\n  benchmark/Android.bp\n  build/Android.bp\n  build/Android.cpplint.mk\n  build/Android.gtest.mk\n  build/apex/Android.bp\n  build/boot/Android.bp\n  build/sdk/Android.bp\n  cmdline/Android.bp\n  compiler/Android.bp\n  dalvikvm/Android.bp\n  dex2oat/Android.bp\n  dexdump/Android.bp\n  dexlayout/Android.bp\n  dexlist/Android.bp\n  dexoptanalyzer/Android.bp\n  disassembler/Android.bp\n  dt_fd_forward/export/Android.bp\n  imgdiag/Android.bp\n  libartbase/Android.bp\n  libartpalette/Android.bp\n  libartservice/Android.bp\n  libartservice/tests/Android.bp\n  libarttools/Android.bp\n  libdexfile/Android.bp\n  libelffile/Android.bp\n  libnativebridge/Android.bp\n  libnativebridge/tests/Android.bp\n  libnativeloader/Android.bp\n  libnativeloader/test/Android.bp\n  libnativeloader/test/Android.mk\n  libprofile/Android.bp\n  oatdump/Android.bp\n  odrefresh/Android.bp\n  perfetto_hprof/Android.bp\n  profman/Android.bp\n  runtime/Android.bp\n  simulator/Android.bp\n  test/001-HelloWorld/Android.bp\n  test/001-Main/Android.bp\n  test/002-sleep/Android.bp\n  test/004-InterfaceTest/Android.bp\n  test/004-SignalTest/Android.bp\n  test/004-UnsafeTest/Android.bp\n  test/004-checker-UnsafeTest18/Android.bp\n  test/006-args/Android.bp\n  test/007-count10/Android.bp\n  test/009-instanceof/Android.bp\n  test/010-instance/Android.bp\n  test/011-array-copy/Android.bp\n  test/012-math/Android.bp\n  test/013-math2/Android.bp\n  test/014-math3/Android.bp\n  test/015-switch/Android.bp\n  test/016-intern/Android.bp\n  test/017-float/Android.bp\n  test/018-stack-overflow/Android.bp\n  test/019-wrong-array-type/Android.bp\n  test/020-string/Android.bp\n  test/021-string2/Android.bp\n  test/022-interface/Android.bp\n  test/025-access-controller/Android.bp\n  test/026-access/Android.bp\n  test/027-arithmetic/Android.bp\n  test/028-array-write/Android.bp\n  test/029-assert/Android.bp\n  test/030-bad-finalizer/Android.bp\n  test/033-class-init-deadlock/Android.bp\n  test/034-call-null/Android.bp\n  test/035-enum/Android.bp\n  test/036-finalizer/Android.bp\n  test/037-inherit/Android.bp\n  test/038-inner-null/Android.bp\n  test/039-join-main/Android.bp\n  test/040-miranda/Android.bp\n  test/041-narrowing/Android.bp\n  test/043-privates/Android.bp\n  test/044-proxy/Android.bp\n  test/045-reflect-array/Android.bp\n  test/046-reflect/Android.bp\n  test/047-returns/Android.bp\n  test/048-reflect-v8/Android.bp\n  test/049-show-object/Android.bp\n  test/050-sync-test/Android.bp\n  test/051-thread/Android.bp\n  test/052-verifier-fun/Android.bp\n  test/053-wait-some/Android.bp\n  test/054-uncaught/Android.bp\n  test/055-enum-performance/Android.bp\n  test/058-enum-order/Android.bp\n  test/059-finalizer-throw/Android.bp\n  test/061-out-of-memory/Android.bp\n  test/062-character-encodings/Android.bp\n  test/063-process-manager/Android.bp\n  test/067-preemptive-unpark/Android.bp\n  test/070-nio-buffer/Android.bp\n  test/072-precise-gc/Android.bp\n  test/072-reachability-fence/Android.bp\n  test/074-gc-thrash/Android.bp\n  test/076-boolean-put/Android.bp\n  test/078-polymorphic-virtual/Android.bp\n  test/079-phantom/Android.bp\n  test/080-oom-fragmentation/Android.bp\n  test/080-oom-throw-with-finalizer/Android.bp\n  test/080-oom-throw/Android.bp\n  test/081-hot-exceptions/Android.bp\n  test/082-inline-execute/Android.bp\n  test/083-compiler-regressions/Android.bp\n  test/084-class-init/Android.bp\n  test/086-null-super/Android.bp\n  test/087-gc-after-link/Android.bp\n  test/090-loop-formation/Android.bp\n  test/092-locale/Android.bp\n  test/093-serialization/Android.bp\n  test/094-pattern/Android.bp\n  test/095-switch-MAX_INT/Android.bp\n  test/096-array-copy-concurrent-gc/Android.bp\n  test/098-ddmc/Android.bp\n  test/099-vmdebug/Android.bp\n  test/100-reflect2/Android.bp\n  test/1004-checker-volatile-ref-load/Android.bp\n  test/101-fibonacci/Android.bp\n  test/102-concurrent-gc/Android.bp\n  test/103-string-append/Android.bp\n  test/104-growth-limit/Android.bp\n  test/105-invoke/Android.bp\n  test/106-exceptions2/Android.bp\n  test/107-int-math2/Android.bp\n  test/108-check-cast/Android.bp\n  test/109-suspend-check/Android.bp\n  test/110-field-access/Android.bp\n  test/112-double-math/Android.bp\n  test/114-ParallelGC/Android.bp\n  test/115-native-bridge/Android.bp\n  test/116-nodex2oat/Android.bp\n  test/120-hashcode/Android.bp\n  test/121-simple-suspend-check/Android.bp\n  test/122-npe/Android.bp\n  test/123-compiler-regressions-mt/Android.bp\n  test/123-inline-execute2/Android.bp\n  test/125-gc-and-classloading/Android.bp\n  test/128-reg-spill-on-implicit-nullcheck/Android.bp\n  test/129-ThreadGetId/Android.bp\n  test/132-daemon-locks-shutdown/Android.bp\n  test/133-static-invoke-super/Android.bp\n  test/1336-short-finalizer-timeout/Android.bp\n  test/1337-gc-coverage/Android.bp\n  test/1339-dead-reference-safe/Android.bp\n  test/136-daemon-jni-shutdown/Android.bp\n  test/139-register-natives/Android.bp\n  test/140-dce-regression/Android.bp\n  test/140-field-packing/Android.bp\n  test/143-string-value/Android.bp\n  test/144-static-field-sigquit/Android.bp\n  test/148-multithread-gc-annotations/Android.bp\n  test/149-suspend-all-stress/Android.bp\n  test/150-loadlibrary/Android.bp\n  test/151-OpenFileLimit/Android.bp\n  test/152-dead-large-object/Android.bp\n  test/153-reference-stress/Android.bp\n  test/154-gc-loop/Android.bp\n  test/156-register-dex-file-multi-loader/Android.bp\n  test/158-app-image-class-table/Android.bp\n  test/159-app-image-fields/Android.bp\n  test/163-app-image-methods/Android.bp\n  test/165-lock-owner-proxy/Android.bp\n  test/168-vmstack-annotated/Android.bp\n  test/169-threadgroup-jni/Android.bp\n  test/170-interface-init/Android.bp\n  test/172-app-image-twice/Android.bp\n  test/174-escaping-instance-of-bad-class/Android.bp\n  test/175-alloc-big-bignums/Android.bp\n  test/176-app-image-string/Android.bp\n  test/177-visibly-initialized-deadlock/Android.bp\n  test/178-app-image-native-method/Android.bp\n  test/179-nonvirtual-jni/Android.bp\n  test/1900-track-alloc/Android.bp\n  test/1901-get-bytecodes/Android.bp\n  test/1902-suspend/Android.bp\n  test/1903-suspend-self/Android.bp\n  test/1904-double-suspend/Android.bp\n  test/1905-suspend-native/Android.bp\n  test/1906-suspend-list-me-first/Android.bp\n  test/1907-suspend-list-self-twice/Android.bp\n  test/1908-suspend-native-resume-self/Android.bp\n  test/1909-per-agent-tls/Android.bp\n  test/1910-transform-with-default/Android.bp\n  test/1911-get-local-var-table/Android.bp\n  test/1912-get-set-local-primitive/Android.bp\n  test/1913-get-set-local-objects/Android.bp\n  test/1914-get-local-instance/Android.bp\n  test/1915-get-set-local-current-thread/Android.bp\n  test/1916-get-set-current-frame/Android.bp\n  test/1917-get-stack-frame/Android.bp\n  test/1919-vminit-thread-start-timing/Android.bp\n  test/1920-suspend-native-monitor/Android.bp\n  test/1921-suspend-native-recursive-monitor/Android.bp\n  test/1922-owned-monitors-info/Android.bp\n  test/1923-frame-pop/Android.bp\n  test/1924-frame-pop-toggle/Android.bp\n  test/1925-self-frame-pop/Android.bp\n  test/1926-missed-frame-pop/Android.bp\n  test/1927-exception-event/Android.bp\n  test/1928-exception-event-exception/Android.bp\n  test/1930-monitor-info/Android.bp\n  test/1931-monitor-events/Android.bp\n  test/1932-monitor-events-misc/Android.bp\n  test/1933-monitor-current-contended/Android.bp\n  test/1934-jvmti-signal-thread/Android.bp\n  test/1935-get-set-current-frame-jit/Android.bp\n  test/1936-thread-end-events/Android.bp\n  test/1937-transform-soft-fail/Android.bp\n  test/1938-transform-abstract-single-impl/Android.bp\n  test/1939-proxy-frames/Android.bp\n  test/1941-dispose-stress/Android.bp\n  test/1942-suspend-raw-monitor-exit/Android.bp\n  test/1943-suspend-raw-monitor-wait/Android.bp\n  test/1945-proxy-method-arguments/Android.bp\n  test/1947-breakpoint-redefine-deopt/Android.bp\n  test/1949-short-dex-file/Android.bp\n  test/1951-monitor-enter-no-suspend/Android.bp\n  test/1953-pop-frame/Android.bp\n  test/1954-pop-frame-jit/Android.bp\n  test/1955-pop-frame-jit-called/Android.bp\n  test/1956-pop-frame-jit-calling/Android.bp\n  test/1957-error-ext/Android.bp\n  test/1958-transform-try-jit/Android.bp\n  test/1959-redefine-object-instrument/Android.bp\n  test/1960-checker-bounds-codegen/Android.bp\n  test/1960-obsolete-jit-multithread-native/Android.bp\n  test/1961-checker-loop-vectorizer/Android.bp\n  test/1961-obsolete-jit-multithread/Android.bp\n  test/1962-multi-thread-events/Android.bp\n  test/1963-add-to-dex-classloader-in-memory/Android.bp\n  test/1967-get-set-local-bad-slot/Android.bp\n  test/1968-force-early-return/Android.bp\n  test/1969-force-early-return-void/Android.bp\n  test/1970-force-early-return-long/Android.bp\n  test/1971-multi-force-early-return/Android.bp\n  test/1972-jni-id-swap-indices/Android.bp\n  test/1973-jni-id-swap-pointer/Android.bp\n  test/1974-resize-array/Android.bp\n  test/1975-hello-structural-transformation/Android.bp\n  test/1976-hello-structural-static-methods/Android.bp\n  test/1977-hello-structural-obsolescence/Android.bp\n  test/1978-regular-obsolete-then-structural-obsolescence/Android.bp\n  test/1979-threaded-structural-transformation/Android.bp\n  test/1980-obsolete-object-cleared/Android.bp\n  test/1982-no-virtuals-structural-redefinition/Android.bp\n  test/1984-structural-redefine-field-trace/Android.bp\n  test/1985-structural-redefine-stack-scope/Android.bp\n  test/1986-structural-redefine-multi-thread-stack-scope/Android.bp\n  test/1987-structural-redefine-recursive-stack-scope/Android.bp\n  test/1988-multi-structural-redefine/Android.bp\n  test/1989-transform-bad-monitor/Android.bp\n  test/1990-structural-bad-verify/Android.bp\n  test/1991-hello-structural-retransform/Android.bp\n  test/1992-retransform-no-such-field/Android.bp\n  test/1993-fallback-non-structural/Android.bp\n  test/1994-final-virtual-structural/Android.bp\n  test/1995-final-virtual-structural-multithread/Android.bp\n  test/1996-final-override-virtual-structural/Android.bp\n  test/1997-structural-shadow-method/Android.bp\n  test/1998-structural-shadow-field/Android.bp\n  test/1999-virtual-structural/Android.bp\n  test/2003-double-virtual-structural/Android.bp\n  test/2004-double-virtual-structural-abstract/Android.bp\n  test/2005-pause-all-redefine-multithreaded/Android.bp\n  test/2008-redefine-then-old-reflect-field/Android.bp\n  test/201-built-in-except-detail-messages/Android.bp\n  test/2011-stack-walk-concurrent-instrument/Android.bp\n  test/2019-constantcalculationsinking/Android.bp\n  test/202-thread-oome/Android.bp\n  test/2020-InvokeVirtual-Inlining/Android.bp\n  test/2021-InvokeStatic-Inlining/Android.bp\n  test/2022-Invariantloops/Android.bp\n  test/2023-InvariantLoops_typecast/Android.bp\n  test/2024-InvariantNegativeLoop/Android.bp\n  test/2025-ChangedArrayValue/Android.bp\n  test/2026-DifferentMemoryLSCouples/Android.bp\n  test/2027-TwiceTheSameMemoryCouple/Android.bp\n  test/2028-MultiBackward/Android.bp\n  test/2029-contended-monitors/Android.bp\n  test/203-multi-checkpoint/Android.bp\n  test/2030-long-running-child/Android.bp\n  test/2031-zygote-compiled-frame-deopt/Android.bp\n  test/2033-shutdown-mechanics/Android.bp\n  test/2036-jni-filechannel/Android.bp\n  test/2037-thread-name-inherit/Android.bp\n  test/2231-checker-heap-poisoning/Android.bp\n  test/2232-write-metrics-to-log/Android.bp\n  test/300-package-override/Android.bp\n  test/301-abstract-protected/Android.bp\n  test/302-float-conversion/Android.bp\n  test/304-method-tracing/Android.bp\n  test/305-other-fault-handler/Android.bp\n  test/401-optimizing-compiler/Android.bp\n  test/402-optimizing-control-flow/Android.bp\n  test/403-optimizing-long/Android.bp\n  test/404-optimizing-allocator/Android.bp\n  test/405-optimizing-long-allocator/Android.bp\n  test/406-fields/Android.bp\n  test/407-arrays/Android.bp\n  test/408-move-bug/Android.bp\n  test/409-materialized-condition/Android.bp\n  test/410-floats/Android.bp\n  test/411-checker-hdiv-hrem-const/Android.bp\n  test/411-checker-hdiv-hrem-pow2/Android.bp\n  test/411-checker-instruct-simplifier-hrem/Android.bp\n  test/411-optimizing-arith/Android.bp\n  test/413-regalloc-regression/Android.bp\n  test/414-static-fields/Android.bp\n  test/418-const-string/Android.bp\n  test/419-long-parameter/Android.bp\n  test/420-const-class/Android.bp\n  test/421-exceptions/Android.bp\n  test/421-large-frame/Android.bp\n  test/422-instanceof/Android.bp\n  test/422-type-conversion/Android.bp\n  test/423-invoke-interface/Android.bp\n  test/424-checkcast/Android.bp\n  test/426-monitor/Android.bp\n  test/427-bitwise/Android.bp\n  test/427-bounds/Android.bp\n  test/429-ssa-builder/Android.bp\n  test/430-live-register-slow-path/Android.bp\n  test/433-gvn/Android.bp\n  test/434-shifter-operand/Android.bp\n  test/435-try-finally-without-catch/Android.bp\n  test/436-rem-float/Android.bp\n  test/436-shift-constant/Android.bp\n  test/437-inline/Android.bp\n  test/438-volatile/Android.bp\n  test/439-npe/Android.bp\n  test/439-swap-double/Android.bp\n  test/440-stmp/Android.bp\n  test/441-checker-inliner/Android.bp\n  test/443-not-bool-inline/Android.bp\n  test/444-checker-nce/Android.bp\n  test/445-checker-licm/Android.bp\n  test/446-checker-inliner2/Android.bp\n  test/447-checker-inliner3/Android.bp\n  test/449-checker-bce-rem/Android.bp\n  test/449-checker-bce/Android.bp\n  test/450-checker-types/Android.bp\n  test/451-regression-add-float/Android.bp\n  test/451-spill-splot/Android.bp\n  test/454-get-vreg/Android.bp\n  test/455-checker-gvn/Android.bp\n  test/456-baseline-array-set/Android.bp\n  test/458-long-to-fpu/Android.bp\n  test/461-get-reference-vreg/Android.bp\n  test/464-checker-inline-sharpen-calls/Android.bp\n  test/465-checker-clinit-gvn/Android.bp\n  test/466-get-live-vreg/Android.bp\n  test/469-condition-materialization/Android.bp\n  test/470-huge-method/Android.bp\n  test/471-deopt-environment/Android.bp\n  test/472-type-propagation/Android.bp\n  test/473-checker-inliner-constants/Android.bp\n  test/473-remove-dead-block/Android.bp\n  test/474-checker-boolean-input/Android.bp\n  test/474-fp-sub-neg/Android.bp\n  test/475-simplify-mul-zero/Android.bp\n  test/476-checker-ctor-fence-redun-elim/Android.bp\n  test/476-checker-ctor-memory-barrier/Android.bp\n  test/476-clinit-inline-static-invoke/Android.bp\n  test/477-checker-bound-type/Android.bp\n  test/477-long-2-float-convers-precision/Android.bp\n  test/478-checker-clinit-check-pruning/Android.bp\n  test/478-checker-inline-noreturn/Android.bp\n  test/478-checker-inliner-nested-loop/Android.bp\n  test/479-regression-implicit-null-check/Android.bp\n  test/480-checker-dead-blocks/Android.bp\n  test/481-regression-phi-cond/Android.bp\n  test/482-checker-loop-back-edge-use/Android.bp\n  test/483-dce-block/Android.bp\n  test/485-checker-dce-switch/Android.bp\n  test/486-checker-must-do-null-check/Android.bp\n  test/487-checker-inline-calls/Android.bp\n  test/488-checker-inline-recursive-calls/Android.bp\n  test/489-current-method-regression/Android.bp\n  test/490-checker-inline/Android.bp\n  test/491-current-method/Android.bp\n  test/492-checker-inline-invoke-interface/Android.bp\n  test/493-checker-inline-invoke-interface/Android.bp\n  test/494-checker-instanceof-tests/Android.bp\n  test/495-checker-checkcast-tests/Android.bp\n  test/496-checker-inlining-class-loader/Android.bp\n  test/497-inlining-and-class-loader/Android.bp\n  test/499-bce-phi-array-length/Android.bp\n  test/500-instanceof/Android.bp\n  test/505-simplifier-type-propagation/Android.bp\n  test/507-boolean-test/Android.bp\n  test/507-referrer/Android.bp\n  test/508-checker-disassembly/Android.bp\n  test/508-referrer-method/Android.bp\n  test/513-array-deopt/Android.bp\n  test/514-shifts/Android.bp\n  test/519-bound-load-class/Android.bp\n  test/521-checker-array-set-null/Android.bp\n  test/521-regression-integer-field-set/Android.bp\n  test/524-boolean-simplifier-regression/Android.bp\n  test/525-checker-arrays-fields1/Android.bp\n  test/525-checker-arrays-fields2/Android.bp\n  test/526-checker-caller-callee-regs/Android.bp\n  test/526-long-regalloc/Android.bp\n  test/527-checker-array-access-simd/Android.bp\n  test/527-checker-array-access-split/Android.bp\n  test/528-long-hint/Android.bp\n  test/529-long-split/Android.bp\n  test/530-checker-loops1/Android.bp\n  test/530-checker-loops2/Android.bp\n  test/530-checker-loops3/Android.bp\n  test/530-checker-loops4/Android.bp\n  test/530-checker-loops5/Android.bp\n  test/530-checker-lse-ctor-fences/Android.bp\n  test/530-checker-lse-simd/Android.bp\n  test/530-checker-lse/Android.bp\n  test/530-checker-lse2/Android.bp\n  test/530-instanceof-checkcast/Android.bp\n  test/530-regression-lse/Android.bp\n  test/532-checker-nonnull-arrayset/Android.bp\n  test/534-checker-bce-deoptimization/Android.bp\n  test/535-deopt-and-inlining/Android.bp\n  test/536-checker-intrinsic-optimization/Android.bp\n  test/537-checker-arraycopy/Android.bp\n  test/537-checker-jump-over-jump/Android.bp\n  test/538-checker-embed-constants/Android.bp\n  test/540-checker-rtp-bug/Android.bp\n  test/542-bitfield-rotates/Android.bp\n  test/542-inline-trycatch/Android.bp\n  test/542-unresolved-access-check/Android.bp\n  test/545-tracing-and-jit/Android.bp\n  test/548-checker-inlining-and-dce/Android.bp\n  test/549-checker-types-merge/Android.bp\n  test/550-checker-multiply-accumulate/Android.bp\n  test/550-new-instance-clinit/Android.bp\n  test/551-checker-clinit/Android.bp\n  test/551-checker-shifter-operand/Android.bp\n  test/551-implicit-null-checks/Android.bp\n  test/552-checker-sharpening/Android.bp\n  test/552-checker-x86-avx2-bit-manipulation/Android.bp\n  test/554-checker-rtp-checkcast/Android.bp\n  test/555-UnsafeGetLong-regression/Android.bp\n  test/557-checker-instruct-simplifier-ror/Android.bp\n  test/558-switch/Android.bp\n  test/559-bce-ssa/Android.bp\n  test/559-checker-rtp-ifnotnull/Android.bp\n  test/560-packed-switch/Android.bp\n  test/561-divrem/Android.bp\n  test/561-shared-slowpaths/Android.bp\n  test/562-bce-preheader/Android.bp\n  test/562-checker-no-intermediate/Android.bp\n  test/563-checker-invoke-super/Android.bp\n  test/564-checker-bitcount/Android.bp\n  test/564-checker-inline-loop/Android.bp\n  test/564-checker-negbitwise/Android.bp\n  test/565-checker-condition-liveness/Android.bp\n  test/566-checker-codegen-select/Android.bp\n  test/566-polymorphic-inlining/Android.bp\n  test/567-checker-builder-intrinsics/Android.bp\n  test/568-checker-onebit/Android.bp\n  test/570-checker-select/Android.bp\n  test/572-checker-array-get-regression/Android.bp\n  test/573-checker-checkcast-regression/Android.bp\n  test/576-polymorphic-inlining/Android.bp\n  test/577-checker-fp2int/Android.bp\n  test/578-bce-visit/Android.bp\n  test/578-polymorphic-inlining/Android.bp\n  test/579-inline-infinite/Android.bp\n  test/580-checker-round/Android.bp\n  test/580-crc32/Android.bp\n  test/581-rtp/Android.bp\n  test/582-checker-bce-length/Android.bp\n  test/583-checker-zero/Android.bp\n  test/584-checker-div-bool/Android.bp\n  test/589-super-imt/Android.bp\n  test/590-checker-arr-set-null-regression/Android.bp\n  test/591-checker-regression-dead-loop/Android.bp\n  test/593-checker-long-2-float-regression/Android.bp\n  test/594-checker-array-alias/Android.bp\n  test/594-load-string-regression/Android.bp\n  test/595-profile-saving/Android.bp\n  test/597-deopt-busy-loop/Android.bp\n  test/597-deopt-invoke-stub/Android.bp\n  test/597-deopt-new-string/Android.bp\n  test/602-deoptimizeable/Android.bp\n  test/603-checker-instanceof/Android.bp\n  test/604-hot-static-interface/Android.bp\n  test/605-new-string-from-bytes/Android.bp\n  test/607-daemon-stress/Android.bp\n  test/609-checker-inline-interface/Android.bp\n  test/609-checker-x86-bounds-check/Android.bp\n  test/610-arraycopy/Android.bp\n  test/611-checker-simplify-if/Android.bp\n  test/614-checker-dump-constant-location/Android.bp\n  test/615-checker-arm64-store-zero/Android.bp\n  test/616-cha-abstract/Android.bp\n  test/616-cha-interface/Android.bp\n  test/616-cha-miranda/Android.bp\n  test/616-cha-native/Android.bp\n  test/616-cha-regression-proxy-method/Android.bp\n  test/616-cha/Android.bp\n  test/617-clinit-oome/Android.bp\n  test/618-checker-induction/Android.bp\n  test/619-checker-current-method/Android.bp\n  test/620-checker-bce-intrinsics/Android.bp\n  test/622-checker-bce-regressions/Android.bp\n  test/623-checker-loop-regressions/Android.bp\n  test/625-checker-licm-regressions/Android.bp\n  test/626-set-resolved-string/Android.bp\n  test/627-checker-unroll/Android.bp\n  test/628-vdex/Android.bp\n  test/629-vdex-speed/Android.bp\n  test/631-checker-get-class/Android.bp\n  test/632-checker-char-at-bounds/Android.bp\n  test/635-checker-arm64-volatile-load-cc/Android.bp\n  test/636-arm64-veneer-pool/Android.bp\n  test/637-checker-throw-inline/Android.bp\n  test/638-checker-inline-cache-intrinsic/Android.bp\n  test/639-checker-code-sinking/Android.bp\n  test/640-checker-boolean-simd/Android.bp\n  test/640-checker-integer-valueof/Android.bp\n  test/640-checker-simd/Android.bp\n  test/641-checker-arraycopy/Android.bp\n  test/641-iterations/Android.bp\n  test/642-fp-callees/Android.bp\n  test/643-checker-bogus-ic/Android.bp\n  test/645-checker-abs-simd/Android.bp\n  test/646-checker-arraycopy-large-cst-pos/Android.bp\n  test/646-checker-long-const-to-int/Android.bp\n  test/646-checker-simd-hadd/Android.bp\n  test/647-jni-get-field-id/Android.bp\n  test/650-checker-inline-access-thunks/Android.bp\n  test/652-deopt-intrinsic/Android.bp\n  test/654-checker-periodic/Android.bp\n  test/655-checker-simd-arm-opt/Android.bp\n  test/655-jit-clinit/Android.bp\n  test/656-checker-simd-opt/Android.bp\n  test/656-loop-deopt/Android.bp\n  test/657-branches/Android.bp\n  test/658-fp-read-barrier/Android.bp\n  test/660-checker-sad/Android.bp\n  test/660-checker-simd-sad/Android.bp\n  test/660-clinit/Android.bp\n  test/661-checker-simd-reduc/Android.bp\n  test/661-oat-writer-layout/Android.bp\n  test/662-regression-alias/Android.bp\n  test/664-aget-verifier/Android.bp\n  test/665-checker-simd-zero/Android.bp\n  test/666-dex-cache-itf/Android.bp\n  test/667-checker-simd-alignment/Android.bp\n  test/667-jit-jni-stub/Android.bp\n  test/667-out-of-bounds/Android.bp\n  test/669-checker-break/Android.bp\n  test/671-npe-field-opts/Android.bp\n  test/672-checker-throw-method/Android.bp\n  test/673-checker-throw-vmethod/Android.bp\n  test/674-HelloWorld-Dm/Android.bp\n  test/674-hotness-compiled/Android.bp\n  test/676-proxy-jit-at-first-use/Android.bp\n  test/677-fsi2/Android.bp\n  test/679-locks/Android.bp\n  test/680-checker-deopt-dex-pc-0/Android.bp\n  test/680-sink-regression/Android.bp\n  test/684-checker-simd-dotprod/Android.bp\n  test/684-select-condition/Android.bp\n  test/685-deoptimizeable/Android.bp\n  test/687-deopt/Android.bp\n  test/689-multi-catch/Android.bp\n  test/689-zygote-jit-deopt/Android.bp\n  test/693-vdex-inmem-loader-evict/Android.bp\n  test/694-clinit-jit/Android.bp\n  test/695-simplify-throws/Android.bp\n  test/696-loop/Android.bp\n  test/697-checker-string-append/Android.bp\n  test/698-selects/Android.bp\n  test/700-LoadArgRegs/Android.bp\n  test/703-floating-point-div/Android.bp\n  test/704-multiply-accumulate/Android.bp\n  test/705-register-conflict/Android.bp\n  test/707-checker-invalid-profile/Android.bp\n  test/708-jit-cache-churn/Android.bp\n  test/711-checker-type-conversion/Android.bp\n  test/717-integer-value-of/Android.bp\n  test/718-zipfile-finalizer/Android.bp\n  test/720-thread-priority/Android.bp\n  test/721-osr/Android.bp\n  test/726-array-store/Android.bp\n  test/728-imt-conflict-zygote/Android.bp\n  test/805-TooDeepClassInstanceOf/Android.bp\n  test/806-TooWideClassInstanceOf/Android.bp\n  test/812-recursive-default/Android.bp\n  test/813-fp-args/Android.bp\n  test/814-large-field-offsets/Android.bp\n  test/815-invokeinterface-default/Android.bp\n  test/818-clinit-nterp/Android.bp\n  test/900-hello-plugin/Android.bp\n  test/901-hello-ti-agent/Android.bp\n  test/902-hello-transformation/Android.bp\n  test/903-hello-tagging/Android.bp\n  test/904-object-allocation/Android.bp\n  test/905-object-free/Android.bp\n  test/906-iterate-heap/Android.bp\n  test/907-get-loaded-classes/Android.bp\n  test/908-gc-start-finish/Android.bp\n  test/910-methods/Android.bp\n  test/911-get-stack-trace/Android.bp\n  test/913-heaps/Android.bp\n  test/914-hello-obsolescence/Android.bp\n  test/915-obsolete-2/Android.bp\n  test/916-obsolete-jit/Android.bp\n  test/917-fields-transformation/Android.bp\n  test/918-fields/Android.bp\n  test/919-obsolete-fields/Android.bp\n  test/920-objects/Android.bp\n  test/921-hello-failure/Android.bp\n  test/922-properties/Android.bp\n  test/923-monitors/Android.bp\n  test/924-threads/Android.bp\n  test/925-threadgroups/Android.bp\n  test/926-multi-obsolescence/Android.bp\n  test/927-timers/Android.bp\n  test/928-jni-table/Android.bp\n  test/930-hello-retransform/Android.bp\n  test/931-agent-thread/Android.bp\n  test/932-transform-saves/Android.bp\n  test/933-misc-events/Android.bp\n  test/937-hello-retransform-package/Android.bp\n  test/939-hello-transformation-bcp/Android.bp\n  test/940-recursive-obsolete/Android.bp\n  test/941-recursive-obsolete-jit/Android.bp\n  test/942-private-recursive/Android.bp\n  test/943-private-recursive-jit/Android.bp\n  test/944-transform-classloaders/Android.bp\n  test/945-obsolete-native/Android.bp\n  test/946-obsolete-throw/Android.bp\n  test/947-reflect-method/Android.bp\n  test/949-in-memory-transform/Android.bp\n  test/950-redefine-intrinsic/Android.bp\n  test/951-threaded-obsolete/Android.bp\n  test/963-default-range-smali/Android.bp\n  test/982-ok-no-retransform/Android.bp\n  test/983-source-transform-verify/Android.bp\n  test/984-obsolete-invoke/Android.bp\n  test/985-re-obsolete/Android.bp\n  test/986-native-method-bind/Android.bp\n  test/987-agent-bind/Android.bp\n  test/988-method-trace/Android.bp\n  test/989-method-trace-throw/Android.bp\n  test/990-field-trace/Android.bp\n  test/991-field-trace-2/Android.bp\n  test/992-source-data/Android.bp\n  test/993-breakpoints/Android.bp\n  test/994-breakpoint-line/Android.bp\n  test/995-breakpoints-throw/Android.bp\n  test/996-breakpoint-obsolete/Android.bp\n  test/997-single-step/Android.bp\n  test/Android.bp\n  tools/Android.bp\n  tools/ahat/Android.bp\n  tools/ahat/Android.mk\n  tools/art_verifier/Android.bp\n  tools/cpp-define-generator/Android.bp\n  tools/dexanalyze/Android.bp\n  tools/dexfuzz/Android.bp\n  tools/dmtracedump/Android.bp\n  tools/hiddenapi/Android.bp\n  tools/jfuzz/Android.bp\n  tools/jvmti-agents/breakpoint-logger/Android.bp\n  tools/jvmti-agents/chain-agents/Android.bp\n  tools/jvmti-agents/dump-jvmti-state/Android.bp\n  tools/jvmti-agents/enable-vlog/Android.bp\n  tools/jvmti-agents/field-counts/Android.bp\n  tools/jvmti-agents/field-null-percent/Android.bp\n  tools/jvmti-agents/jit-load/Android.bp\n  tools/jvmti-agents/list-extensions/Android.bp\n  tools/jvmti-agents/simple-force-redefine/Android.bp\n  tools/jvmti-agents/simple-profile/Android.bp\n  tools/jvmti-agents/ti-alloc-sample/Android.bp\n  tools/jvmti-agents/ti-fast/Android.bp\n  tools/jvmti-agents/titrace/Android.bp\n  tools/jvmti-agents/wrapagentproperties/Android.bp\n  tools/signal_dumper/Android.bp\n  tools/tracefast-plugin/Android.bp\n  tools/veridex/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  sigchainlib/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-GPL-2.0\nto:\n  Android.bp\n  Android.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  dt_fd_forward/Android.bp\n  openjdkjvmti/Android.bp\n\nAdded SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  openjdkjvm/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: If775045c12955fa6d72d40ccf2a09beef93d1699\nMerged-in: If775045c12955fa6d72d40ccf2a09beef93d1699\n"
    },
    {
      "commit": "cedec9db0a9accfdcf5eb695879e0b2caf2c34cb",
      "tree": "99fd71a3ef398a471507ed815c4a175805ad51f3",
      "parents": [
        "0ccc970b3c00b172e3cff8e10da13dd6323ccd52"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 08 16:16:13 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 14:34:43 2021 +0000"
      },
      "message": "Do not create HandleScope for JNI transitions.\n\nWe previously crated a HandleScope in the JNI transition\nframe to hold references passed as jobject (jclass, etc.)\nto the native function and these references were actually\nspilled twice during the transition.\n\nWe now construct the jobject as a pointer to the reference\nspilled in the reserved out vreg area in the caller\u0027s frame.\nAnd the jclass for static methods is just a pointer to the\nmethod\u0027s declaring class. This reduces the amount of work\nrequired in the JNI transition, both on entry (in compiled\nstubs) and exit (in JniMethodEnd*).\n\nSome additional work is required when GC visits references\nof a native method as we need to walk over the method\u0027s\nshorty which was unnecessary for a HandleScope.\n\nAlso fix Thread::InitStackHwm() to calculate correct stack\nsize needed by the new Thread::IsJniTransitionReference().\n\nThe results for StringToBytesBenchmark on blueline little\ncores running at fixed frequency 1420800 are approximately\narm64 (medians from 3 runs) before after\ntimeGetBytesAscii EMPTY     447.33 436.86\ntimeGetBytesIso88591 EMPTY  440.52 431.13\ntimeGetBytesUtf8 EMPTY      432.31 409.82\narm (medians from 3 runs)   before after\ntimeGetBytesAscii EMPTY     500.53 490.87\ntimeGetBytesIso88591 EMPTY  496.45 495.30\ntimeGetBytesUtf8 EMPTY      488.84 472.68\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --gcstress\nTest: testrunner.py --host --jit-on-first-use\nTest: testrunner.py --host --jit-on-first-use --gcstress\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nTest: boots.\nBug: 172332525\nChange-Id: I658f9d87071587b3e89f31c65feca976a11e9cc2\n"
    },
    {
      "commit": "dbad1ef673140c66cdbcbbf40424674ae8e2b4c8",
      "tree": "d1f1d2521aae7d28f0def5abaed2746e353d2162",
      "parents": [
        "3dba023d4fb47882fa215715c196cfa3be30c098"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Feb 17 13:46:00 2021 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Feb 17 16:45:59 2021 +0000"
      },
      "message": "Revert \"[metrics] Add StatsdBackend\"\n\nThis reverts commit 3d2b93e6acb4e7ac6fc808f17813975f250dbf89.\n\nReason for revert: Breaks ART tests in chroot environment, as the\n  libstatssocket library is not found. The error message is:\n\n  CANNOT LINK EXECUTABLE\n  \"/apex/com.android.art/bin/art/x86/art_libdexfile_tests\":\n  library \"libstatssocket.so\" not found: needed by\n  /apex/com.android.art/lib/libartd.so in namespace com_android_art\n\n  How to reproduce in AOSP (e.g. on cuttlefish):\n\n  $ lunch aosp_cf_x86_64_phone-userdebug \u0026\u0026 m \u0026\u0026 launch_cvd\n\n  In another terminal, run art gtests on the device:\n\n  $ unset ART_TEST_ANDROID_ROOT\n  $ unset CUSTOM_TARGET_LINKER\n  $ unset ART_TEST_ANDROID_RUNTIME_ROOT\n  $ unset ART_TEST_ANDROID_TZDATA_ROOT\n  $\n  $ export ART_TEST_CHROOT\u003d/data/local/art-test-chroot\n  $ export OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue\n  $ export ANDROID_SERIAL\u003d\"0.0.0.0:6520\"\n  $\n  $ . ./build/envsetup.sh\n  $ lunch aosp_cf_x86_64_phone-userdebug\n  $\n  $ art/tools/buildbot-build.sh --target -j72\n  $ art/tools/buildbot-cleanup-device.sh\n  $ art/tools/buildbot-setup-device.sh\n  $ art/tools/buildbot-sync.sh\n  $\n  $ export ISA\u003dx86_64\n  $ art/tools/run-gtests.sh -j8\n\nBug: 178236337\nTest: art gtests in chroot env on aosp_cf_x86_64_phone-userdebug\nChange-Id: Icbd38792f4d8828c40a53f037cefeebd777172bf\n"
    },
    {
      "commit": "3d2b93e6acb4e7ac6fc808f17813975f250dbf89",
      "tree": "c44605b61d2e863ad9d0cb76b59b84a0a8f71266",
      "parents": [
        "d2efecc12ca362cf7d2ee86455b1646f96aecb2c"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Feb 09 15:02:13 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 16 21:16:42 2021 +0000"
      },
      "message": "[metrics] Add StatsdBackend\n\nAdds a new backend that allows reporting ART\u0027s metrics to statsd, where\nthey can then be uploaded to Westworld.\n\nManual Testing Instructions:\n\nRun the following commands.\n\n    m statsd_testdrive\n    adb shell setprop dalvik.vm.extra-opts              \\\n                      -Xwrite-metrics-to-statsd\\\\\\      \\\n                      -Xwrite-metrics-to-log\\\\\\         \\\n                      -Xmetrics-reporting-period\u003d10\n    adb shell stop \u0026\u0026 adb shell start\n    statsd_testdrive 332\n\nAfter about a minute, you should see several atoms logged from ART.\n\nBug: 178236337\nTest: Manual, see above\nChange-Id: Ia1c0bbadb0a9790ab44453ad60ca217c0fdb4e1a\n"
    },
    {
      "commit": "c7ac91b21d1a15c14e29d69ff02b48c485962b0d",
      "tree": "f8bcc4df536c29773742cbb54b32b959ebd601c3",
      "parents": [
        "5c48df9895530fb26666c6d79d155ef3886d7a83"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Feb 04 21:44:01 2021 +0000"
      },
      "committer": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Feb 09 16:31:17 2021 +0000"
      },
      "message": "[metrics] Report some ART metadata\n\nAdds reporting for some metadata associated with ART metrics,\nincluding timestamp relative to ART startup, the session id, and the\nprocess\u0027s user id. It additionally outputs placeholders for the\ncompilation reason and compiler filter, but these need some additional\nplumbing from the Runtime and OatFileManager to fill in, so those will\ncome in a followup CL.\n\nThis CL also includes a fair amount of refactoring around metrics\nreporting and handling the session data.\n\nExample output:\n\n    *** ART internal metrics ***\n      Metadata:\n        timestamp_since_start_ms: 768\n        session_id: 5026277321588503825\n        uid: 123456\n        compilation_reason: Unknown\n        compiler_filter: (unspecified)\n      Metrics:\n        ClassVerificationTotalTime: count \u003d 4167\n        JitMethodCompileTime: range \u003d 0...1000000, buckets: 7,0,0,0,0,0\n    *** Done dumping ART internal metrics ***\n\nTest: ./test/run-test --host --jit 2232-write-metrics-to-log\nChange-Id: Ic74b503b135d71099d9e26bf660b60e4cc3a46bc\n"
    },
    {
      "commit": "b5a10be6153d9bf09e4edf4a645da4085b4436bf",
      "tree": "ebf5a4b90f6c3ef45bc7342405f808a71be8a38e",
      "parents": [
        "bfd622abc23c77ffc8799f376df7241f15d6550a"
      ],
      "author": {
        "name": "Wessam Hassanein",
        "email": "wessam@google.com",
        "time": "Wed Nov 11 16:42:52 2020 -0800"
      },
      "committer": {
        "name": "Wessam Hassanein",
        "email": "wessam@google.com",
        "time": "Fri Feb 05 03:10:12 2021 +0000"
      },
      "message": "ART/Perfetto Java Heap Profiler\n\nAdding a Sampling Java Heap Profiler to ART and its interface to Perfetto.\nThis cl is the first cl (CL1) in a series of cls described as below to implement the full ART/Perfetto Java Heap Profiler.\nCL1: ART Java Heap Profiler. This is the main ART sampling profiler code. Tested using the ART testrunner as below as well as VLOG.\nCL2: Uncomment APEX code ART side. CL3: Add APEX code Perfetto side.\nCL2 and CL3 will be submitted simultaneously to avoid build failures and to add APEX dependencies.\nCL4: Uncomment Perfetto API code. To be reviewed by fmayer@ (Perfetto Team). Further Testing, could be full feature testing including Perfetto at this point.\nCL5: Further tests and/or optimizations can be added as needed.\n\nTest: Passing Tests\ntest/testrunner/testrunner.py --host --debug -b\ntest/testrunner/testrunner.py --host --debug -b --64 -t 004-ThreadStress\ntest/testrunner/testrunner.py --host --runtime-option\u003d-XX:PerfettoJavaHeapStackProf\u003dtrue --debug -b\ntest/testrunner/testrunner.py --host --runtime-option\u003d-XX:PerfettoJavaHeapStackProf\u003dtrue --debug -b --64 -t 004-ThreadStress\nIndividualized and VLOG testing.\n\nBug: 160214819\n\nChange-Id: I2be4c4e715ce8c3c8ac545e3e14332198b9c2295\n(cherry picked from commit 7b149d585b4627ebb389e987c14fe808f2fe698b)\nMerged-In: I2be4c4e715ce8c3c8ac545e3e14332198b9c2295\n"
    },
    {
      "commit": "480d98182efa33179f1773c791dc8f4bed62ef2b",
      "tree": "e352691c80cd341dcfb55ef31d3f2044362c9416",
      "parents": [
        "10592e30a959d4ebe90f5ba4b6237ec0cacddc6c"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed Jan 27 23:41:45 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 01 19:09:57 2021 +0000"
      },
      "message": "[metrics] Move core metrics code to libartbase\n\nWe would like to be able to use ART\u0027s metrics system in places where\nwe do not have access to the runtime. This CL splits the metrics code\ninto the core implementation of the counters and histograms and the\nbackground reporting thread. The reporting thread was the only part\nthat had dependencies on the runtime, so this remains in the runtime.\n\nThe bulk of the metrics code moves to libartbase so that it can be\nused in more contexts.\n\nBug: 178099697\nTest: m test-art-host-gtest\nChange-Id: I26a4fe326371686d5857ad49ba98569f5c55f84a\n"
    },
    {
      "commit": "33787687f52798fd5b584edb4c88717d134c367a",
      "tree": "d55000cc678080980e6f4dd99d4acbe032119408",
      "parents": [
        "858cfd81c4fddbc950f9be2e3599b15aabaa501a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jul 26 14:27:18 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 08 23:29:58 2020 +0000"
      },
      "message": "SDK-stub controlled dex2oat verification\n\nAllow dex2oat to further limit the resolved (boot classpath) symbols\nduring verification according to an additional list of public SDK files.\n\nThe additional SDKs can be specified as regular classpath (a list\nof dex files) and has the effect of limiting what can be resolved from\nthe boot classpath. The extra checks are performed by comparing the\nsymbol descriptors and do not replace common verification access-checks\nflow.\n\nBug: 111442216\nTest: test-art-host\nChange-Id: Idc13722f34b591d7f858ebeb94bd6f568102b458\n"
    },
    {
      "commit": "3a284f8a75881d28b4df4e47177658c93953ea3b",
      "tree": "d190fbdd8c5dfee0231d55fb4a98cc2ca12945a0",
      "parents": [
        "a1cc540761ba475fc49704b0cc14d9de1987238e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Dec 07 18:49:34 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Dec 07 21:56:45 2020 +0000"
      },
      "message": "Do not strip art libraries on host (as before)\n\nThe build system also supports the strip property on host now.\n(it never stripped on host before regardless of the property)\nAdjust the build config to preserve previous semantics.\n\nBug: 174979406\nBug: 175034953\nTest: test.py -r -b --host -t 137 --ndebug\nChange-Id: I6aa4163aaae00538c61bb99c96c849ccdd9308d1\n"
    },
    {
      "commit": "a1cc540761ba475fc49704b0cc14d9de1987238e",
      "tree": "287e3e4ee6c29700399d650363b9ae5fa1035d7a",
      "parents": [
        "15489fb20f8863052daef5e9e16190ef1cbe6735"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Fri Dec 04 23:37:11 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 07 20:28:34 2020 +0000"
      },
      "message": "Revert^2 \"Add MessageQueue for cross-thread communication\"\n\nThis reverts commit c7edde06dc2cfb90114898e8de82e0e1287c2885.\n\nReason for revert: fixing bugs.\n\nThere were two issues. The first was a logic error in\nMessageQueueTest::ReceiveInOrder.  The test would allow any message to\nbe replaced by a timeout message, but then the sequence would be out of\nsync. The change now explicitly advances the message pointer, which\nmeans the timeout message does not effectively replace an expected\nmessage.\n\nThe seccond issue was one where MessageQueue may try to call\nConditionVariable::TimedWait with a negative timeout if the deadline had\nalready passed, which fails with an EINVAL error during the call to\nfutex. The code in MessageQueue::ReceiveMessage now checks for negative\ntimeouts before calling TimedWait.\n\nTest: m test-art-host-gtest-art_runtime_tests\nBug: 174652565\nChange-Id: I107af849e2a01727719f7662a7685d989b42d176\n"
    },
    {
      "commit": "df38537c2fe4d57730e9e4a359f05ebe1e7dddab",
      "tree": "1df8ac5ae6e1a82afa47114af9b5d5515b26e02d",
      "parents": [
        "c7edde06dc2cfb90114898e8de82e0e1287c2885"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 01 10:39:20 2020 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Dec 05 00:31:56 2020 +0000"
      },
      "message": "Add dex_instruction_list.h to libart_mterp.armng genrule tools\n\ndex_instruction_list.h is read by gen_mterp.py by searching relative\nto the script, add it to tool_files so it gets a dependency and\nso it gets copied if tools are sandboxed.\n\nBug: 124313442\nTest: m checkbuild\nChange-Id: Ie4b01b6572a9fd345e80cd40aff4be9db46d0207\n"
    },
    {
      "commit": "c7edde06dc2cfb90114898e8de82e0e1287c2885",
      "tree": "1f207ed4fb46dc71c7546b2a5222d2527119d14c",
      "parents": [
        "a3148d24c257b110a71114725d7d0d33c60bbc66"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Fri Dec 04 18:51:18 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 04 23:31:43 2020 +0000"
      },
      "message": "Revert \"Add MessageQueue for cross-thread communication\"\n\nThis reverts commit de60ef3f91af06a3b8ef24f4bab5c547dc65e10d.\n\nReason for revert: bot failures - http://b/174652565\n\nChange-Id: I23dc6d275ce04a8cd78c92728a8d33f66979e481\n"
    },
    {
      "commit": "e4f2215df60f0408d37ec796ececaa32b860d37a",
      "tree": "44aa9093d846a27a1681e60ebcc5d07f7b1a41c3",
      "parents": [
        "86d6cd53385eae365f16f45e1a5947cc6595eb63"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Nov 17 15:23:33 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 04 22:14:15 2020 +0000"
      },
      "message": "[metrics] Move metrics code to runtime\n\nThe background reporting thread is going to need tighter ties to the\nRuntime object, so it makes sense to bring the rest of the metrics code\nunder runtime. Since these are mostly runtime metrics, this is a more\nlogical place for them anyway.\n\nTest: m test-art-host-gtest-art_runtime_tests\nBug: 170149255\nChange-Id: Ib425041c41a5283237af8dd9978582e605a89a31\n"
    },
    {
      "commit": "de60ef3f91af06a3b8ef24f4bab5c547dc65e10d",
      "tree": "b38a5e073fc45c314deafd3301b233af4e0915f5",
      "parents": [
        "df105da771446bf686de567b36d9d982dc641ad5"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Nov 19 15:51:10 2020 -0800"
      },
      "committer": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Dec 01 17:06:45 2020 +0000"
      },
      "message": "Add MessageQueue for cross-thread communication\n\nThis adds a message queue that allows for sending messages of several\ndifferent types between threads. This can simplify communication with\nthreads that need to do periodic background work driven by certain\nevents (including timeouts). One example will be the metrics reporting\nbackground thread.\n\nSee the MessageQueue class comments for examples of use.\n\nTest: m test-art-host-gtest-art_runtime_tests\nChange-Id: I831c79a4115c6b9540c2ef1801f2fa894ab96dc9\n"
    },
    {
      "commit": "dd406c3da681ad716a23890e8a95a82fef26e5b2",
      "tree": "509a0e90cf7a9a301a30eb09dfd42275040a395f",
      "parents": [
        "d6bd107ed83502eb0bbaf66911ab036ecf74612d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Nov 22 22:53:18 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 01 10:00:07 2020 +0000"
      },
      "message": "Add an arm32 port of nterp.\n\nCurrently using arm32, will try thumb once this CL lands to compare\nperformance.\n\nTest: test.py, run-libcore-tests, device boots\nBug: 112676029\n\nChange-Id: I6535e2982a3ceed83eba6664fc8ba8609974bc08\n"
    },
    {
      "commit": "037d282cd1fc201601ac52dcfe0f1a4d97ca3790",
      "tree": "da6a1d61357cd09c4131501031de691491bcdb2a",
      "parents": [
        "6e71c66b35f6a96908e3d371316cba15dcb75d1f"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Thu Nov 19 00:20:04 2020 +0000"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Mon Nov 23 19:02:00 2020 +0000"
      },
      "message": "Add compat framework logging to ART\n\nLog first call for every change id in ART to logcat.\n\nTest: manual\nBug: 153061480\n\nChange-Id: I37ff5b88572478ae6c24b0b7dec2020da03b2172\n"
    },
    {
      "commit": "7b55065f9fd05e9610871e1598972fc8fd45e9ea",
      "tree": "bb6fa5ec5f10a406b418b5bfcb04f892db9a3aff",
      "parents": [
        "c2d5c707a2cfeaaafcf8f5d7e5193dd2d5c59592"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 17 10:12:52 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 18 01:57:51 2020 +0000"
      },
      "message": "Add dex_instruction_list.h to mterp genrule tools\n\ndex_instruction_list.h is read by gen_mterp.py by searching relative\nto the script, add it to tool_files so it gets a dependency and\nso it gets copied if tools are sandboxed.\n\nBug: 124313442\nTest: m checkbuild\nChange-Id: I85f9e154007c185cd5bef1162137986898efb629\n"
    },
    {
      "commit": "f579b063b848d04e42aa64774949bf0deb5aab0f",
      "tree": "7a3ac429f990d7592336c0e73f13bbd65a433b16",
      "parents": [
        "61c71ef48e7fb0557af5702a9021bd2854f84e28"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sat Oct 24 22:54:39 2020 +0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 27 00:29:57 2020 +0000"
      },
      "message": "Unified sampling PGO for art\n\nUse a combined sampling PGO profile for ART libraries.\n\nTest: build\nBug: 79161490\nChange-Id: I2eeb1ac07971e37ee23848ebfb718b4651b9ac75\n"
    },
    {
      "commit": "3e9abfc9779399815a7dc8d492466a1234b7fdcd",
      "tree": "fd1017f153d3759488914c4d372f543125722ad1",
      "parents": [
        "35b132e3377029a356cfbc9e4682e3ebceb83edf"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 09 22:17:51 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 23 10:03:13 2020 +0000"
      },
      "message": "Rename ART release APEX to com.android.art.\n\nTest: Build \u0026 boot on AOSP master\nTest: `m` on AOSP master, flipping\n  PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD between true and false, and\n  check out/target/product/bonito/symbols/apex/com.android.art.\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/tools/run-gtests.sh\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --64 --optimizing\nTest: m build-art-target-golem\nBug: 169639321\nChange-Id: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\nMerged-In: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\n"
    },
    {
      "commit": "71f7affff661a9f48afae25e19fcd3b9e82dac33",
      "tree": "0c39fae9b425703b0c05f7fdf70dc4e330bdbbbf",
      "parents": [
        "4904d5d65de32237790e5370bd076a9bccc22aa1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Sep 15 16:45:49 2020 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Oct 05 11:41:52 2020 +0000"
      },
      "message": "Use prebuilt_visibility property on sdk/module_exports\n\nWhen the ART sdk/module_exports snapshots are unpacked in a prebuilts\ndirectory they need some additional visibility rules to be added to\nensure that the prebuilts are visible to each other. Previously, those\nwere added on a case by case basis to the individual modules. This\nchange replaces them by using the prebuilt_visibility property that\nspecifies additional visibility rules to be added to all prebuilt\nmodules in the snapshots.\n\nCurrently, the additional visibility added to the prebuilts makes them\nvisible to anything in //prebuilts or beneath which is not restrictive\nenough. Specifying the rule in a single place will make that easier to\nrestrict in future.\n\nBug: 155921753\nBug: 168301990\nTest: build sdk/snapshot, install them in prebuilts/module_sdk/art\n      and run m nothing to ensure the visibility rules are valid.\nChange-Id: I751ed6d488038214ac9df35849babe69a3c79a31\n"
    },
    {
      "commit": "8b247625f58ba8a0f616594dc774089678aa57e3",
      "tree": "ff2be8fba185515184eb9aa6190ca50cdd27b2bd",
      "parents": [
        "e177bf1d28c5f8386995b9afd6df55c76fd48257"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue Sep 22 21:48:15 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Fri Oct 02 18:32:14 2020 +0000"
      },
      "message": "Use the new libicu.so provided in the NDK\n\nBug: 160350521\nTest: device boots\nTest: art/build/apex/runtests.sh\nChange-Id: I54ce31df8349b0c2f335a50efa117d11976c1b1d\n"
    },
    {
      "commit": "9636062c4d4839bbb2fd979ee56b2f38d8615f1e",
      "tree": "2562080e05eed8104de13707c092aacb3556d572",
      "parents": [
        "e2a9bb7175517c18ab0899ad54c730b272d9883c"
      ],
      "author": {
        "name": "Daniil Riazanovskiy",
        "email": "riazanovskiy@google.com",
        "time": "Wed Sep 16 23:26:52 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 29 13:32:59 2020 +0000"
      },
      "message": "Integrate cpu_features external library\n\nTest: art_runtime_tests --no_isolate \"--gtest_filter\u003dInstructionSetFeaturesTest.*\"\nTest: Run `InstructionSetFeaturesTest` on device (Pixel 3) with this\n      command:\n          atest --all-abi ArtGtestsTargetInstallApex -- \\\n                --test-arg com.android.tradefed.testtype.GTest:native-test-flag:\"--gtest_filter\u003d*InstructionSetFeaturesTest*\"\nBug: 128901000\nChange-Id: I49375eff2a28444af941610b750b3316bf18c7a7\n"
    },
    {
      "commit": "35f765b9c66a9d999d35afd54c693f8636d0a7ee",
      "tree": "4e51043f9d638c0d861022291ef80d126fb96e0d",
      "parents": [
        "a28438ab47e8e41599fa6b2343f8a6a21efa0116"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 23 00:38:38 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 28 10:13:56 2020 +0000"
      },
      "message": "Link all internal libraries statically into dex2oat(d) on host.\n\nAll static defaults had to change to whole_static_libs to work with the\nnew libdex2oat(d)_static libraries, so that they don\u0027t lose all symbols\nin the static_libs dependency from the dex2oat(d) binaries.\n\nThe static unstripped dex2oat binary is 348 MB, 35 MB smaller than the\nsum of the dynamic binary + DSO\u0027s.\n\nTest: art/build/apex/runtests.sh\nTest: runtests in device chroot\nTest: art/test/testrunner/run_build_test_target.py art-test\nTest: readelf -d out/host/linux-x86/bin/dex2oat(d)\n  Check that NEEDED only lists system libraries (libdl, libpthread,\n  libm, librt, libgcc_s, libc).\nBug: 145934348\nChange-Id: I7abcf1db9b053f71ced6a7dde38ab1b4300b7b5a\n"
    },
    {
      "commit": "68e5db56dadbc0e558c16696aa48a80695ccbfbc",
      "tree": "3e885cc60324c729d66730126a82d53baea9a9ff",
      "parents": [
        "b2568693d783d53aa80f71fde4715995a1f695cc"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 23 20:43:56 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 25 12:46:29 2020 +0000"
      },
      "message": "Convert libdexfile_support_static to *_static_defaults modules.\n\nIt has been using whole_static_libs to propagate static library\ndependencies transitively, but that can lead to duplicate instances of\nthem. Instead provide libdexfile(d)_support_static_defaults that\ncollect dependencies just like elsewhere in ART.\n\nExternal packages (read simpleperf) that depend on static libdexfile\nare provided a separate libdexfile_external_static library. It only\ncontains the internal dependencies and have a corresponding\n*_static_defaults for the external ones, and hence shouldn\u0027t be used\ninternally.\n\nTest: flash \u0026 boot\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: m build-art-target-golem\nTest: atest --host art_libdexfile_support_tests \\\n  art_libdexfile_support_static_tests \\\n  art_libdexfile_external_static_tests\nBug: 145934348\nBug: 142944931\nChange-Id: Ic99eebccc5c63acb55f323611c6b6f50a83eba5a\n"
    },
    {
      "commit": "2eb1f8337b4852b25517d9197ce3f313248f9b85",
      "tree": "1c8960eff3fc9f575321abc41bd0e200c850648c",
      "parents": [
        "3c7bd3c783e5a171f7ae1e5bc1c11cb95b80a93b"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 17 00:25:52 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 21 02:34:07 2020 +0100"
      },
      "message": "Link liblz4 and liblzma dynamically again.\n\nThis reverts https://r.android.com/821441 in spirit - it was an attempt\nto avoid external shared lib dependencies before the APEX library\ndependency logic was built. Now these shared libraries will simply be\nadded as internal libs in the APEX.\n\nSoong doesn\u0027t propagate shared lib dependencies in static libs, so we\nhave to repeat them in some cases where libelffile and libart-dex2oat\nare used.\n\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh\nBug: 118374951\nChange-Id: I0a61b8388f12a749ab8ab5074866eebbad78548b\n"
    },
    {
      "commit": "169dfb47436b94def39390be5e2d2ca93e16d61d",
      "tree": "f9c2bea35779bc7abb16e92ce636d1b0670adc8f",
      "parents": [
        "e492f7ed1499a6b600181bb13584091b8f0f63dd"
      ],
      "author": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Aug 07 04:22:18 2020 +0000"
      },
      "committer": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Aug 11 04:56:51 2020 +0000"
      },
      "message": "Revert^2 \"art: Remove dependencies on platform unavailable modules\"\n\nRevert^2 \"releasetools: Disable host module on darwin\"\n\n0ac3666667de42bd681586d642b52fc9e62e488f\n\nChange-Id: I0c2edeea8a10acc4a6e74a0660ebf7aa5dd67d1b\n"
    },
    {
      "commit": "c4cd59b1f17865d9ba1f362cb5c187cb95982355",
      "tree": "d0b8273b33ff23fab222a167f33bf4f35e6e31d3",
      "parents": [
        "0fa304ee0fa63149222bfc6756f56cd285c56bd1"
      ],
      "author": {
        "name": "Insaf Latypov",
        "email": "saferif@google.com",
        "time": "Thu Aug 06 15:36:57 2020 +0000"
      },
      "committer": {
        "name": "Insaf Latypov",
        "email": "saferif@google.com",
        "time": "Thu Aug 06 15:44:20 2020 +0000"
      },
      "message": "Revert \"art: Remove dependencies on platform unavailable modules\"\n\nRevert \"releasetools: Disable host module on darwin\"\n\nRevert \"conscrypt: Disable host module on darwin\"\n\nRevert submission 1385032-mac-required-fix\n\nReason for revert: breaks the build on aosp-master\nReverted Changes:\nI13335299c:releasetools: Disable host module on darwin\nI728a4677a:conscrypt: Disable host module on darwin\nI8f3435ff1:art: Remove dependencies on platform unavailable m...\nIbb9248ef4:art: Disable host module on darwin\nI7db68a629:libcore: Disable host module on darwin\n\nBug: 163030797\nChange-Id: Ibe83fc65bca64602e8b37b58b2ad6e20476efa63\n"
    },
    {
      "commit": "84eb3c927c5a90aaa63b8e82420689b4ac978730",
      "tree": "24e2ee65dcbc96c9000646e94b1a6e7250e693dc",
      "parents": [
        "47f9c9fdd01835e69b1cae705254c8e5c2b01afc"
      ],
      "author": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jul 31 20:55:17 2020 +0800"
      },
      "committer": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Thu Aug 06 04:02:47 2020 +0000"
      },
      "message": "art: Remove dependencies on platform unavailable modules\n\nThe device variants of these tests depend on tools such as\n`dex2oatd` which are not available to the platform. The tools\nare provided by the ART APEX (com.android.art.debug / .testing).\n\nThis also breaks darwin host build coincidentally, because on\nlinux host build the build system confuses the host and device\nvariants of `dex2oatd`, so the build system mistakenly thought\ndevice variant of \"dex2oatd\" exists (while in reality only the\nhost variant exists.)\nOn darwin host however, both device and host variants of\n`dex2oatd` doesn\u0027t exist, thus triggering a build break.\n\nSo for the host variants of these tests, the tools\ndependencies should be specified as\n`host.required: [\u003ctool name\u003e]` and for the device variants\n`android.required: [\"com.android.art.testing\"]`.\nHowever these device testcases are already packaged in the\nART testing APEX, so the device dependency should be omitted.\n\nBug: 162102724\nBug: 7456955\nTest: TH build mac host target\nChange-Id: I8f3435ff11f19f7191e87b0728e6d524bbd0f559\n"
    },
    {
      "commit": "5439f051a950f0281eeafb8e8064839f2aea6e38",
      "tree": "889efef779fa462357f77cb2166c600cb0d60679",
      "parents": [
        "483bf78ae61ab43a3d513cef0de0072e86d0b0b1"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jul 29 10:03:46 2020 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jul 29 13:58:15 2020 +0000"
      },
      "message": "Revert^3 \"VIXL simulator for ART (Stage1)\"\n\nThis reverts commit e886d68b9c40c941d8966b9c90d0e265c75fb19e.\n\nReason for revert: simulator implemention is not ready yet.\n\nTest: lunch aosp_cf_x86_phone-userdebug \u0026\u0026 m\nTest: art/test.py --run-test --optimizing --host\nChange-Id: I03c8c09ea348205b0238d7a26caef3477cd6ae3b\n"
    },
    {
      "commit": "d3ee902ed06b635eedebc796543a67299eb6cd05",
      "tree": "7eaabcd6196325647cb31e8a1210b5465eb694a8",
      "parents": [
        "3c98d6989b3556bd81f67d69190561a16dfc22b8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 27 16:05:38 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 28 11:10:47 2020 +0000"
      },
      "message": "More inclusive language in the build system.\n\nTest: m\nBug: 161896447\nBug: 161850439\nBug: 161336379\nChange-Id: I90dfafacc04d91661b1b1f5baf018ea6a423db72\n"
    },
    {
      "commit": "50a454b23485ceb8fe37e102abc0e41e2857876a",
      "tree": "12699b0a7cd40e916c210bed4118a836491fea6d",
      "parents": [
        "aacf977a3b3af644a7e2eb58d8e56a23d1f3d215"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 23 11:47:51 2020 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 23 13:33:39 2020 +0000"
      },
      "message": "Link statically with libart(d)-simulator-container.\n\nTest: lunch aosp_cf_x86_phone-userdebug \u0026\u0026 m\nTest: art/test.py --run-test --optimizing --host\nTest: m test-art-host-gtest\nChange-Id: I39d4b500d73a48e1a102a7c5826b6af384b8f031\n"
    },
    {
      "commit": "659e8d6f76d5ce487c46710291e143bc897b5071",
      "tree": "ede25d101d90bd31abf845b230ed5de33632f3a2",
      "parents": [
        "bf6498e3d94cde2abbf99788e68e44f48280846a"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Jul 21 15:22:26 2020 +0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Jul 23 08:08:52 2020 +0000"
      },
      "message": "Sampling PGO for libart\n\nTest: build\nBug: 79161490\nChange-Id: Icb75dc967ba4488029dac7d77cbba70bf030639d\n"
    },
    {
      "commit": "e886d68b9c40c941d8966b9c90d0e265c75fb19e",
      "tree": "ad78c4e375c95a96e200baa2786e748505ab928b",
      "parents": [
        "f12dd5861e0eaf1822c12137fd353b5e79761a6c"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 16 15:09:38 2020 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jul 17 11:04:27 2020 +0000"
      },
      "message": "Revert^2 \"VIXL simulator for ART (Stage1)\"\n\nThis reverts commit 3060bb919cd2f37c6a97e87c1581ac5294af72b3.\n\nReason for revert: relanding original change. The fix is setting\n`device_supported: false` for libart(d)-simulator module in the .bp\nfile (`m checkbuild` attempted to build it for arm32 and failed).\nOriginal commit message:\n\nVIXL simulator for ART (Stage1)\n\nQuick User Guide: test/README.simulator.md\n\nThis CL enables running ART run-tests in a simulator on host machine.\nSome benefits of using this simulator approach:\n- No need to use a target device at all.\n  Save developers from solving the device troubles: build, flash, usb,\n  adb, etc.\n- Speed up development/debug/test cycle.\n- Allows easy debugging/testing new instruction features without real\n  hardware.\n- Allows using a smaller AOSP Android manifest master-art.\n\nThe Stage1 CL provides support for running 30% of current run-tests.\nThe rest unsupported test cases are kept in knownfailures.json.\n\nFuture work will be supporting proper stack frame layout between\nsimulator and quick entrypoints, so that stack walk,\nQuickArgumentVisitor, deoptimization, etc can be supported.\n\nThis CL adds libart(d)-simulator-container library to the ART APEX. It\nhas caused the following increase of the APEX size (small, about 0.13%\nfor release APEX, measured for target aosp_arm64-userdebug):\n Before:\n   88992 com.android.art.debug.apex\n   51612 com.android.art.release.apex\n  112352 com.android.art.testing.apex\n After:\n   89124 com.android.art.debug.apex\n   51680 com.android.art.release.apex\n  112468 com.android.art.testing.apex\n\nChange-Id: I461c80aa9c4ce0673eef1c0254d2c539f2b6a8d5\nTest: art/test.py --run-test --optimizing --simulate-arm64\nTest: art/test.py --run-test --optimizing --host\nTest: m test-art-host-gtest\n"
    },
    {
      "commit": "3060bb919cd2f37c6a97e87c1581ac5294af72b3",
      "tree": "6a2b517812ff83cd10cc3b055635d0746157b345",
      "parents": [
        "48ca6a681efe1fa1cf82d8af918bf9bbfd35ae96"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 16 14:17:11 2020 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 16 14:17:11 2020 +0000"
      },
      "message": "Revert \"VIXL simulator for ART (Stage1)\"\n\nThis reverts commit 48ca6a681efe1fa1cf82d8af918bf9bbfd35ae96.\n\nReason for revert: broken build 6685551 on aosp-master on full-eng\nBug: 161440641\n\nChange-Id: I849fe53f56c4786f0f2a1605cbfd215559f11072\n"
    },
    {
      "commit": "48ca6a681efe1fa1cf82d8af918bf9bbfd35ae96",
      "tree": "87ff5251f8f843e64e3f3632c423856ba14ceadf",
      "parents": [
        "cfea667ed9bfbdd21bf9812d1598603fc359d2e1"
      ],
      "author": {
        "name": "Xueliang Zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Mar 07 14:48:55 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 16 13:31:48 2020 +0000"
      },
      "message": "VIXL simulator for ART (Stage1)\n\nQuick User Guide: test/README.simulator.md\n\nThis CL enables running ART run-tests in a simulator on host machine.\nSome benefits of using this simulator approach:\n- No need to use a target device at all.\n  Save developers from solving the device troubles: build, flash, usb,\n  adb, etc.\n- Speed up development/debug/test cycle.\n- Allows easy debugging/testing new instruction features without real\n  hardware.\n- Allows using a smaller AOSP Android manifest master-art.\n\nThe Stage1 CL provides support for running 30% of current run-tests.\nThe rest unsupported test cases are kept in knownfailures.json.\n\nFuture work will be supporting proper stack frame layout between\nsimulator and quick entrypoints, so that stack walk,\nQuickArgumentVisitor, deoptimization, etc can be supported.\n\nThis CL adds libart(d)-simulator-container library to the ART APEX. It\nhas cause the following increase of the APEX size (small, about 0.13% for\nrelease APEX, measured for target aosp_arm64-userdebug):\n Before:\n   88992 com.android.art.debug.apex\n   51612 com.android.art.release.apex\n  112352 com.android.art.testing.apex\n After:\n   89124 com.android.art.debug.apex\n   51680 com.android.art.release.apex\n  112468 com.android.art.testing.apex\n\nTest: art/test.py --run-test --optimizing --simulate-arm64\nTest: art/test.py --run-test --optimizing --host\nTest: m test-art-host-gtest\n\nChange-Id: I078812dde9aaf7128d9f262b2102251927596b7f\n"
    },
    {
      "commit": "0d60a2b1eaa2cd2ec3481e49578b77405353efa1",
      "tree": "91f16b9321ef7631aff731b10da2024c6c9d2029",
      "parents": [
        "289bd1cccdb3aa37e2d129980f5c151f52f84897"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 14:31:56 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 08:37:10 2020 +0000"
      },
      "message": "Introduce an enum for the compilation kind.\n\nTest: test.py\nChange-Id: I5329e50a6b4521933b6b171c8c0fbc618c3f67cd\n"
    },
    {
      "commit": "9974e3cdc1564edc3143b90d7bb2a416f1f887e7",
      "tree": "4f9746e6b237b2a17cc1e2543a141817d4946c19",
      "parents": [
        "2d19902c3d140c7b9b1d7ae905bd1023a4e649a1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 10 16:27:06 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 11 10:06:12 2020 +0000"
      },
      "message": "Clean up generated operator\u003c\u003c(os, enum).\n\nPass enums by value instead of const reference.\n\nDo not generate operator\u003c\u003c sources for headers that have no\nenums or no declarations of operator\u003c\u003c. Do not define the\noperator\u003c\u003c for flag enums; these were unused anyway.\n\nAdd generated operator\u003c\u003c for some enums in nodes.h . Change\nthe operator\u003c\u003c for ComparisonBias so that the graph\nvisualizer can use it but do not use the generated\noperator\u003c\u003c yet as that would require changing checker tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ifd4c455c2fa921a9668c966a13068d43b9c6e173\n"
    },
    {
      "commit": "4a88a5af7417d9dc0bfe37cffd92a253531c8f30",
      "tree": "6a0496ac10c62f8d183265a9d9615d5778a8c444",
      "parents": [
        "ffffa9c4e18e233db7b0f5eb31d07d8a52d527e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 05 16:21:57 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 29 11:51:26 2020 +0000"
      },
      "message": "Finish move of jar compilation rules from makefile to soong.\n\nThe rules have already been previously ported to soong, but they were\nonly used for atest.  Always use them to simplify the makefile.\n\nThis makes the gtest modules in .bp files depend on the needed jars,\nwhich ensures that they will be copied next to the test binary.\nThis is needed as atest can not access them in the current location.\n\nIt also simplifies the tradefed xml since the manual copying\ncan be removed for the apex-based device testing.\n\nTest: test-art-host-gtest\nTest: atest ArtGtestsTarget\nBug: 147819342\nChange-Id: I54d92eca88fc04c949209d490e838d0a92ce8f87\n"
    },
    {
      "commit": "2280b534e24e600a46b6e83141b546659c461552",
      "tree": "58f8372d73b2229a8c22673f74fdf313c37ffd57",
      "parents": [
        "fc136524f5a99be31f0c37ff849c07fde5629562"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 27 00:30:44 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 27 13:44:26 2020 +0000"
      },
      "message": "Move gtest tool dependencies from makefile to soong\n\nBug: 147817558\nBug: 147819342\nTest: run test individually and remove the tools directory between runs\nChange-Id: Ida773d76fdeadb38695d6a2556ad4a55adb823b5\n"
    },
    {
      "commit": "4fc75697d88550df7dd2e3799ced2f01df60772b",
      "tree": "bf84a362512d6d663ac55a6d847c359895db73fe",
      "parents": [
        "d1a421ff5cf2ffae07cd6b892dd31d51b09d3e71"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 13 21:49:22 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 21 08:54:55 2020 +0000"
      },
      "message": "[nterp] Add arm64 implementation.\n\nBug: 112676029\nTest: test.py\n\nChange-Id: Ie693b1bb7b1f6b8a52818db964422d40ff818fbb\n"
    },
    {
      "commit": "b1c8e161a1f216f48e28c8bcd5a6b26752c7e2a0",
      "tree": "5f97c683540e440d3a33948b06c267dccbe1b7b6",
      "parents": [
        "daee51f893902526b191b3a3c5dd179b1964a352"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon May 18 19:04:42 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 19 00:58:00 2020 +0000"
      },
      "message": "Dynamically link to libz\n\nlibz will be a stub providing library, which means it has stable API\nsurface that Mainline modules can depend on. APEXes including the\nruntime APEX don\u0027t need to statically link to it; it will just increase\nthe size of the APEX. With ag/11420260 this is even prohibited.\n\nThis change changes the static linkings to libz to dynamic linkings.\n\nBug: 155456180\nTest: m\nChange-Id: Ic6a38909241c8f851bf299130542bc323a0ff2ef\n"
    },
    {
      "commit": "75b961a4cd926e647eb20ebf20ec5af410f7e1df",
      "tree": "4c83c209ca826494c440dedf1815217721e4439b",
      "parents": [
        "3a079094a2b92a8dce725848d28abd5de7a84e9f"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu May 07 01:45:27 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon May 11 08:55:41 2020 +0000"
      },
      "message": "Add visibilities for prebuilts.\n\nThese visibilities are intentionally blunt, to allow the prebuilts to\nmove around for now.\n\nMany of these visibilities may also go away completely again if the\nexported binaries are changed to compile internal ART libraries\nstatically.\n\nTest: v\n  1. build/soong/scripts/build-aml-prebuilts.sh art-module-sdk \\\n     art-module-test-exports conscrypt-module-sdk \\\n     conscrypt-module-test-exports conscrypt-module-host-exports \\\n     art-module-host-exports\n  2. Unzip out/aml/soong/mainline-sdks/*.zip into separate\n     subdirectories under prebuilts/runtime\n  3. env SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue m nothing\n     (together with the topic of https://r.android.com/1252167)\nBug: 155921753\nChange-Id: Id8bbc8aedb0b87e30e9cf3d2a9f34b33cb71756c\n"
    },
    {
      "commit": "71f661c294156f2ebe10600368a23a35d882c67b",
      "tree": "92f830a0ffe7e266a2182bac8dcb3fd4d6ba9c55",
      "parents": [
        "0c66e678a0562846449a424e297211a1aa70694d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 28 18:20:43 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 12:18:30 2020 +0000"
      },
      "message": "Set apex_available property\n\nThe marked library(ies) were available to the APEXes via the\nhand-written whitelist in build/soong/apex/apex.go. Trying to remove the\nwhitelist by adding apex_available property to the Android.bp of the\nlibraries.\n\nBug: 150999716\nTest: m\nMerged-In: Ie9a693be10c6c6571c8aa5357500f5d931400593\n(cherry picked from commit 0f152391c0458d3d1cce04a11bc92e7234955d6f)\nChange-Id: Ie9a693be10c6c6571c8aa5357500f5d931400593\n"
    },
    {
      "commit": "00cb81d29a9a903aa5f72e28492415ff7b2d7f06",
      "tree": "221d2e9afa762ffeb1700d5d674c7868855495b2",
      "parents": [
        "4b79ef49dce84b8e4c08d25b73411329fc6a0d55"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Apr 03 06:47:07 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 07 14:01:36 2020 +0000"
      },
      "message": "Add explicit dependencies on jni_headers\n\nBug: 152482542\nTest: lunch aosp_x86_64 \u0026\u0026 m checkbuild\nChange-Id: I1859a5b15d7e1a4939968908d862d27b2345acc4\n"
    },
    {
      "commit": "b72a0941f6f97f6bbb117634a2a3d7bd5a121732",
      "tree": "cc5a1779c4b799dc6a1e9edfa05e69014d639ae3",
      "parents": [
        "0ae3173a94e56f17d0e3c6738d4296f7a2401fc8"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Thu Mar 12 12:10:39 2020 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Apr 06 11:18:35 2020 +0000"
      },
      "message": "Remove ART dependency on libicuuc\n\nUse the headers of libandroidicu only.\n\nBug: 138994281\nTest: m droid\nChange-Id: I4af1aa40a5c9ab475fdf31ca6939ad5b54da3a2b\n"
    },
    {
      "commit": "c1ad13a45ca363f7b5044d66a48853403a993b33",
      "tree": "39b592c7524e403beeb7ea36c32794151194539d",
      "parents": [
        "55d6f19764876fc2bc16ea27d9f0a5a736bb1519"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 24 11:37:45 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 25 22:48:43 2020 +0000"
      },
      "message": "Add Handle::GetFromGdb function\n\nWhen using a debugger it is normally quite difficult to examine\nmirror objects being held by Handles due to the inlining of the\nvarious accessor functions. This adds a new \u0027GetFromGdb\u0027 function that\nis emitted normally to allow one to decode the handle from gdb. This\nfunction is defined for every Handle type using a macro.\n\nTest: Manual debugging\nChange-Id: I7cb95468b1a14438df4dccdf84b48e2af5ec71b9\n"
    },
    {
      "commit": "9f8ead24a13e0471a333f0776a024e970662591c",
      "tree": "853103508567b0db20d034ae8e20dd19975d0b95",
      "parents": [
        "662f12ee2f2b886aebcc22d321b2d752227e0b38"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 19 10:32:17 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 03 09:13:01 2020 +0000"
      },
      "message": "Remove support code for native Core Platform API checks\n\nNative Core Platform API checks rely on the stack unwinder. The\nunwinder instance increases the zygote rss by ~4MB. We need to keep the\nunwinder around to keep checks fast and not churn memory resources.\n\nBug: 124338141\nBug: 144502743\nBug: 149029127\nTest: m \u0026 boot\nChange-Id: Ia306ec6e48d7b2b330efd771348b563767973269\n"
    },
    {
      "commit": "41b605c5ad4b06ea127ac56c6e3a4c92e8913efd",
      "tree": "f7b28eb11051f3faada99c11dc594cccd34a5786",
      "parents": [
        "30b38f8d01cdb4c80092638f23c61d73e0d287f4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 14 12:01:58 2020 +0000"
      },
      "message": "Remove MIPS support from runtime/.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: If1fc8be94caa69f734438d7a1f4c715addfd8876\n"
    },
    {
      "commit": "30b38f8d01cdb4c80092638f23c61d73e0d287f4",
      "tree": "c1c37ea305aabd3a81cff52d76eda386724288de",
      "parents": [
        "013e208bddd2ea316390429113ca1f43b3924ac2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 13 15:17:32 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 14 11:29:23 2020 +0000"
      },
      "message": "Remove MIPS mterp.\n\nTest: aosp_taimen-userdebug boots\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: Ie2509fd87f302bb370d759db0ee205a6dd3ac54f\n"
    },
    {
      "commit": "b682ea4d1f9f88ef41589007f385398033d61b65",
      "tree": "b843077f05e2fe37ce5f566dfc823552f289f562",
      "parents": [
        "77aa6807053a830fe5c951c7cb700813d7e2e27b"
      ],
      "author": {
        "name": "Dan Zimmerman",
        "email": "danzimm@fb.com",
        "time": "Mon Dec 23 06:59:06 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 08 00:01:36 2020 +0000"
      },
      "message": "Introduce BaseDexClassLoader.computeClassLoaderContextsNative\n\nThis will be used to compute the contexts that should be sent over to\nthe dex load reporter. See associated changes in libcore \u0026\nframeworks/base.\n\nMotivation: At the moment of committing there are two classloader\ncontext encoders- one in ART and one in the package manager. The\nduplicate logic is susceptible to divergences. For example at the moment\nif a package uses shared libraries and has secondary dex files then the\ncontext encoded for secondary dex files will be incorrect[1]. In order to\neliminate this bug and future possible bugs lets centralize where all\nclassloader context computation is done.\n\n[1]: The context will be incorrect because it doesn\u0027t take into account\nthe shared libraries that are loaded at runtime.\n\nTest: m test-art-host-gtest-class_loader_context_test\nTest: m test-art-host-gtest\nTest: ./test/testrunner/testrunner.py --host -b\nTest: Introduced a set of tests for the new API(s)\nTest: See tests in associated libcore \u0026 framework/base commits\n\nBug: 148494302\nChange-Id: Id39293a2e1d3d05194f2864f4febb3e652bce075\n"
    },
    {
      "commit": "fc58809f7b932d86234130be15487017dc37b0cf",
      "tree": "d003dedec73d77473aff6b2039860bc76a69d898",
      "parents": [
        "d00f129f1b7148f01efe6e9283a72d6ec8f0edd3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 23 15:39:08 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 29 23:31:10 2020 +0000"
      },
      "message": "Remove old JDWP implementation from ART\n\nThe old \u0027internal\u0027 JDWP implementation hasn\u0027t been used for a few\nreleases and it\u0027s a lot of code that\u0027s barely being tested and is at\nrisk of bit-rot. To simplify the runtime and remove potentially buggy\ncode this removes it.\n\nWe also needed to rewrite the DdmThreadNotification code since it\nrelied on the suspension functionality from the old debugger and was\ngenerally unsafe.\n\nTest: ./test.py --host\nTest: atest --test-mapping cts/tests/jdwp/TEST_MAPPING\nTest: atest --test-mapping cts/hostsidetests/jdwptunnel/TEST_MAPPING\nTest: Manual ddms\n\nBug: 119034743\n\nChange-Id: I775f310a009141296b730e4a6c2503506a329481\n"
    },
    {
      "commit": "467defb0519f45bf4274f9321d826ae8544b9874",
      "tree": "ca9f61e448f5ab76d281136c2e706b48df2839e4",
      "parents": [
        "3db26d596bdc969b6d0e8646ac0ab64346b7ee21"
      ],
      "author": {
        "name": "Dan Zimmerman",
        "email": "danzimm@fb.com",
        "time": "Thu Dec 26 12:39:23 2019 -0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 07 09:48:14 2020 +0000"
      },
      "message": "[art] Format runtime/Android.bp\n\nThe hook scripts are failing on bpfmt in art because of a formatting\nissue, this fixes the formatting issue\n\nTest: bpfmt -d runtime/Android.bp\nChange-Id: If3620a73639db0ef5e6379ad3e431dd2780b34b5\n"
    },
    {
      "commit": "066dd902930582873e7d9372ac0c8483ac700cb9",
      "tree": "f3a0b47419fea78001faea017ba04e630e82fd2e",
      "parents": [
        "fb537087516e34e92e3c030ef2f7fc8b233d7a47"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 02:11:59 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 01:17:37 2019 +0000"
      },
      "message": "Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR\n\nReason for revert: relanding with fix\nReverted Changes:\nIc4119368c:Revert submission 1191937-art_apex_available\nIa084976bb:Revert submission 1191937-art_apex_available\nIada86226d:Revert submission 1191937-art_apex_available\nIc76735eac:Revert submission 1191937-art_apex_available\nI1eb30e355:Revert submission 1191937-art_apex_available\nIcaf95d260:Revert submission 1191937-art_apex_available\nIe8bace4be:Revert submission 1191937-art_apex_available\nI8961702cf:Revert submission 1191937-art_apex_available\nI39316f9ef:Revert submission 1191937-art_apex_available\nI522a7e83b:Revert submission 1191937-art_apex_available\nI8b9424976:Revert submission 1191937-art_apex_available\nI48b998629:Revert submission 1191937-art_apex_available\n\nChange-Id: I7a101d39ff63c153675e4e741f9de1a15a778d33\n"
    },
    {
      "commit": "80599a28d1c865de7644a87111f49ee3b30f7c41",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "1e88f980a85056165312331746862dc48186bc54"
      ],
      "author": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "committer": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "message": "Revert submission 1191937-art_apex_available\n\nOriginal Commit Message:\n\"\"\"\nRename modules that are APEX-only\n\nThe renamed modules are only available for APEXes, but not for the\nplatform. Use the \u003cmodule_name\u003e.\u003capex_name\u003e syntax to correctly install\nthe APEX variant of the modules.\n\"\"\"\n\nReason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.\n\nReverted Changes:\nI190ce2d10:Use apex_available property\nI990e0a67e:Use apex_available property\nI0d1295683:Revert \"Avoid duplicated classes for boot dex jars...\nI5fb725403:Find the jar libraries in APEX from the correct pa...\nI322b1efcc:Rename modules that are APEX-only\nIfa2bd0f8f:Use apex_available property\nIac6533177:Use apex_available property\nIe999602c6:Use apex_available property\nI2a3d73397:Use apex_available property\nIc91bcbb9a:Use apex_available property\nIa6c324eed:Use apex_available property\nI964d0125c:Use apex_available property\n\nChange-Id: I1eb30e355cfce316b94cde0dd176002af8d222bb\n"
    },
    {
      "commit": "1e88f980a85056165312331746862dc48186bc54",
      "tree": "0cbeeaf951d6bd637a46f4f51faf80587f3ecc2b",
      "parents": [
        "c9af14e93f6a2691bf8231752d8d7c3e41b14c76"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 02 13:44:06 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 00:21:38 2019 +0000"
      },
      "message": "Use apex_available property\n\nUse apex_available property to prevent modules that are only for the ART\napex from being used outside of the APEX.\n\nThis change also fixes the reference to\n$(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so to $(lib).com.android.art.debug\nphony module since the former is never installed to the system partition\ndue to their \u0027apex_available\u0027 settings.\n\nBug: 128708192\nBug: 133140750\nTest: m\nChange-Id: I990e0a67e066d9b1dc221748422a2f44449258da\n"
    },
    {
      "commit": "00391824f4ee89f9fbed178a1ee32bc29fa77b3b",
      "tree": "aea6bc5e49801c5b4816257ab16a97181ef0d911",
      "parents": [
        "001e5b33ba7065dde0b85450830b605733ae1685"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 10 10:17:23 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 06:50:39 2019 +0000"
      },
      "message": "Add an implementation of Nterp for x64.\n\nAnd enable it on x64 when runtime and ArtMethod requirements are met\n(see nterp.cc).\n\nTest: test.py\nBug: 112676029\nChange-Id: I772cd20a20fdc0ff99529df7495801d773091584\n"
    },
    {
      "commit": "013d1ee96b928f3bda9031e94d4a69f827133ce6",
      "tree": "4e374c043330f123dc3888922b554fd1291349b4",
      "parents": [
        "9ca8b2bf46978e3a5698f8a27b48aa7eff3514df"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 16:18:15 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 09:43:08 2019 +0000"
      },
      "message": "Introduce the notion of an nterp frame.\n\nSee comments in nterp_helpers.cc. An nterp frame follows the\ncalling conventions and exception handling of the compiler. There are\nno ManagedStack transitions, and the compiler and interpreter can\njust call each other directly.\n\nFor the stack walker, an nterp frame looks like a compiled frame.\n\nThis CL introduces an nterp frame, another CL will contain an\nimplementation for x64.\n\nBug: 119800099\nTest: test.py\nChange-Id: Ie9b691f58908b7f283b4cd63b84b651526155d27\n"
    },
    {
      "commit": "0d38e8587c014e600bc6ee916aa15912c0ef190d",
      "tree": "45665cedc42762fe6134ad869e5e9329d1f90495",
      "parents": [
        "a697b477705d52983611ef76e0f74ea41f354e61"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 11 09:37:19 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 16 16:59:31 2019 +0000"
      },
      "message": "Keep the debug_frame for some arm32 art libs.\n\nFor these libs:\n- libart.so\n- libartbase.so\n- libdexfile.so\n- libprofile.so\n\nNewer clangs have become much better at optimizing code, and the\narm exidx unwind information is insufficient to properly unwind. Do not\nremove the debug_frame when stripping. It is not that big in these\nlibraries, and it only adds about 350,000 bytes in total.\n\nBug: 145790995\n\nTest: Ran this with new clang: art/test/run-test --always-clean  --chroot /data/local/art-test-chroot -O --prebuild --compact-dex-level fast --interpreter --no-relocate --runtime-option -Xcheck:jni  137-cfi\nTest: Verified that the shared libraries built for arm64, x86, x86_64 versions\nTest: do not contain a .debug_frame but do contain symbol tables.\nChange-Id: I67c39333dc5fb3c7cb84324852682225ba5ad33e\n"
    },
    {
      "commit": "d3d00c06a439f5204b290505a3333f780dd00bce",
      "tree": "7fb793aa293908b9218267acbf8e10da14e95031",
      "parents": [
        "0f7c792f12905558836cc01f3406d6ba364cefd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 07 15:09:07 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 07 16:46:05 2019 +0000"
      },
      "message": "Refactor oat.h.\n\nMove OatClassType and OatMethodOffsets to oat_file.h and\nmake all dependencies on oat.h explicit instead of relying\non transitive #includes. This reduces the number of files\nthat need to be rebuilt for oat version changes.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I89c8e397a4f423043d7a036a995cc33548b25051\n"
    },
    {
      "commit": "55eccdf61f46bd2a633f489f8d09cf78e1de1938",
      "tree": "e60d91c8fc48dfe70956ec9febd346b9dc9fcf77",
      "parents": [
        "49df715faf3700e874fbe246b339a8e426549216"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 07 13:51:13 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 07 18:59:55 2019 +0000"
      },
      "message": "Revert^4 \"Walk internal ArtField/ArtMethod pointers\"\n\nSeveral of the new tests make use of the invoke-custom opcode. This\nopcode is not supported by dexter/slicer causing the tests to fail.\n\nThis reverts commit c34eab45161c51bf63e548e44645cbcc59d01268.\n\nReason for revert: Added tests to redefine-stress known failures\nTest: ./test.py --host --redefine-stress\nBug: 134162467\n\nChange-Id: Ic1b375a0cb1e44d0252c17115af92c269fb8efc5\n"
    },
    {
      "commit": "c34eab45161c51bf63e548e44645cbcc59d01268",
      "tree": "1b2a0eb85865d2cf6b1627cb5d64869e72412505",
      "parents": [
        "623d4f1ba4f4218c5472e3d9e1e9bf707795878d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 07 07:15:53 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 07 07:16:18 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Walk internal ArtField/ArtMethod pointers\"\"\n\nThis reverts commit ea2a3d949354c8b054983ba629c81bc5ff7163da.\n\nBug: 134162467\n\nReason for revert: Fails redefine stress\n\nChange-Id: If487c0bcacaf3a3f565ff475b6dad8321e3428b9\n"
    },
    {
      "commit": "ea2a3d949354c8b054983ba629c81bc5ff7163da",
      "tree": "dc94a9c92b254d3f94d96ad0dc27f195d5a7767c",
      "parents": [
        "7fca6ef7b9dbe5a54f2c93a3484035f48ebae27a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 04 20:34:46 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 04 14:21:21 2019 -0700"
      },
      "message": "Revert^2 \"Walk internal ArtField/ArtMethod pointers\"\n\nThis reverts commit 712fa800b2b78e527d36c88dc369bf4b723587ea.\n\nWe incorrectly didn\u0027t check if a method was obsolete before giving its\nclass\u0027s MethodIds array. We then incorrectly used this array and the\n(placeholder) -1 index to try to find the previous method-id. Since -1\nis not a valid array index we got check failures. To fix this we\nsimply added a check that the method is not obsolete and if it is we\ngo to the slow-path.\n\nReason for revert: Fixed issue causing out-of-bounds array access\nTest: ./test.py --host --debuggable --ndebuggable\nBug: 134162467\n\nChange-Id: Iaffefeab6e889b4fb6554a11452d0af051001cb7\n"
    },
    {
      "commit": "712fa800b2b78e527d36c88dc369bf4b723587ea",
      "tree": "ccc4573a3c6bef136ef6da022350ebb5c17a1892",
      "parents": [
        "f70dfec27cae2625c199f1b8ecf1ef1f23580a45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 04 08:38:11 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 04 08:38:38 2019 +0000"
      },
      "message": "Revert \"Walk internal ArtField/ArtMethod pointers\"\n\nThis reverts commit c84fc3a742b160ce51cbf01c2e5f971ccc0a2c6c.\n\nBug: 134162467\n\nReason for revert: Test fails on debuggable.\n\nChange-Id: I240d58fafcc7434749947330b64c67d65b9b7a1e\n"
    },
    {
      "commit": "f70dfec27cae2625c199f1b8ecf1ef1f23580a45",
      "tree": "a2f1fba77e0a0e924974a59c1dace4cf381465ad",
      "parents": [
        "83072060112150894f723277ee9e8ae6977b56b5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 02 18:58:19 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 03 23:43:05 2019 +0000"
      },
      "message": "Attach the running bitness to the boot image profile\n\nAlso, add tests for the profile saver.\n\nBug: 139884006\nTest: gtest\nChange-Id: I134c951e40859e4e6560cbdf43710c99de6b11fc\n"
    },
    {
      "commit": "c84fc3a742b160ce51cbf01c2e5f971ccc0a2c6c",
      "tree": "1380b353e0d3b5015c9d1ef29fd4c2534828f97b",
      "parents": [
        "8679fd5e938d7bed67d3ab67c55b7f4fb2cdd92a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 24 14:36:50 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 03 20:44:33 2019 +0000"
      },
      "message": "Walk internal ArtField/ArtMethod pointers\n\nDuring structural class redefinition we sometimes need to update some\nof the ArtMethod/ArtField pointers held by runtime frames. This adds\nsupport for doing this through a StackReflectiveHandleScope similar to\nthe StackHandleScope used for holding object references. This also\nupdates various places where reflective-handles to ArtMethods and\nArtFields are needed, for example the JniIdManager, field Read/Write\noperations and events, field resolution, and the old debugger.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I4ea73e85956a07735c6d7b125c5828a4233670bc\n"
    },
    {
      "commit": "c18eba327c4e207ff7b38817f097ee2220b44b39",
      "tree": "1978e64abd3e9fd3df99179f4a2110a724a9565f",
      "parents": [
        "371390f775c90b8b3df11a9890585598a2a39da9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 24 14:36:27 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 27 17:08:33 2019 +0000"
      },
      "message": "Consolidate updating of reflective Field/Method references\n\nPreviously we used several different visitors to update Field \u0026\nMethod references for structural redefinition. We also did not visit\nor update JVMTI based references.\n\nThis consolidates all the visitors to a single\nRuntime::VisitReflectiveTargets function with a single\nReflectiveTargetVisitor type. This simplifies the code around\nstructural redefinition and ensures that the reflective value holders\nare in charge of the actual replacement.\n\nSupport was also added for walking internal openjdkjvmti references\nfor things like field-read/modification events.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: Ic5fc1db7db0a30f947a1a67259dc024e149ebd57\n"
    },
    {
      "commit": "621afb45075e2fee1024d34d8c6fc0df828dc4a6",
      "tree": "404ed4c98c2130b1d8761511f38d3f4b830ddfd1",
      "parents": [
        "4815e7209ef2558c861036b05a3082d32909b236"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 23 22:01:36 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 26 14:24:43 2019 +0000"
      },
      "message": "Avoid linking libdexfile_support into static executables.\n\nIt doesn\u0027t define -DSTATIC_LIB, so it ends up compiling in dlopen() calls\nthat don\u0027t work in static executables. Use libdexfile_support_static\ninstead, which is intended for this use. That also requires adding a\ncorresponding libdexfiled_support_static.\n\nThis also fixes d/non-d library mixup because libdexfile_{external,support}\nwhich depend on non-d libs were used in libartd_static_defaults.\n\nTest: Build \u0026 boot\nTest: art/test/run-test --chroot /data/local/art-test-chroot --jit --64 --timeout 5 151-OpenFileLimit\n  and check that logcat has signal_dumper output without any fatal error\nBug: 141485154\nChange-Id: I8005373814d73ceefc2891a77204d4ba89abb922\n"
    },
    {
      "commit": "bae88c0759d48acf29b58d960ad2665e3462dfda",
      "tree": "bcb16cb53ef55171875730b27f562fa893cb88f6",
      "parents": [
        "4e8e0a5a2a6b0404a5ecd118e647adcb50c464af"
      ],
      "author": {
        "name": "jaishank",
        "email": "jaishankar.rajendran@intel.com",
        "time": "Tue Jun 11 16:47:45 2019 +0530"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 29 15:45:39 2019 +0000"
      },
      "message": "Supported AVX/AVX2 in art-interpreter\n\nPerformance Impact:\n10-12% Warm Launch Time Performance Improvement in YouTube App\n\nTest: run-test gtest\n\nChange-Id: I103147982a89dd6fc1ef1a271310de5c1804de21\nSigned-off-by: jaishank \u003cjaishankar.rajendran@intel.com\u003e\n"
    },
    {
      "commit": "01ecfa1c31282e12b18df5b2f555898a0c3a2e35",
      "tree": "f3f71be061fb0b411ec9434fb23e0b2a8b787075",
      "parents": [
        "2be4306b7669a5aca3e936c531c5ec370ae98e92"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jul 18 12:57:47 2019 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 26 08:41:54 2019 +0000"
      },
      "message": "Refactor Core Plaform API checking\n\nMove Core Platform API check logic to hidden_api_jni.{h,cc}.\n\nUse libunwindstack for walking stack as builtin isn\u0027t robust without\nframe pointers. This is moderately expensive so we currently walk a\nmaximum of 3 frames.\n\nChecks are now performed by placing ScopedCorePlatformApiCheck\ninstances at potential points of entry via JNI. Specifically, where\nJNI interfaces implement methods for getting field and method ids. The\ncheck is only performed on the outermost instance of the\nScopedCorePlatformApiCheck since only the outer caller is of interest.\n\nState for the checks is stored in the current Thread instance since\nthe JNI interface signatures are fixed and we need a way to be able to\ndetermine whether a ScopedCorePlatformApiCheck is the outermost\ninstance and whether the outmost instance was approved.\n\nTest: build eng build (has checkjni), boot, grep logcat nio/Buffer\nTest: build user build (regular jni), boot, grep logcat nio/Buffer\nBug: 130336799\nBug: 136276414\nChange-Id: If1261046dd57c007bc77b213daaa5f733151123e\n"
    }
  ],
  "next": "4345aacf582a5206976d5bed98ab4abd7b9a8c40"
}
