)]}'
{
  "log": [
    {
      "commit": "e3ca16f035ca100bad8225d5dc2cf9ccd1090a41",
      "tree": "a0a89a9beff32c7e2a357690f98c9be72238592e",
      "parents": [
        "375257870bae0f9fc66f99b69a2b1e519c170c1c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 17 12:41:14 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 17 15:56:46 2021 +0000"
      },
      "message": "Do not use absolute addresses in image test oat files.\n\nWe have not been using oat files with absolute addresses\nfor a long time, except that we forgot to remove code that\ncreates such files for image tests (gtests). Remove that\ncode now as well as related code including code that deals\nwith obsolete `oat_patches` sections.\n\nTest: m test-art-host-gtest\nChange-Id: If3e752f01c453e2a2628ac82c3a990c68047610e\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": "2d53643ca0e05e7c67894aa75eba899acbb9f287",
      "tree": "39299475c04303312f527bc00355bd9fd7a3fad8",
      "parents": [
        "cefebc86af30522bf79d2a89a2bcf96f7f970ecb"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Wed Jul 22 14:33:00 2020 -0700"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Fri Jul 24 00:41:56 2020 +0000"
      },
      "message": "Update language to comply with Android’s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for\nreference\n\nBug: 161896447\nBug: 161850439\nBug: 161336379\nTest: m -j checkbuild cts docs tests\nChange-Id: I32d869c274a5d9a3dac63221e25874fe685d38c4\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": "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": "50928116be503deed341fbc84c0647d5687b12a1",
      "tree": "2ab09470c05eff72860eb8df14dfcc1fba002ec4",
      "parents": [
        "b9c29f625bc27968d80f9eafa988dc14af0a1c28"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 17:06:28 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 25 10:59:19 2019 +0000"
      },
      "message": "Move elf_utils.h to libelffile library as well.\n\nAlso move some of our ART-specific utils form elf.h.\n\nBug: 73344075\nTest: generated oat files on host are identical.\nChange-Id: I587afc30875b9ddb57220fb3d4e764f9bb7a0e25\n"
    },
    {
      "commit": "98ea9d9d82ab078ca10fa7f8e02eddda94cf1d98",
      "tree": "a848b7e41ff227a2d3d4d6795ec11089f39cb6ca",
      "parents": [
        "02338775e33b553be51d44ff60bb1ef8e527bd94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 14:06:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 23 15:19:55 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles runtime.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0\n"
    },
    {
      "commit": "c55bb390d88b8eb62a50932f7f9b47c2a3733f16",
      "tree": "ec2e74f3f8404dffcb9bfde4e7ffa3416a35543d",
      "parents": [
        "89468aeaa6a67ae4025b30d427391186306d6522"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 21 00:02:02 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 18:37:12 2018 -0700"
      },
      "message": "Revert^2 \"ART: Refactor typedef to using\"\n\nThis reverts commit ee07743e03042c2ca36e0c9513847a9e7d2509f1.\n\nReason for revert: fixed attributes.\n\nBug: 32619234\nTest: m test-art-host\nTest: m test-art-target-gtest-unstarted_runtime_test\nChange-Id: I6f0a775adfdf6ecd132b470f7c5446e949872e20\n"
    },
    {
      "commit": "ee07743e03042c2ca36e0c9513847a9e7d2509f1",
      "tree": "66867d7443a3798f6d882ef2715ddeb7baf3e771",
      "parents": [
        "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "message": "Revert \"ART: Refactor typedef to using\"\n\nThis reverts commit 9a20ff06f7ccee08a742c315ec6d351ab56ba1cd.\n\nReason for revert: Attributes on the wrong side.\n\nBug: 32619234\nChange-Id: I8fd2abef619b22c02ccfbf5ae629339f1a60918b\n"
    },
    {
      "commit": "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd",
      "tree": "7e55557e118eb5fffe03ad3456e00d8469a36232",
      "parents": [
        "70dfb6983492aff1c52cc1b52044258aef51f47f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 10:58:18 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 21:56:32 2018 -0700"
      },
      "message": "ART: Refactor typedef to using\n\nAdd clang-tidy\u0027s modernize-use-using.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: If50d37b5152af4270784e3cde7951292a9e19033\n"
    },
    {
      "commit": "c09cd0513b860c4301ca7bd6a9065b583d102295",
      "tree": "1c7aa4ed2b9b5b1335829461e764c94565afb71d",
      "parents": [
        "40f8a74cba008af768316f0b5bfe9502174b6d02"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 23 16:36:36 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 31 11:50:53 2018 +0100"
      },
      "message": "Reserve boot image memory in one go.\n\nLoad boot image components into the reserved memory.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 77856493\nChange-Id: I214f947979bc0bbfc6df4312527504e90b88a01d\n"
    },
    {
      "commit": "f6985bd84b27b25e2c2ae1b865a4f28a0ccd578b",
      "tree": "5ec94a773e2c7e19842b1f2de02baf4343aff6c9",
      "parents": [
        "19759b28bc9dad1581c207d76227eb74fc8eebcb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:02:28 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:40:56 2018 +0100"
      },
      "message": "Add an overload for MemMap::MapAnonymous().\n\nAdd an overload that does not take `reuse` or `use_ashmem`\nparameters but uses default values (`reuse \u003d false` and\n`use_ashmem \u003d true`) to simplify callers.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Iaa44f770dee7e043c3a1d6867dfb0416dec83b25\n"
    },
    {
      "commit": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "c3e1895e7443c61b77f5c51cd2d18819cade57c1",
      "tree": "bc2705ee47091e37d683cafa020f53190708b089",
      "parents": [
        "6623bc389c43efc87668ce7465e19b195e765e22"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri May 11 16:59:31 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri May 11 17:40:56 2018 -0700"
      },
      "message": "Prepare to move ArtDexFileLoader to libdexfile\n\nMove file_utils and friends to libartbase so that ArtDexFileLoader can\nbe moved to libdexfile.  This will clean up duplication and complexity\nwith zip file handling.\n\nBug: 78652467\nTest: make -j 40 test-art-host-gtest\nChange-Id: Ia5eac1f93caf3fa918b4b48803cbfd842035e29e\n"
    },
    {
      "commit": "c431b9dc4b23cc950eb313695258df5d89f53b22",
      "tree": "422273559c3ae52caff0c6b1cf1a62a8312f0e26",
      "parents": [
        "f46f46cf5bd32788d5252b7107628a66594a5e98"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 02 12:01:51 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 05 13:58:20 2018 -0800"
      },
      "message": "Move most of runtime/base to libartbase/base\n\nEnforce the layering that code in runtime/base should not depend on\nruntime by separating it into libartbase.  Some of the code in\nruntime/base depends on the Runtime class, so it cannot be moved yet.\nAlso, some of the tests depend on CommonRuntimeTest, which itself needs\nto be factored (in a subsequent CL).\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host\n\nChange-Id: I8b096c1e2542f829eb456b4b057c71421b77d7e2\n"
    },
    {
      "commit": "67bf42e89592c3a1c648f927f2ce3ccb189a1161",
      "tree": "054d5b7adf7cc62d4d2a2118a70c0fbdd1751610",
      "parents": [
        "d961043ff1dd6fddb68aa90c1f939cfafec24219"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 26 16:43:04 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 28 15:08:21 2018 -0800"
      },
      "message": "Header library to remove dependence on runtime/\n\nAdd a new header library to remove libdexfile and others\u0027 dependence on\nruntime (typically runtime/base) includes in libdexfile.  Also a small step\nto tease dexlayout and profman away from relying on these as well.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host-gtest\n\nChange-Id: I38e2fe399a75f4bc6318c77a71954c00ea73ec2b\n"
    },
    {
      "commit": "57943810cfc789da890d73621741729da5feaaf8",
      "tree": "367677a982a45af98ffe3e79543615875e8550b4",
      "parents": [
        "d5153627778e71ef68b510ce03c77467fa4d85bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 06 21:39:13 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 16:26:11 2017 -0800"
      },
      "message": "ART: Replace base/logging with android-base/logging\n\nReplace wherever possible. ART\u0027s base/logging is now mainly VLOG\nand initialization code that is unnecessary to pull in and makes\nchanges to verbose logging more painful than they have to be.\n\nTest: m test-art-host\nChange-Id: I3e3a4672ba5b621e57590a526c7d1c8b749e4f6e\n"
    },
    {
      "commit": "e16c3bf54c0667a60d681f7df59ba22bcffa3774",
      "tree": "903e7f2391472a4b3972dca65332baaae039de3a",
      "parents": [
        "60b2489f32e514326471fd226f461ef86985d8fa"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed May 24 09:12:32 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu May 25 16:28:57 2017 +0000"
      },
      "message": "Remove segfault.\n\nTest: (sanity) boot device internally\nTest: m -j test-art-host\nChange-Id: Ida4f5ac506268af4b0a95ffad10438496340f094\n"
    },
    {
      "commit": "0dfc315a096bf5678cb5182771e3fdcca8ea4433",
      "tree": "ac04fef45e7d002734d3d79b9ab9a128cb5dc263",
      "parents": [
        "291ce17ada5a126be99f0fc069a028d2100bcf9e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 24 07:58:06 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 24 14:18:45 2017 -0700"
      },
      "message": "ART: More header cleanup - mem_map.h\n\nMove MemMap maps_ into cc file and move allocator include. Remove\nother unused includes. Force clients to import sys/mman.h if they\nneed it. Try to lower dependencies on ART by using libbase helpers\nmore.\n\nTest: mmma art\nChange-Id: I8f31e5f371789b3d72e12af377181fee2ac9a611\n"
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\n"
    },
    {
      "commit": "9186ced255f2e7402646b5b286deebb540640734",
      "tree": "833c25fd3bbb47749265947705b4fc0f0c1ba796",
      "parents": [
        "aa2657d6d9dda2e44c6452e5f5901db78ef9b3cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 12 14:28:21 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 13 11:43:48 2016 -0800"
      },
      "message": "ART: Clean up utils.h\n\nRemove functionality provided by libbase. Move some single-use\nfunctions to their respective users.\n\nTest: m test-art-host\nChange-Id: I75594035fa975200d638cc29bb9f31bc6e6cb29f\n"
    },
    {
      "commit": "f5b0f2cef8554efaa90adc6a1ae04c2b533970ed",
      "tree": "431874a41548ba5d18598a5b1b520de042e012a9",
      "parents": [
        "4c91f05a9ad59759760fb8c1543684dfdb9ab7dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 14 01:04:26 2016 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 14 16:52:42 2016 -0700"
      },
      "message": "Ensure OpenDexFilesFromImage closes file to prevent file descriptor leak\n\n(cherry picked from commit 645e477c2ce7a59ac98bc86463826cf082a13ad8)\n\nTest: m -j32 test-art-host\nBug: 32095919\nChange-Id: I44541edeb403a508e1b9794ee09fb1f55e3f42bf\n"
    },
    {
      "commit": "24ec0285c8c926c27e64e74ba0056e9cfdafd23d",
      "tree": "849c6a03b5718a40282cf07b2d104515d2594294",
      "parents": [
        "cc4c1686a1e7125ec8b64341e573cc0959936dd3"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 17 21:32:45 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 18 15:26:10 2016 -0700"
      },
      "message": "Add patchoat check that input oat file has patch section.\n\nDo this check before opening the output file in case this could be\ncausing the file to become truncated.\n\nBug: 27723864\n\n(cherry-picked from commit 99503b9805def2ed7d4fe4bf285c6fdd8ddce6ed)\n\nChange-Id: I2134ec65fb6d9582f4eb4c2619a5ffb7b987eaa6\n"
    },
    {
      "commit": "bcb6a72569a1401b36a3ad3b6aa4d13e29966cf0",
      "tree": "75f7f56b3d158b14f20cfc30e30fb3e48ed9327f",
      "parents": [
        "3a1b33df0df7db2b8685f8616b9240accd6a23c5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 08 16:49:58 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 14 15:41:49 2016 -0700"
      },
      "message": "Add oatdump support for app images\n\nExample usage on host:\noatdumpd --app-oat\u003dart/plus32.odex --app-image\u003dart/plus32.art\n--image\u003dart/oats/system@framework@boot.art --instruction-set\u003darm\n\nTODO: Add to oatdump test.\n\nBug: 27408512\nBug: 22858531\n\nChange-Id: I320db8b76c780c6eadabcb45ce88f45950741484\n"
    },
    {
      "commit": "5d55d9ac7fc2fbdbdda49777d83fd4fa8303da28",
      "tree": "93595679f16437c1af60d767305e67102787af4d",
      "parents": [
        "ae6f23c83e1c8dcfbc4f74186ea1a37f1044414b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 11 15:25:22 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 11 15:25:22 2016 +0000"
      },
      "message": "Remove ElfFile::GdbJITSupport\n\nThis method notified gdb about loaded ELF file.\nSince we use dlopen to load the ELF file now, it should not be needed.\n\nNote that the method had nothing to do with JIT compiler.\n\nChange-Id: I967495c39e42112023a495ce5fac25b97669d1d5\n"
    },
    {
      "commit": "67feb1701277cd90be15f86c7633752721408b57",
      "tree": "df5bb8577f29abfb5a10849026f87bf6b5361783",
      "parents": [
        "2dbab9548b538cdb647e5819f7f93d43ae67116a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 17 19:57:44 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 17 21:24:39 2015 +0000"
      },
      "message": "Move JIT debugger interface code to its own file.\n\nChange-Id: Ie788daa8caf60f2f0f93484681a8a9fcce61c23f\n"
    },
    {
      "commit": "42bddcec51e71d206f6d3b30a881ee6c1d50a63c",
      "tree": "2035b4dd7dcbefbe83c04d41987e520eeb8798f0",
      "parents": [
        "78232f2482e71fef255796633da68bb769baa93a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 15:16:56 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 17:18:58 2015 -0800"
      },
      "message": "Add low_4gb support to MapFile and MapFileAtAddress\n\nMotivation is to use this for loading app images in low 4GB at a\nnon fixed address.\n\nAdded test.\n\nBug: 22858531\nChange-Id: I0f79a4a7bfbfbdfc112e41b25c8682b1fb932ab7\n"
    },
    {
      "commit": "0eb76d2603a52d3e8759fcf480586886d70433d1",
      "tree": "8d38a89d6de7be77c437c9df12bf646b793ba639",
      "parents": [
        "4500fcbe682d666a24c2e8f6e0cb90cfb35d3fa3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 11 18:03:47 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 14 19:34:57 2015 +0000"
      },
      "message": "Make patchoat match offset when given a patched image\n\nPreviously if we gave patchoat a patched image and a already patched\n(but improperly relocated) oat file it would not correctly patch the\noat file to the same offset as the image.\n\nBug: 22599792\nBug: 23119724\nChange-Id: I8773022bd75c2e0b7eb529893b147cbd8792bcad\n"
    },
    {
      "commit": "f8980875ef8fb0ce86be4ed2c0af7070f5ae9cfd",
      "tree": "9750cf170ec12bbd0638c5e373a35fe832999173",
      "parents": [
        "eabafcefca8ead8309dccc1c5510e6e0845e471d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 22 17:04:47 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 27 01:44:02 2015 +0100"
      },
      "message": "Split .oat_patches to multiple sections.\n\n.oat_patches section currently contains encoded patch locations for\nseveral other sections. Split it to several sections - one for each\nof the destination sections. For example, .text.oat_patches section\ncontains patch locations for the .text section.\n\nThis ensures that if we strip some the sections using standard\ntools, we strip the corresponding .oat_patches section as well.\n\nIt also makes the overall design simpler.\nI should have done it this way in the first place.\n\nSince ApplyOatPatches has been simplified and uses unaligned memory\naccess, this also fixes bug 21403573.\n\nBug:20556771\nBug:21403573\nChange-Id: Iae7c423911507b524eec500e8d61744046fcd3ba\n"
    },
    {
      "commit": "ad5fa8c5b26a325dc2a9521b87188755046c17f3",
      "tree": "1be28a827fe9e186196ad744eaa3438c1bea3f0a",
      "parents": [
        "cfee0507f26375fe048ed35f402e61f904db0095"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 06 18:27:35 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 19 15:36:53 2015 +0100"
      },
      "message": "Support generation of CFI in .debug_frame format.\n\n.debug_frame section is almost identical to .eh_frame section.\nThere are only minor differences in the CIE and FDE headers.\nThe main difference is that .eh_frame is intended to be used\nat runtime for exception handling and is therefore allocated\nwithin the running program whereas .debug_frame is not.\n\nThis makes .debug_frame easier to remove using standard tools.\n\"objcopy --strip-debug\" removes .debug_frame, but not .eh_frame.\n(although objcopy can be still be forced to remove .eh_frame)\n\nSimilarly, we might want to separate the CFI to separate debug\nfile or include it as compressed .gnu_debugdata section.\nIt is more appropriate to use .debug_frame for this purpose.\n\nBug:20556771\nChange-Id: I9d91a333b9fb37523fd6fafccfad89b21d2477af\n"
    },
    {
      "commit": "3fc9903407c6e89ffbbc92ded9e272d9de58e9b6",
      "tree": "ae8898200f09c4015ecc7d920711dd1053834e94",
      "parents": [
        "c3912c8a2db109a15603554fd456f56cd0a69ad0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 13 19:06:30 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 14 13:34:08 2015 +0100"
      },
      "message": "ART: Do not relocate app program headers in patchoat.\n\nChange the check whether to relocate program headers in\npatchoat to simply look whether there is a PT_LOAD section\nwith p_vaddr \u003d\u003d 0. If there is, don\u0027t relocate the headers,\nit should be an app. Otherwise, it\u0027s a boot image and needs\nto be relocated.\n\nAdd overflow checking to ElfFileImpl\u003c\u003e::GetLoadedSize().\n\nBug: 21047854\nChange-Id: Ie6737f338687296b6dbf4bb3b36358501dfb1587\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "533c207f9d2da6d913c4b10f6f757fe9d6367b10",
      "tree": "1e2c1bf5c91898e785398a3d66e7e7570e8b29db",
      "parents": [
        "8d1ba74fe48703fc2b5a5920dd5eea0c65db5b15"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 22 12:20:22 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 22 16:56:23 2015 +0100"
      },
      "message": "Simplify template parameters of Elf classes.\n\nThe ELF specification defines several types which differ between\n32-bit ELF and 64-bit ELF.  We used to template all ELF-related\nmethods on all of those types which was very verbose.\n\nThis CL wraps all the types as typedefs in ElfTypes32 and ElfTypes64.\nOne of those wrappers is then used as the template parameter.\n\nChange-Id: I65247c2c79d92a7c4799e988cf3e4a1b10eb4788\n"
    },
    {
      "commit": "527c9c71f0c6e2f9943ac028e7c050500699a44b",
      "tree": "09e6794e5b184ce33ca468c972a8ef2faff7f174",
      "parents": [
        "e7bee3b7d307508243f4a00b5cf8a8867fcaaff5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 17 21:14:10 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 21 19:47:42 2015 +0100"
      },
      "message": "Generate .eh_frame_hdr section and PT_GNU_EH_FRAME segment.\n\nFixes issue 20125400 - ART: Need .eh_frame_hdr and PT_GNU_EH_FRAME\nfor libunwind.\n\n.eh_frame_hdr serves two purposes. Firstly, it can optionally contain\nbinary search table for fast eh_frame lookup. This is important for\nC++ exception handling, but we do not need it so we omit it.\nSecondly, it contains a relative .eh_frame pointer which makes it\neasier for run-time code to locate the .eh_frame section.\nlibunwind seems to rely on this relative pointer.\n\nBug: 20125400\nChange-Id: I7c1e3f68d914f70781404c508395831a3296a7da\n"
    },
    {
      "commit": "2f6cdb01f74772c1c521a125776ef57ea3c73d43",
      "tree": "163f90841f02b9529997f4e3eea65e512e4795a3",
      "parents": [
        "58565098b2298041ccc97371a3cc486df88d51b3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Apr 11 00:17:53 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Apr 11 19:14:10 2015 +0100"
      },
      "message": "Relocate DWARF using .oat_patches.\n\nThe current solution is to hard-code knowledge of DWARF in the linker.\nThis works for simple use of DWARF, but breaks as soon as I try to do\nanything more complex.  Making the linker fully support DWARF would be\nnon-trivial task and would be essentially rewrite.  Using .oat_patches\nis much easier solution.\n\nRelocating .debug_* sections required extending .oat_patches to support\nmore sections than just .text.  I have encoded each section as\nnull-terminated section name followed by ULEB128 deltas.\n\nThe ULEB128 encoding shrinks .oat_patches for .text by factor of\nabout 6 with 64-bit compiler, and factor of 3 with 32-bit compiler.\n\nOn the other hand, it grows by the extra .oat_patches for DWARF which\nwere not present before (if debug symbols are included).\n\nOverall, it is still a clear improvement even with the DWARF patches.\n\nChange-Id: I78ffeda0f8a3da03341995a3b5ef15c954e16e9f\n"
    },
    {
      "commit": "3c54b0023fca579aae006dfa607fb14de5846c42",
      "tree": "7b996231875fdfd54855a9aa86fe2494cdee1ec5",
      "parents": [
        "425ee0e1103b52bb72132df64f503725d1a15300"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 16:09:30 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 16:43:08 2015 -0700"
      },
      "message": "ART: Fix 64-bit ELF file support\n\nThe API wasn\u0027t cross-compile-safe, 32-bit patchoat would fail for\nnegative delta applied to a 64-bit ELF file.\n\nAdd 64-bit ELF file output to the compilers, behind a flag, currently\noff by default (preserving current behavior).\n\nBug: 20095017\nChange-Id: I2cde7b4c7cc83413c76692d7b745868d644a604c\n"
    },
    {
      "commit": "6f7158927fee233255f8e96719c374694b10cad3",
      "tree": "518cef41f4cd9c3119879eb463aa4b67af5f6ff8",
      "parents": [
        "ef3456f872539df65c4c88ca346713f74366d803"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 30 14:21:42 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 01 12:57:10 2015 +0100"
      },
      "message": "Write .debug_line section using the new DWARF library.\n\nAlso simplify dex to java mapping and handle mapping\nin prologues and epilogues.\n\nChange-Id: I410f06024580f2a8788f2c93fe9bca132805029a\n"
    },
    {
      "commit": "5c42c29b89286e5efa4a4613132b09051ce5945b",
      "tree": "5db25a4f62c5583f2f6fc42b9a2ff47362eeed5c",
      "parents": [
        "242026e246a8b9efe098a0cce008fd525e011e5b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 25 12:02:49 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 02 18:07:03 2015 +0000"
      },
      "message": "Add support for .bss section in oat files.\n\nChange-Id: I779b80b8139d9afdc28373f8c68edff5df7726ce\n"
    },
    {
      "commit": "6f6114140fbc09c5c7bec441922412635a7f7ff1",
      "tree": "4da7b68fddff767b668ffc4faeadb632ae310165",
      "parents": [
        "3cfbb4aff30f32e49b3b57c7483ee0b5cb580e7b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 21 22:25:24 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 21 22:25:24 2015 -0800"
      },
      "message": "ART: Refactor common ELF-\u003eInstructionSet code\n\nMove code into instruction_set.h/cc.\n\nChange-Id: I34d5c82791042c68629df84e0f4b9321231d51b9\n"
    },
    {
      "commit": "57b34294758e9c00993913ebe43c7ee4698a5cc6",
      "tree": "981821619027686f83fbe00445299b0522f1df05",
      "parents": [
        "4945bfef00ac446d9c5458e55500229d463ab4c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 14 15:45:59 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 11:32:48 2015 -0800"
      },
      "message": "ART: Allow to compile interpret-only mips64 files\n\nInclude enough infrastructure to allow cross-compiling for mips64,\ninterpret-only. This includes the instruction-set-features, frame\nsize info and utils assembler.\n\nAlso add a disassembler for oatdump, and support in patchoat.\n\nNote: the runtime cannot run mips64, yet.\n\nChange-Id: Id106581fa76b478984741c62a8a03be0f370d992\n"
    },
    {
      "commit": "c5a3ea7522b59c18daa4325d69703a6f7f743378",
      "tree": "22aced955bae73c2f032e7cd0fc970218a908419",
      "parents": [
        "d277efe59cc922f6070056dc130e29281cc4955a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 16:41:53 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 20:19:56 2015 -0800"
      },
      "message": "ART: Introduce Mips32 R6\n\nAdd an instruction-set feature for Mips R6. Currently restricted\nto the interpreter.\n\nChange-Id: Ic6d888e135bc87340229a0543dd94d0c1e863edd\n"
    },
    {
      "commit": "a696c0a27f9b9cdf68ac17bdb4e29ac1f798ac32",
      "tree": "9d5ced102fd0848f0b5283b6a613724dfd1abc6a",
      "parents": [
        "86ff0892aae3b13a105ce2fd58c39591f315c049"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 10 20:51:45 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 11 10:58:38 2014 -0800"
      },
      "message": "ART: More ELF and oat file safety measures\n\nIn an ELF file, look for a shstrtab section when loading in\nprogram-header-only mode. If the section is outside the file size,\nit strongly indicates a broken compile.\n\nWhen compiling oat files in the class linker, explicitly unlink\non failure. This should catch cases when dex2oat is killed or\ncrashes and doesn\u0027t have a chance to delete its (partial) output.\n\nBug: 15567083\n\n(cherry picked from commit ad00fed942a9a04cf3f46784bbd04a5f00dd4ab8)\n\nChange-Id: Ia0c75f151d91c6f26a71696967255d6d409ca882\n"
    },
    {
      "commit": "acb01387a9863654924891e1d1dfea274f1c9028",
      "tree": "cbfe1417d6364e0e732b58d1e9fb88f28487ea2e",
      "parents": [
        "c6c88d2079f0d47eb86a2e2e2f53cab25b0503c1"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Mon Nov 24 13:40:56 2014 +0600"
      },
      "committer": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Mon Nov 24 13:40:56 2014 +0600"
      },
      "message": "ART: ELF symbol table lookup is fixed\n\nELF loader could not find some symbols in the OAT\u0027s symbol table\n(e.g. oatdata, oatexec).\n\nThere was a bug in the symbol hash table lookup: if a valid index of\na chain got greater or equal than the number of hash buckets then\nthe chain was cut off.\n\nThe fix is to compare the chain index with the chains array length\nrather than with the number of buckets.\n\nChange-Id: I20940957c3045913fd426031a51314d4f87ac1bd\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "d582fa4ea62083a7598dded5b82dc2198b3daac7",
      "tree": "c76704c266ef4687eab425612ddf3fd24f93fe8d",
      "parents": [
        "f20076ff813b8012096ff31af236d59db3c0f4e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 05 23:46:43 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 16:17:46 2014 -0800"
      },
      "message": "Instruction set features for ARM64, MIPS and X86.\n\nAlso, refactor how feature strings are handled so they are additive or\nsubtractive.\nMake MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler\nrather than #ifdefs that wouldn\u0027t have worked in cross-compilation.\nAdd SIMD features for x86/x86-64 proposed in:\n  https://android-review.googlesource.com/#/c/112370/\n\nBug: 18056890\n\nChange-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "46774767fcf7780d1455e755729198648d08742e",
      "tree": "09a5d87ff0acbc7eb1fa94ec901ba10009178f03",
      "parents": [
        "11bd683f6dbebe2f3d02fa383fc9dbc69a83ace8"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 22 11:37:02 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Oct 27 20:19:37 2014 -0700"
      },
      "message": "ART: Add support for patching and loading OAT files compiled with PIC\n\n* Images (.art) compiled with pic now have a new field added.\n* isDexOptNeeded will now skip patch-ing for apps compiled PIC\n* First-boot patching now only copies boot.art, boot.oat is linked\n\nAs a result, all system preopted dex files (with --compile-pic) no\nlonger take up any space in /data/dalvik-cache/\u003cisa\u003e.\n\nBug: 18035729\nChange-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62\n"
    },
    {
      "commit": "d4c4d953035d4418126d36517e402f411d6a87f3",
      "tree": "735aacf812bbac7c1ae7c0788c1ca6f58cfa82ee",
      "parents": [
        "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 20:31:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 21:30:37 2014 -0700"
      },
      "message": "Some code clean-up.\n\nChange-Id: I4b745fd5298cd61c793e3b57514b48347bd66c0e\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "62d1ca3182a6cbb921799825f43ad36821233fd7",
      "tree": "54d9663f5ce10f41e95fe774d4e4841c1a78bbc3",
      "parents": [
        "63462448ca4e377074a10a4720aa22f71154dbe9"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Wed Sep 03 17:24:56 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Oct 03 11:25:11 2014 -0700"
      },
      "message": "ART: Prepare for ELF64.\n\nOnly expose necessary interface in ElfFile, and move all details into template class ElfFileImpl.\n\nChange-Id: I9df2bbc55f32ba0ba91f4f3d5d0009e84a2ddf74\n"
    },
    {
      "commit": "daab38ca60c5b91787e29c87a161a2bb8c1b6f11",
      "tree": "0b155557e516ec1ff571c359af904e00d31d0c43",
      "parents": [
        "d2e5a6934ca1a07c9e1e87d3d0b21b63e1011934"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 12 18:38:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 22:34:11 2014 -0700"
      },
      "message": "ART: Make elf loading not abort\n\nChanges elf_file code to use less CHECKs and instead return error\nvalues (usually nullptr). This avoids aborts.\n\nIn oat_file, when loading an oat file fails, try to unlink at. If\nthis succeeds, on the next run we may compile again.\n\nBug: 17491333\n\n(cherry picked from commit afa6b8e93a0dc0de33c9d404945c7c5621e20b1a)\n\nChange-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af\n"
    },
    {
      "commit": "c48b20611eea4d29361e83b2bcbe65eae6a655a3",
      "tree": "dd5a75a89e3b55cacb81e560077de155cf5ddbe2",
      "parents": [
        "cf254a2fcf69bdd032e4f2726fc1bd751544b0b6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 08 23:39:45 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 09 01:21:14 2014 -0700"
      },
      "message": "ART: Better error reporting on broken oat file\n\nDo not blow up when in GetHashBucket if GetHashBucketNum is zero.\nInstead back-step to ElfFileOpen, which prints which symbol was\nmissing from which file.\n\nBug: 17422404\n\n(cherry picked from commit 1b2140c9bf46388e4f59ecf3d62d99cd78fed12c)\n\nChange-Id: I3b890dd1c31c08b1ccc0f7f668afcceee95f8d00\n"
    },
    {
      "commit": "e3ea83811d47152c00abea24a9b420651a33b496",
      "tree": "dd3b8018176ada85d51b2f8ca46e515fbf55b50f",
      "parents": [
        "9dcf75c80187504ec88e7ef91d64a6a68279eb9d"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Fri Aug 08 16:29:38 2014 +0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Aug 15 15:04:12 2014 -0700"
      },
      "message": "ART source line debug info in OAT files\n\nOAT files have source line information enough for ART runtime needs like\njump to/from interpreter and thread suspension. But this information\nis not enough for finer grained source level debugging and low-level\nprofiling (VTune or perf).\n\nThis patch adds to OAT files two additional sections:\n.debug_line - DWARF formatted Elf32 section with detailed source line\n              information (mapping from native PC to Java source lines).\n\nIn addition to the debugging symbols added using the dex2oat option\n--include-debug-symbols, the source line information is added to\nthe section .debug_line.\n\nThe source line info can be read by many Elf reading tools like objdump,\nreadelf, dwarfdump, gdb, perf, VTune, ...\n\ngdb can use this debug line information in x86. In 64-bit mode\nthe information can be used if the oat file is mapped in the lower\naddress space (address has higher 32 bits zeroed). Relocation works.\n\nTesting:\n1. art/test/run-test --host --gdb [--64] 001-HelloWorld\n2. in gdb: break Main.java:19\n3. in gdb: break Runtime.java:111\n4. in gdb: run  - stops at void java.lang.Runtime.\u003cinit\u003e()\n5. in gdb: backtrace  - shows call stack down to main()\n6. in gdb: continue - stops at void Main.main() (only in 32-bit mode)\n7. in gdb: backtrace  - shows call stack down to main()\n8. objdump -W \u003coat-file\u003e - addresses are from VMA range of .text\n   section reported by objdump -h \u003cfile\u003e\n9. dwarfdump -ka \u003coat-file\u003e - no errors expected\n\nSize of aosp-x86-eng boot.oat increased by 11% from 80.5Mb to 89.2Mb\nwith two sections added .debug_line (7.2Mb) and .rel.debug (1.5Mb).\n\nChange-Id: Ib8828832686e49782a63d5529008ff4814ed9cda\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "d338ae0144c1727f22e818200ea68dbf311595de",
      "tree": "6889bd4c1dc2c219ab288593565aa4b8e5d4f37a",
      "parents": [
        "826f1038187e00399a8c6e0044ad0ea29c0ba000"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Aug 13 17:15:38 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 15 09:51:17 2014 -0700"
      },
      "message": "Make gdb fixup work with multiple DWARF Compilation Units\n\nChange-Id: I83042362fc199ca48c8452230709a377e52a2cf5\n"
    },
    {
      "commit": "a62a588a9202f69e53fbeb3045ea8ea5ec2587f8",
      "tree": "afbbcca1eaa59d40fa94db6babeb2ea909777357",
      "parents": [
        "b5c5646b5ffd3d451af5e8d52b50743bf61d4c40"
      ],
      "author": {
        "name": "Jim_Guo",
        "email": "jim_guo@htc.com",
        "time": "Mon Apr 28 11:11:57 2014 +0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 04 22:27:52 2014 -0700"
      },
      "message": "ART: Fix memory unmapped twice issue in ElfFile::Load(bool)\n\nRoot Cause:\n  The overlapped memory region will be unmapped by\n  (1) ~MemMap() of reservation MemMap (reserve) and\n  (2) ~MemMap() of \"reuse\" MemMap (segment).\n  Someone takes the memory region after (1) and it will be unmapped in (2).\n  So, SIGSEGV occurs when using the unmapped memory region.\n\nSolution:\n  Fixes this issue by skip unmap \"reuse\" MemMap in destructor.\n  And always create reservation MemMap before \"reuse\" MemMap. (It also solved\n  the fixupELF case which does not reserve the whole needed memory region).\n\nBug: 16486685\nChange-Id: I8f2538861d5c3fa7b9a04d2c3f516319cc060291\n"
    },
    {
      "commit": "35e1e6ad4b50f1adbe9f93fe467766f042491896",
      "tree": "054e8fe1140fc1144ececa8ad8beda18be9566a2",
      "parents": [
        "01a0ebb6b96c32879dcad99d515fc0cd8de2a266"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Wed Jul 30 09:31:22 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Wed Jul 30 20:19:26 2014 +0000"
      },
      "message": "1. Fix CFI for quick compiled code in x86 \u0026 x86_64;\n2. Emit CFI in .eh_frame instead of .debug_frame.\n\nWith CFI, we can correctly unwind past quick generated code.\nNow gdb should unwind to main() for both x86 \u0026 x86_64 host-side ART.\n\nNote that it does not work with relocation yet.\n\nTesting:\n1. art/test/run-test --host --gdb [--64] --no-relocate 005\n2. In gdb, run \u0027b art_quick_invoke_stub\u0027, then \u0027r\u0027, then \u0027c\u0027 a few times\n3. In gdb, run \u0027bt\u0027. You should see stack frames down to main()\n\nChange-Id: I5350d4097dc3d360a60cb17c94f1d02b99bc58bb\n"
    },
    {
      "commit": "53cb16b98acf3cf6f3a1e2204ad4958ecf1b5a3c",
      "tree": "c0129ef3de7148dc6a114449b4f751a560283eb0",
      "parents": [
        "ae2efea4582df773f80be274bdc754f732b07df3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jun 12 11:26:29 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 07 15:19:58 2014 -0700"
      },
      "message": "Add patchoat tool to Art.\n\nAdd a new executable called patchoat to art. This tool takes already\ncompiled images and oat files and changes their base address, acting as\na cheap form of relocation.\n\nAdd a --include-patch-information flag to dex2oat and code to add\nrequired patch information to oat files created with the quick compiler.\n\nBug: 15358152\n\nChange-Id: Ie0c580db45bb14ec180deb84930def6c3628d97d\n"
    },
    {
      "commit": "3470ab4011b5e18d590d5375e2f13a1e3bd69222",
      "tree": "79efa1be55a16a43447f7373f0aa8722828204d5",
      "parents": [
        "baa1323d66a05fd2d7b9c6c131b232945b0a4ebb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 18 10:35:45 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jun 27 16:46:29 2014 -0700"
      },
      "message": "Fixed gdb support and added some ElfFile functions\n\nFixed gdb support so that it would continue working even when debug\nsymbols or other sections are included in the elf file. Also made it\nactually read parts of the DWARF information so it should work even if\nthere are minor changes to how and where DWARF information is written\nout.\n\nAdded a dwarf.h file with the dwarf constants.\n\nAdded a FindSectionByName function, a FindDynamicSymbol function, and\nthe ability to specify the mmap protection and flags directly if we are\nmapping in the whole file.\n\nModified elf_writer_quick.cc to use the dwarf constants from dwarf.h.\n\nChange-Id: I09e15c425fab252b331a2e4719863552e8b6b137\n"
    },
    {
      "commit": "576ca0cd692c0b6ae70e776de91015b8ff000a08",
      "tree": "de632fae7ee9f096e7a2c54a7fcdace8f6ae7106",
      "parents": [
        "e21bf0099117b82963cdf7f95a1b8dabfcf29397"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 06 15:58:22 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 06 16:27:45 2014 -0700"
      },
      "message": "Reduce header files including header files.\n\nMain focus is getting heap.h out of runtime.h.\n\nChange-Id: I8d13dce8512816db2820a27b24f5866cc871a04b\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "91268c1afd6c0d4fad55b7c86d907233d4660205",
      "tree": "618c0488c3ced26275e7117a6c8dddedcbc835a1",
      "parents": [
        "e5893f8fb70c58fe9950c1fc8b1023e32ca34637"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 03 17:50:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 04 22:06:33 2014 +0000"
      },
      "message": "Check the machine type of an ELF file when loading.\n\nThis ensures that we reject wrong target ELF files,\nand should result in a recompile for the right\ntarget.\n\nChange-Id: I898dddc4f2bb9b1607a7436083d0ba7619b6007b"
    },
    {
      "commit": "4fb5df8453367aa3f160ac230c03a7a98a28e562",
      "tree": "069df39819c0f7e8f6f0d4af8569d8a06dafdaf9",
      "parents": [
        "b6825e67ea7b85a910258713910a443cfec747e4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 13 15:10:27 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 14 15:17:32 2014 -0700"
      },
      "message": "Make MemMap::MapAnonymous() fail if the requested address is not available.\n\nChange MapAnonymous() so that a requested address vs. actual map\naddress mismatch will cause a failure. The existing MapAnonymous()\ncall sites do not check this. This should prevent potential rare case\nbugs where mmap does not happen to map a region at an specified\naddress.\n\nThere\u0027s a potential bug that if MapAnonymous() does not guarantee the\nrequested address (and there\u0027s a gap between the image/oat files and\nthe zygote/malloc space), then GC could in theory allocate a large\nobject space in the gap. This would break the GC notion of the immune\nspace. This change will prevent this by causing all non-moving spaces\nto be (really) adjacent, with no gaps in between, which CL 87711\nmissed.\n\nChange-Id: Id4adb0e30adbad497334d7e00def4c0c66b15719\n"
    },
    {
      "commit": "1a5706611bffa5d6ed6843ee5e320f504590e097",
      "tree": "56aca131dbb86ce5c757baa61cf47968d978f14f",
      "parents": [
        "37d4c1db4d705f5a28001f65afdd68d0527948d8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 12 01:02:21 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 12 01:02:21 2014 -0700"
      },
      "message": "A few 64bit fixes.\n\nChange-Id: I1fe189d638b9cb5127b897da6cecdad6902db930\n"
    },
    {
      "commit": "a7f198cd77fe420d65fde3b80e0d84b043b65bc4",
      "tree": "e345f6830d47761f608e17fc8a05e95044b50f62",
      "parents": [
        "0307b5c91c287e08cd414ecc5de32befceb7e371"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 10 11:12:54 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 10 11:12:54 2014 +0000"
      },
      "message": "Add includes to fix gcc 4.7 build.\n\nChange-Id: Idf84f156047270b81c5d10a55a3a1c96b415cddc\n"
    },
    {
      "commit": "6243e0e5ae78acfa10a197d727db96c8a7f27622",
      "tree": "f31cd4187a69176fd278bdb3ab9cb56a80755df4",
      "parents": [
        "06c09f6d79e037ee00113d6289ef98226680797d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 03 13:33:48 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 03 16:27:28 2014 -0800"
      },
      "message": "GDB JIT support: move .text segment check earlier\n\nIf the file is to be purely interpreted, the .text segment will be of\nzero length and won\u0027t get a segment mapped. Currently this will cause a\ncheck failure, but we should just exit if the GDB JIT support cannot be\nenabled.\n\nChange-Id: Iea3834ee5c1313837ebcbe3b58ecd2dc924c1b1e\n"
    },
    {
      "commit": "3d3f249a63b54503b2babda69c0a50077f35a743",
      "tree": "890b38da728dd01acbba81ffd02d0de84d1120dd",
      "parents": [
        "24f11dca5b69a5b9ca976617e3da1186c959d250"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 13:49:09 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 21:56:14 2014 +0000"
      },
      "message": "Fix 64-bit build\n\nChange-Id: I14b84424f804120edf11f3d9b2bb2b9e497b429f\n"
    },
    {
      "commit": "ae9fd93c39a341e2dffe15c61cc7d9e841fa92c4",
      "tree": "e5f70dc307945fd510660ebde1fd259aecdf66a1",
      "parents": [
        "9fab32265f35c808b216210a8d5bebd931279041"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Feb 10 16:14:35 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 02 11:57:10 2014 -0800"
      },
      "message": "Tell GDB about Quick ART generated code\n\nThis is actually a lot of work.  To do this, we need:\n.debug_info\n.debug_abbrev\n.debug_frame\n.debug_str\n\nThese are generated into the OAT file by OatWriter and ElfWriterQuick.\n\nSince the Quick ART runtime doesn\u0027t use dlopen to load the OAT files,\nGDB can\u0027t find this information.  Use the alternate GDB JIT interface,\nwhich can be invoked at runtime. To use this interface, an ELF image\nneeds to be built in memory.  Read the information from the OAT file,\nfixup the addresses to point to the real locations, add a symbol table\nto hold the .text symbol, and then let GDB know about the information,\nwhich will be read from the runtime address space.\n\nThis is quite primitive now, and could be cleaned up considerably.  It\nprobably needs symbol table entries for the methods, and descriptions of\nparameters and return types.\n\nCurrently only supported for X86.\n\nThis defaults to enabled for debug builds. Added dexoat --gen-gdb-info\nand --no-gen-gdb-info flags to override.\n\nChange-Id: I4d18b2370f6dfaa00c8cc1925f10717be3bd1a62\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "659d87d4a61f83f5582d816ee0bc94f00e19b46c",
      "tree": "547c08ad5dabfe64e0941bacf9a7ea7bd354aab7",
      "parents": [
        "4f2573b38f7b0bca027d8540c9b22abe8ba7b7bc"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Thu Feb 27 14:23:11 2014 +0700"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Thu Feb 27 14:31:38 2014 +0700"
      },
      "message": "art: Fix build errors for x86_64 target\n\nFixes build issues introduced by multilib, CompilerOptions and ElfFile patches.\n\nChange-Id: Ic05d149e3c7a1e644d0cb50cc7c3599025c90bdf\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "c1409450dece36852a6e67ec8d843f3da148faf3",
      "tree": "ac0e029491f58970712be9012e24fb502dc29721",
      "parents": [
        "7f0ff7e7fff82566bca5f9353eaa2c4f81f0671a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 14:06:23 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 16:57:04 2014 -0800"
      },
      "message": "ElfFile should protect itself from bad input\n\nBug: 13207536\nChange-Id: Ia0406a7e8fce4030570503471e003d4da581652f\n"
    },
    {
      "commit": "50cfe74daaece80853cb3b45d4338329b7d0345b",
      "tree": "0c719d6496c684f426a70645d90eb1596856fe45",
      "parents": [
        "86ce70d30fcebf41273a9a9fd86eaa9b33c0ab56"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 13:27:42 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 20:35:39 2014 +0000"
      },
      "message": "Remove dependency on llvm/Support/ELF.h by using linux\u0027s elf.h.\n\nChange-Id: Iefe66af9958641ac7f08fdc22f438d976e5b4d54\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "cdfcf37aed7f436d32846a58e9a0a0b13e22e0af",
      "tree": "4fedfc5d96d53e2208cdd5b2f3a051a179d92d76",
      "parents": [
        "c0df897d264d16a991bf092f7b9431ce5a4f1f0b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 20:38:36 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 20:38:36 2014 -0800"
      },
      "message": "64bit fixes for elf file.\n\nForce size to signed once errno isn\u0027t in play, to solve signed/unsigned\ncomparisons. Fix printf formatting flags.\n\nChange-Id: Iabf1554c9903a4389ed38f8b1b889bb44778d9d6\n"
    },
    {
      "commit": "d0c09dc2177d132099a05af8537bdb9a8225af8c",
      "tree": "ca564f4b5774bb23b930c918c70009bd96f31dfb",
      "parents": [
        "1bd2ceb3a8c68ae6ea1f9627b588a7bc7a74487f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 06 18:25:35 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 06 18:25:35 2013 -0800"
      },
      "message": "Add missing error message propagation to ElfFile::SetMap\n\nChange-Id: I085e23cd4728e10a7efca3586270c6cffed9e8d4\n"
    },
    {
      "commit": "8d31bbd3d6536de12bc20e3d29cfe03fe848f9da",
      "tree": "2373ae08ddddaf1034623df85d647ecf9ac6c831",
      "parents": [
        "57e6d8a99058e5c74d5244b68a5f4d53526fa108"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 13 10:44:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 21 17:01:11 2013 -0700"
      },
      "message": "Throw IOException at source of failing to open a dex file.\n\nBefore is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\nAnd after is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.io.IOException: Zip archive \u0027/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\u0027 doesn\u0027t contain classes.dex\n                at dalvik.system.DexFile.openDexFile(Native Method)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:80)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:59)\n                at dalvik.system.DexPathList.loadDexFile(DexPathList.java:268)\n                at dalvik.system.DexPathList.makeDexElements(DexPathList.java:235)\n                at dalvik.system.DexPathList.\u003cinit\u003e(DexPathList.java:113)\n                at dalvik.system.BaseDexClassLoader.\u003cinit\u003e(BaseDexClassLoader.java:48)\n                at dalvik.system.PathClassLoader.\u003cinit\u003e(PathClassLoader.java:38)\n                at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:128)\n                at java.lang.ClassLoader.access$000(ClassLoader.java:65)\n                at java.lang.ClassLoader$SystemClassLoader.\u003cclinit\u003e(ClassLoader.java:81)\n                at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:137)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\n\nAlso, move dex file verifier messages out of logs.\nIn the process the ClassLinker::dex_lock_ needed tidying to cover a smaller\nscope. Bug 11301553.\n\nChange-Id: I80058652e11e7ea63457cc01a0cb48afe1c15543\n"
    },
    {
      "commit": "3a22361a4d7bb7ae5558640873c375692f1e242a",
      "tree": "3cc7ee8dd78fde8a363b4c3509a504e119231267",
      "parents": [
        "8e3fb14615f20677da8421ada131b5f2fcd8eb56"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 17:18:24 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 17:18:24 2013 -0700"
      },
      "message": "Validate ELF file segment lengths against file length when loading\n\nBug: 11152153\nChange-Id: I31047b9bb607aac478b79dea4ed9a72abe1bd775\n"
    },
    {
      "commit": "eeb9888421b696990f45b89286ad9d0908c70a69",
      "tree": "b5f7c891e2e0a4600a781ea723047717afc0fc3f",
      "parents": [
        "7c3d13aebdd8611cae58a1048bffb13cbdc465cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 15:53:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 18:13:32 2013 -0700"
      },
      "message": "Use ElfFile instead of dlopen for Quick\n\nBug: 10614658\nChange-Id: I6a7e2cb0960a5d468a55d220c3fafa80bc239fa9\n"
    },
    {
      "commit": "02c8cc6d1312a2b55533f02f6369dc7c94672f90",
      "tree": "4e4a268e8cb82dcd95f8e29a8169b0396e20b0cc",
      "parents": [
        "6f485c62b9cfce3ab71020c646ab9f48d9d29d6d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 15:54:44 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 16:02:33 2013 -0700"
      },
      "message": "Fixing cpplint whitespace/blank_line, whitespace/end_of_line, whitespace/labels, whitespace/semicolon issues\n\nChange-Id: Ide4f8ea608338b3fed528de7582cfeb2011997b6\n"
    },
    {
      "commit": "df62950e7a32031b82360c407d46a37b94188fbb",
      "tree": "038bf95a2ce296ae3e0c30a131ac22c0986f0f52",
      "parents": [
        "0cd7ec2dcd8d7ba30bf3ca420b40dac52849876c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 22:39:56 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 00:13:18 2013 -0700"
      },
      "message": "Fix cpplint whitespace/parens issues\n\nChange-Id: Ifc678d59a8bed24ffddde5a0e543620b17b0aba9\n"
    },
    {
      "commit": "f1d3455064792ac1c486a4a9c24279a37b4af473",
      "tree": "ac3020b447d6929def1f3322b5165bef6a66a4cd",
      "parents": [
        "7940e44f4517de5e2634a7e07d58d0fb26160513"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 20:22:23 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 20:45:54 2013 -0700"
      },
      "message": "Do not mark pages executable unnecessarily to play nice with selinux\n\nChange-Id: Ief4a5da38ac7c2cf7bf6f7a640cb63c5e8ed03bd\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "6a47b9dc850b903aabefcfab4adb132cb68bba2e",
      "tree": "924d2ea244bb01a48620e704b181a1d9d1f4055c",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 17 10:58:25 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 18:37:04 2013 -0700"
      },
      "message": "Refactor ElfWriter and introduce ElfWriterQuick\n\nChange-Id: I3eaa1fa1085bb4d28fe342a7420272720e48274b\n"
    },
    {
      "commit": "265091e581c9f643b37e7966890911f09e223269",
      "tree": "ae493ce6c3537aebc3a85f59a73500fa819a7baf",
      "parents": [
        "4c1c283a7410784e9cab309f868248690b788a9c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 30 14:08:26 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 14:08:46 2013 -0800"
      },
      "message": "Remove ExtractCodeAndPrelink and switch Portable to MCLinker\n\nChange-Id: Ia2459c7da6b79e0a1c0f1148c6e28ad9cbbe27a2\n"
    },
    {
      "commit": "700c8d31733534a3d978b75a03f6f7e177dc7e81",
      "tree": "6b9d8d93a70e31dba3b0a880f886ce408776314c",
      "parents": [
        "9adbff5b85fcae2b3e2443344415f6c17ea3ba0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 10:42:02 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 25 14:28:43 2013 -0800"
      },
      "message": "Move .oat files to ELF format\n\nGenerates .oat in ELF file format using MCLinker\n- Uses MCLinker IRBuilder to create a synthetic .o from OatWriter output.\n- Uses new ElfFile for prelinking to support art image optimizations.\n\nAdapted OatFile to load using dlopen, ElfFile, or memory, removing raw MemMap mechanism.\n\nChanged image code to not assume oat data will be immediately after\nimage to allow space for ELF headers.\n\nPasses test-art and works with installd.\n\nChange-Id: Idc026eddb5de93f4b97490c405f3ed7b39589749\n"
    }
  ]
}
