)]}'
{
  "log": [
    {
      "commit": "42d5fcb9f494eb45de3b6bf759f4a18076e84728",
      "tree": "8f653810d3ddecf30bb0b744d4564d406808fe3e",
      "parents": [
        "ffe5c24c8693f1f4fc8edb68075fb36df558b801"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 29 17:01:24 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Nov 15 12:09:16 2015 -0800"
      },
      "message": "Introducing linker namespaces\n\nBug: http://b/22548808\nChange-Id: Ia3af3c0a167f1d16447a3d83bb045d143319b1e1\n"
    },
    {
      "commit": "fd7a91e69263a991f65fa458ff33de0670b4fd81",
      "tree": "d560bd28df0b372b4c39f777724d2e26e404d4d3",
      "parents": [
        "004fead6bc55d1e65b4fb9ca1ac36646b99e5fdd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 06 10:44:37 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 06 10:44:37 2015 -0800"
      },
      "message": "linker: cleanup solist after unsuccessful read\n\nBug: http://b/25560017\nChange-Id: I03c5a1d7aed34c480d341aacfb3b1afdfa037b99\n"
    },
    {
      "commit": "7a9311f7f1f8ac2aa54807039e3af7789dc48c89",
      "tree": "bd4ee3afe626e6e650c264f3bf465723d8c30214",
      "parents": [
        "ef5e647891f1a0aefeab4a87e9225e47087c6301"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 05 17:41:05 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 05 17:41:05 2015 -0800"
      },
      "message": "Fix linked_list::remove_if()\n\nWhen remove_if removes last element from the list\nfollowing push_back stops working.\n\nChange-Id: Ia3e92763b83a2e172eaa10de7aecfb7a4be452d7\n"
    },
    {
      "commit": "126af757c6d6a6447c19236df8d98ba07f21996f",
      "tree": "b303f921749f2bb077096218b22ab20bf789d4be",
      "parents": [
        "6a4ddeb56ef2144e98437ae82f84b09ea785e411"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 07 16:34:20 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 27 11:27:34 2015 -0700"
      },
      "message": "Implement load at fixed address feature\n\nBug: http://b/24683631\nChange-Id: I3a39ab526c8f9e213339b60e135e5459d0f41381\n"
    },
    {
      "commit": "4f7a7ad3fed2ea90d454ec9f3cabfffb0deda8c4",
      "tree": "d2c2196b7f765aa3699b33dbd94b40112af98aa4",
      "parents": [
        "cf1cbbe43293b05e564b9d044147efbcfbcc993e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 15 12:07:25 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 22 18:26:07 2015 -0700"
      },
      "message": "Implement Library Load Order Randomization\n\nBug: http://b/24047022\nChange-Id: I36e05b403bfbaae8542a95147f9114a8b9c8ac0e\n"
    },
    {
      "commit": "cf1cbbe43293b05e564b9d044147efbcfbcc993e",
      "tree": "4c838cec973542e1bfcfabe2e7478311eecfaa2c",
      "parents": [
        "5edf077c5b92f0db212e45ed5402339a6e4c7334"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 19 16:57:46 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 22 18:01:56 2015 -0700"
      },
      "message": "refactoring: introduce MappedFileFragment\n\nChange-Id: I97b0c1131711ed0ac13ab33e3357e99e0b6b1a4e\n"
    },
    {
      "commit": "747d30ebf368be8c4ec0455324bdac53204eb179",
      "tree": "d23c3707a1104240c4954021267156809f18ea01",
      "parents": [
        "f5ea085844c66e7a65709edd7485a49396e556ce"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Tue Oct 20 14:06:25 2015 -0400"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@google.com",
        "time": "Tue Oct 20 14:06:25 2015 -0400"
      },
      "message": "dlfcn: update ifdef around old_name_\n\nCommit 9185e04f72c16d2a66d92ac89b38ee926d7f706b changed the ifdef around\nold_name_ from __arm__ to __work_around_b_###__, but missed one place in\ndlfcn.cpp.  So if you do a build w/out that workaround for arm, you end\nup with a build failure:\nbionic/linker/dlfcn.cpp:275:27: error: no member named \u0027old_name_\u0027 in \u0027soinfo\u0027\n    strlcpy(__libdl_info-\u003eold_name_, __libdl_info-\u003esoname_, sizeof(__libdl_info-\u003eold_name_));\n            ~~~~~~~~~~~~  ^\nbionic/linker/dlfcn.cpp:275:82: error: no member named \u0027old_name_\u0027 in \u0027soinfo\u0027\n    strlcpy(__libdl_info-\u003eold_name_, __libdl_info-\u003esoname_, sizeof(__libdl_info-\u003eold_name_));\n                                                                   ~~~~~~~~~~~~  ^\n\nBug: 24425865\nChange-Id: Idbe1cc1c28083afeee6d90203c221f30f661c69c\n"
    },
    {
      "commit": "5fd94dfe3b36ee56e54d2002ad3a5e0fa8bff683",
      "tree": "9877ab044722890fb8c67493318ae1369924a436",
      "parents": [
        "9c2122e803a01c80bef550eac2b24b5a79635a2a",
        "5dce8948b65cf9c2d81165056d914b999bb3a4d8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 16 20:37:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 16 20:37:34 2015 +0000"
      },
      "message": "Merge \"Replace auto -\u003e const auto\u0026/auto\u0026\u0026\""
    },
    {
      "commit": "9c2122e803a01c80bef550eac2b24b5a79635a2a",
      "tree": "fd40fa10d70f2dea066c361b92e6aa8bb550bfb7",
      "parents": [
        "074efa02a7de67589c36f75222e3b45c3f15206a",
        "77f91c6d99c25fce4fbf9704aa6f7232fb624ff4"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 16 20:36:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 16 20:36:25 2015 +0000"
      },
      "message": "Merge \"Fix R_AARCH64_ABS/PREL relocations\""
    },
    {
      "commit": "77f91c6d99c25fce4fbf9704aa6f7232fb624ff4",
      "tree": "d10dc214af563d8081bcf72af4ef9e5bdbeb614a",
      "parents": [
        "198d13e8c25e69f7dbda3f5e1a3258b13fe8db5d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 15 13:26:03 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 16 10:42:16 2015 -0700"
      },
      "message": "Fix R_AARCH64_ABS/PREL relocations\n\nAccording to specification arm64 relocations\nshould not use *reloc value.\n\nSee http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056b/IHI0056B_aaelf64.pdf\nsection 4.6.5\n\nBug: http://b/24977219\nBug: http://b/24527155\nChange-Id: I3813255771f408ba957963c6ad56ed08e5110d83\n"
    },
    {
      "commit": "4e50d0247b9ace095e371865fad08b1a59672e3a",
      "tree": "d74a75b036e8a17fdfbcd94edf05041f24ed9d9b",
      "parents": [
        "198d13e8c25e69f7dbda3f5e1a3258b13fe8db5d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 14 11:15:45 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 14 18:24:54 2015 -0700"
      },
      "message": "Ensure that readlink has access to /proc/self/fd\n\n/proc/self/fd is not available when PR_DUMPABLE is set to 0\nwhich is default for the user builds. It leads to permission\ndenials on readlink.\n\nThis change fixes the problem by setting PR_DUMPABLE flag to 1\nfor readlink and restoring it\u0027s previous value after the call.\n\nBug: http://b/24912743\nChange-Id: I3fd179c5c6b56af96d6a15ee597024ccb15e1a13\n(cherry picked from commit cf92738fa5dee24050028a1235f815f2a0fd33b5)\n"
    },
    {
      "commit": "fae39d2bf9fb6f08da4a095f5fe3ff093bcdbee8",
      "tree": "a6da7d5b607717a6e917cf6f8c2cdf1a8ec0af00",
      "parents": [
        "30cd7065b6cd37342e23904cb512c409b8bbd4f1"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 13 11:07:56 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 13 15:48:57 2015 -0700"
      },
      "message": "Log dlopen failures caused by text relocations\n\nSome apps will fail to load native libraries with\ntext relocations when switching target sdk version to M.\nIt could be hard to diagnose because some of them\nsuppress dlerror and/or UnsatisfiedLinkError.\n\nThis change unconditionally logs the error message making\nthe cause of the failure more visible to developers.\n\nBug: http://b/24876001\nChange-Id: I0477a0d1307d0879000f3a3a43b974b4cf34bdb2\n(cherry picked from commit f32b689d3dbe7a1317bce58d1d9bef9bba173c66)\n"
    },
    {
      "commit": "5dce8948b65cf9c2d81165056d914b999bb3a4d8",
      "tree": "04fb5f63005bb45d5fb19724f097002fa7737aad",
      "parents": [
        "fb7f45b6a3242c9a9a547705de08cf59e6b7f935"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 13 12:14:16 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 13 12:14:16 2015 -0700"
      },
      "message": "Replace auto -\u003e const auto\u0026/auto\u0026\u0026\n\nChange-Id: Ie484e5a296b5dd222a9545d8539d40d97a6c158c\n"
    },
    {
      "commit": "6f2d3104c82f81c1f0123a3cfb25ae670841d0ba",
      "tree": "0e69cd361e7de4ce1e0129195901602787160997",
      "parents": [
        "fb7f45b6a3242c9a9a547705de08cf59e6b7f935"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Tue Oct 13 16:43:00 2015 +0200"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 13 10:57:41 2015 -0700"
      },
      "message": "Correctly resolve realpath for absolute paths\n\nIntroduced by: https://android-review.googlesource.com/174475\n\nChange-Id: I44e00040b28be167d5141454f919340afec6084e\n"
    },
    {
      "commit": "b28ffc77445c7aed5d4d817152421f6f1f2c4f6d",
      "tree": "1a18dbc9a9478f6123b45e55b9cfb7b64e26240b",
      "parents": [
        "e78392637d5086384a5631ddfdfa8d7ec8326ee3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 12 16:27:32 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 12 18:20:26 2015 -0700"
      },
      "message": "linker: Switch to clang\n\nx86_64 gcc exports malloc/free and co functions because they\nare defined with visibility \"default\" somewhere in gcc builtins;\nand vector d-tors for some reason. Switching to clang fixes\nthis problem.\n\nBug: http://b/24785482\nChange-Id: I741503b4b446523e7ff3fb16de13ed99991fd0c0\n"
    },
    {
      "commit": "93c0f5ee00d1357247fda333c9d49c8673c9c83b",
      "tree": "9afe2dc72f063df4b498aa1328be122e389fd777",
      "parents": [
        "487a1823e8617011009eded8eae9a75c1f871887"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 06 11:08:13 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Oct 09 15:59:04 2015 -0700"
      },
      "message": "Move VDSO pointers to a shared globals struct.\n\nChange-Id: I01cbc9cf0917dc1fac52d9205bda2c68529d12ef\n"
    },
    {
      "commit": "8068786ae67835291521e52f39c695e40f3ad20d",
      "tree": "2084582ffb2fe35f30485df091f9dbbadd5c8dce",
      "parents": [
        "599af9346e3ea697dda1b0c38a99cce842154307"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 09 13:58:46 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 09 13:59:42 2015 -0700"
      },
      "message": "Remove textrels support for platform libs\n\nBug: http://b/20013628\nChange-Id: Ia9382c7113e09bb6aed65072543e4ebe33026cf8\n"
    },
    {
      "commit": "a1feb117e4d5614548574f28dede3443e073512b",
      "tree": "6078618ff745b802f986119d0534433a8d7df2d1",
      "parents": [
        "748421beef0ed8625920a27b3753a79c2652b6ef"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 01 18:41:57 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 07 11:44:53 2015 -0700"
      },
      "message": "Make dt_runpath work for libraries opened from apk\n\nThis patch also fixes realpath for libraries opened directly\nfrom apks.\n\nBug: http://b/21960914\nBug: http://b/21961857\nChange-Id: I35ade661c87f1d448191f385811f6e9fd3cacf11\n"
    },
    {
      "commit": "a0f187bec77cee6db1ecc12ff7e39ccabb66c078",
      "tree": "6d8000cc0b0bc9f660a91722af2434efac6a9659",
      "parents": [
        "5c50449b0c098cb8191fe3f7791e91a7ec4f7029"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 05 12:06:40 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 05 12:06:40 2015 -0700"
      },
      "message": "Fix linker tests\n\nChange-Id: I4794f2d9dcc5ceb419e1bf9151607a650eb801d9\n"
    },
    {
      "commit": "7e039937b84ef8bc86da1dcd91c1a074f05a05bc",
      "tree": "2bead4db6c0879ef69606e7b001cde4ebd70a7d0",
      "parents": [
        "4a65557d0ebd167e557958687f50510742cb238a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 01 14:02:19 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 01 14:02:19 2015 -0700"
      },
      "message": "Fix the comment\n\nChange-Id: Ic8126cf92d12851cccaa3e2e781f075c9f6c283a\n"
    },
    {
      "commit": "b48275045de93cce292faaf5170af3ead89b3746",
      "tree": "e45847472a1283a21f94f72de4b9869295e6369c",
      "parents": [
        "8b279eadd3a635c31df9c570ab2144212bfd07cc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 28 16:38:31 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 30 10:47:11 2015 -0700"
      },
      "message": "Optimize dlopen from a zip file\n\nThis change makes dynamic linker reuse ZipArchiveHandles in\nld_library_path on dlopen to optimize the lookup of dt_needed\nlibraries.\n\nBug: http://b/21960534\nChange-Id: I65f897910d46dd2ffabdcb0b7842db2f127eee30\n"
    },
    {
      "commit": "280d54680d8842df5b0e37ec50acde48957d8e7a",
      "tree": "d714bd5c1de90e5a76d724162dd8df118c2e36cc",
      "parents": [
        "55f87a0c0bb587ee85b5662967563462d52db560"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 28 10:14:17 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 28 10:31:12 2015 -0700"
      },
      "message": "Fix bug number for linker related workarounds\n\nBug: 24425865\nChange-Id: I2021674a9df0e768f312ca024d906302db1c494f\n"
    },
    {
      "commit": "dccc40883ace81d203b3ed66944847e55f45da6f",
      "tree": "d5789dd83347d04268924c6fc5f8b2ea80fbf81e",
      "parents": [
        "cbd0a15be881abb8ce1feb5b389da2f517a9a4c6"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Thu Sep 17 15:16:53 2015 -0700"
      },
      "committer": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Thu Sep 17 15:17:06 2015 -0700"
      },
      "message": "Fix mips FP abi bug in the linker.\n\nChange-Id: I1ffab938eb06f9dc0963ee15bc10eca216618792\n"
    },
    {
      "commit": "edfc9f63a261994f2565492436607c04df980e21",
      "tree": "beba695e03f777d9479835d5f1c0d1389704a322",
      "parents": [
        "cc25196662cab824117e7cb79e435bd3aaf37dcc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 02 16:32:02 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 02 16:32:02 2015 -0700"
      },
      "message": "linker: don\u0027t pass dlextinfo to dependent loads\n\nDon\u0027t pass the parent load\u0027s dlextinfo to dependent loads, since this\ncauses the linker to try to load the dependencies using the same\naddresses/relro/fds/etc as the main library, which is never going to\nwork. This was how it worked before ae69a95 which broke this.\n\nBug: http://b/23742664\nBug: http://b/20948231\nBug: http://b/20841817\nChange-Id: I340ebae1127666d5c6c6f9c6521b89fb93f15bdd\n"
    },
    {
      "commit": "44ead717268bd446d6d5d24e577b1ef1cdea5d30",
      "tree": "d106bf93cf512af709fbe75f03c976eba36ffa94",
      "parents": [
        "c2e634dd303a44b11e30ab31e39ffc4eae5467f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 28 20:23:52 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 28 20:23:52 2015 -0700"
      },
      "message": "Regenerate NOTICE files.\n\nChange-Id: Ia5c340220bb75e4e3166cc483ea77d19cfb08a71\n"
    },
    {
      "commit": "93ce35434ca5af43a7449e289959543f0a2426fa",
      "tree": "190b2db5c158c5ae7c039e9f5ebca09dfc361c6c",
      "parents": [
        "079fc833137d5067c0cd3dc5211e72019314dd80"
      ],
      "author": {
        "name": "skvalex",
        "email": "skvalex@gmail.com",
        "time": "Thu Aug 20 01:06:42 2015 +0300"
      },
      "committer": {
        "name": "skvalex",
        "email": "skvalex@gmail.com",
        "time": "Thu Aug 20 01:06:42 2015 +0300"
      },
      "message": "Fix a mistype in segment overrange checking\n\nChange-Id: Ibea93514aa7ba3b1ac2bc00420f5124fb34f5f66\nSigned-off-by: skvalex \u003cskvalex@gmail.com\u003e\n"
    },
    {
      "commit": "d1afa661af3686e487646fe36641c1b4080687d3",
      "tree": "4435f5fa1e3abc861ad1efb6e50843515dd54996",
      "parents": [
        "6816d8cc69dc1d142d722686d006f25df94afcd3"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Aug 17 16:17:03 2015 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Aug 17 16:17:03 2015 -0700"
      },
      "message": "Don\u0027t attach linker_asan to linker in module definition.\n\nWith this change, we only define the rules to create the symlinks in\nthis Android.mk but without attaching the symlinks to the module linker.\nInstead the core build system will set up the dependency whenever a\nmodule needs these symlinks.\n\nBug: 22850550\nChange-Id: I36c58fd411f1c27f3f638b229699d7dc1d66abb2\n"
    },
    {
      "commit": "5341691955e2fc2b271b722c37496d72a0e8c683",
      "tree": "8b6a350a4898241663c6ccc58685a3362738e8ec",
      "parents": [
        "ff4afc136ef5d00d33a611e7bc1950249db9fbcf"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "message": "Move up to C++14.\n\nThe default standard version is now ahead of us. Stop specifying C++11\nso we get that too.\n\nChange-Id: Ic96942cd7fd134118e29b744601b0119e49b6ac4\n"
    },
    {
      "commit": "0acb15ead6a554a6879b29fd90726b9ea8fd98c4",
      "tree": "46f69f98361fe7d345e562cc727f13e4068c2284",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Tue Jul 28 14:04:29 2015 -0700"
      },
      "committer": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Fri Jul 31 13:55:42 2015 -0700"
      },
      "message": "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment\n\nThis corrects an issue with mips32 Art on mips64r6 Android, where\nJava ran slowly due to unintended use of kernel-trap emulation of\nsingle-precision floating point registers. This also regressed all\nArt tests due to an extra logcat line\n    WARNING: linker: Using FRE\u003d1 mode to run \"...\"\n\nWhen targeting mips32r6, Art generates modeless or FR\u003d1 floating point\ncode, same as Android\u0027s own native mips32r6 modules. So the trapping was\nunneeded. Linker was confusing Art-generated modules with those from\nold NDK compilers, which do need that trapping mode.\n\nThis linker filename check may become unnecessary, if Art learns how to\ngenerate .MIPS.abiflags segments in its generated elf-like codefiles.\n\nChange-Id: I18069d1234960c680c5df739514da09015a7fdb6\n"
    },
    {
      "commit": "9f03ed12a608344f275244e59051fb876a4aa06c",
      "tree": "e39c3f2993d0af9157a081c031198def618b682b",
      "parents": [
        "4498917406ee543116ea7ed987d26a15b2c1496c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 22:24:13 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 22:24:13 2015 -0700"
      },
      "message": "Stop sending SIGPIPE to debuggerd.\n\nSIGPIPE is a pretty normal way for command-line apps to die, but because\nwe catch it and report it via debuggerd, we get a lot of bogus bugs. We\ncould catch SIGPIPE in our tools, but that\u0027s not really legit and slightly\nmisleading.\n\n\"But\", you say, \"catching SIGPIPE is useful for app bugs!\". Except a trawl\nthrough buganizer suggests it\u0027s misleading there too. Not least because\nit\u0027s usually an innocent victim that dies --- the problem is usually on the\nother end of the pipe (which you learn nothing about because that process\nalready died, which is what closed the pipe).\n\nWe also don\u0027t catch SIGALRM, which is another signal that will terminate\nyour process if you don\u0027t catch it, but that one actually represents a\nlogic error in the crashing process, so there\u0027s a stronger argument for\ncatching that. (Except it too is not a real source of bugs.)\n\nBug: http://b/20659371\nChange-Id: I79820b36573ddaa9a7bad0561a52f23e7a8d15ac\n"
    },
    {
      "commit": "b447440a4b5e1e300c6cb1a931b3fa1e22900c4f",
      "tree": "e346f6bf3cfff843d06cee42a0061d6af8a7c1d3",
      "parents": [
        "34c5f5eacdedcea6b987854a4bca07c703495d62"
      ],
      "author": {
        "name": "tony.ys_liu",
        "email": "tony.ys_liu@htc.com",
        "time": "Wed Jul 29 18:00:22 2015 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 17:21:30 2015 -0700"
      },
      "message": "Prevent buffer over-read in linker.cpp\u0027s parse_path.\n\nAlso, the old behavior of skipping empty entries doesn\u0027t match glibc.\n\nChange-Id: I497774377113ab6c5d962e0f20066e2192748f06\n"
    },
    {
      "commit": "afab3ffcce1054ec887fb347700819d69a9c8151",
      "tree": "390c1e92f59867262d1181c346948071f09d536c",
      "parents": [
        "1923d4c03a68c89f304b601545f5e8db026b9be0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "message": "Move PAGE_MASK into \u003csys/user.h\u003e.\n\nI\u0027m removing the TODO on the assumption that being compatible with glibc\nis more useful than BSD. The new internal \"bionic_page.h\" header factors\nout some duplication between libc and the linker.\n\nBug: http://b/22735893\nChange-Id: I4aec4dcba5886fb6f6b9290a8f85660643261321\n"
    },
    {
      "commit": "ec83a61c8b5e00c67c35c9b8f72031c55e7868b9",
      "tree": "0e871a06eed25813a137c73f812e6713c9babc4f",
      "parents": [
        "adc5795fb7b674e6d40d1f190c675607c1379343"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Jul 26 07:37:09 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Jul 26 08:23:01 2015 -0700"
      },
      "message": "Restore protection flags for ifunc during relocs.\n\nIFUNC relocations require executable flag for the load\nsegment containing .text. When dso has text relocs linker\nremoves exec which causes crash during ifunc relocations.\n\nThis patch fixes this problem by restoring segments protection\nfor ifunc relocs.\n\nBug: http://b/22611399\nChange-Id: Icbf3be0fec0e42bf805bcad7533e2032a2e11b9c\n(cherry picked from commit de0fb393ae8136a5958fe17eee0c6285e2f7f91a)\n"
    },
    {
      "commit": "d29486343a66cae37fc4fc74ed206fd29f25476b",
      "tree": "9b18ae43784916a8228362e06ebb6f308358374a",
      "parents": [
        "c99fabb7a097e9aeed49ce03584cce113d086905"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:57:09 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:57:09 2015 -0700"
      },
      "message": "Use a less misleading name for the code that sets up the main thread.\n\nChange-Id: I50c1b0a3b633cf8bc40a6bd86f12adb6b91e2888\n"
    },
    {
      "commit": "e5cfafe3446a33b0c77416061d598bf76d580ee0",
      "tree": "4af42cb8d8a817a60e046db9e52be73b4f419764",
      "parents": [
        "60bc90909a49121789bf86f5d14f63967e8000e0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 17 10:36:10 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 17 10:36:10 2015 -0700"
      },
      "message": "Fix potential race condition on dlopen\n\n  Call to find_containing_library should be guarded.\n\nChange-Id: I985a903da48b83bcd35e957a979158eb9b80e70b\n"
    },
    {
      "commit": "730ed9dfec37441ae0cbb96f681381da6e113daa",
      "tree": "d658def4a42a6dcf4d3003f45437cfb59781dc30",
      "parents": [
        "b31409040f1766d92e76e72bbdc1b346f4bb9d8e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 16 04:52:06 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 16 04:52:06 2015 -0700"
      },
      "message": "Add constant for zip separator\n\nChange-Id: I1dcbb15ac612fc28e922eb3de8148fcaebbc0820\n"
    },
    {
      "commit": "d11c3e5c3a7c28a7606e5ca9e52876be9772cc70",
      "tree": "4379498266c484db404114fe4dad4f556bf87059",
      "parents": [
        "e9774a5227749035dc55357ae3a34edaf545c3b3"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 15 16:19:59 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 15 16:19:59 2015 -0700"
      },
      "message": "Replace spaces with tabs in a Makefile.\n\nSorry, I undertested my previous change and these guys somehow sneaked in.\nThis only affects SANITIZE_TARGET builds.\n\nChange-Id: Id6986d89fa3d4965339f7b6fe973e9db73b380da\n"
    },
    {
      "commit": "d640b225ecdd6d2fb74076e9b80ce8afb42e31a0",
      "tree": "3c84d89a588a465e7ba3b6f0fcb7ac5be8700861",
      "parents": [
        "60a11dcb44992f610e696fc246c70731012080dd"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jul 10 17:54:01 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jul 14 16:12:27 2015 -0700"
      },
      "message": "A special linker for ASan executables.\n\nSetup a /system/bin/linker_asan as a symlink to \"linker\".\nRead the linker name from PT_INTERP, and if it is linker_asan,\nswitch default library lookup paths to the ASan set, which\nstarts with the path to the instrumented libraries\n(/data/lib), followed by /system/lib as a fallback.\n\nThis ensures that ASan binaries prefer ASan libraries, when\navailable. This approach is way better then RPATH/RUNPATH and even\nbetter than LD_LIBRARY_PATH:\n- RUNPATH is per-DSO, while default paths are global.\n- LD_LIBRARY_PATH is overwritten by android_update_LD_LIBRARY_PATH.\n- neither RUNPATH nor LD_LIBRARY_PATH appear in\n  android_get_LD_LIBRARY_PATH which is used to build java.lang.path.\n  Having ASan libraries in java.lang.path is a good thing.\n\nBug: 22355945\nChange-Id: I1d2791fbf5740618f18f71a3ae3d873714669d3f\n"
    },
    {
      "commit": "609f11b31ecedc4e9f2a1f6017b60b1f51b15c22",
      "tree": "57ad472cf467a2c886af00ea51a5638f221c73c6",
      "parents": [
        "c6f25641eb874cd15f92759beff1ad67cfd8228b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jul 08 15:26:46 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jul 08 15:26:46 2015 -0700"
      },
      "message": "Fix memory-leak on soinfo_free()\n\nBug: http://b/22290728\nChange-Id: I00747056db2cd3ff8b33936278464daed7236536\n"
    },
    {
      "commit": "33ef6c20f2ddf19b29ed3a4e50139fa391b1a3d4",
      "tree": "13b94351cefaed11f3df7132a60ba1eff871515e",
      "parents": [
        "90de6820f736de1239b218ea2b63d15c38505e93",
        "0cdef7e7f3c6837b56a969120d9098463d1df8d8"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 08 19:50:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 08 19:50:03 2015 +0000"
      },
      "message": "Merge \"Respect caller DT_RUNPATH in dlopen().\""
    },
    {
      "commit": "0cdef7e7f3c6837b56a969120d9098463d1df8d8",
      "tree": "f44b3e6464e03267081879a3155daf6ad096d905",
      "parents": [
        "83474cd38712c0f955174609a880deabebb27518"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 06 17:56:31 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jul 07 10:56:06 2015 -0700"
      },
      "message": "Respect caller DT_RUNPATH in dlopen().\n\nWhen dlopen-ing a library, add the caller\u0027s DT_RUNPATH to the directory search\nlist. This fixes dlfcn.dt_runpath in bionic-unit-tests-glibc(32|64).\n\nBug: 21899363\nChange-Id: Ife6a7e192939292cf4dc291b7e6b95945761cde3\n"
    },
    {
      "commit": "c2247478d5bcd6e8fe4d2b58f0bdeff73daa4c80",
      "tree": "d7d9c1eebfeda89627a70a5337dc1a3983a044d3",
      "parents": [
        "7f46cf9a5f0b3e54d97fc94a83b955ae4c335a31"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 30 15:10:51 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 30 19:01:24 2015 -0700"
      },
      "message": "Improve personality initialization\n\n1. Personality parameter should be unsigned int (not long)\n2. Do not reset bits outside of PER_MASK when setting\n   personality value.\n3. Set personality for static executables.\n\nBug: http://b/21900686\nChange-Id: I4c7e34079cbd59b818ce221eed325c05b9bb2303\n(cherry picked from commit f643eb38c36eb63f612e20dea09fd43ac6a6b360)\n"
    },
    {
      "commit": "7271caf93db6897cdbcfca169441045bb52de61b",
      "tree": "36114c9985025d3646c686957545bb9bb7a7d114",
      "parents": [
        "46d24d12e167a0b5afa4ded218aa4db0a477141a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 29 14:48:25 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 29 15:14:28 2015 -0700"
      },
      "message": "Lock on dl_interate_phdr\n\nThere is possibility of someone dlclosing a library\nwhile dl_iterate_phdr in progress which can lead to\ndl_iterate_phdr calling callback with invalid address\nif it was unmapped by dlclose.\n\nBug: http://b/22047255\nChange-Id: I3fc0d9fd2c51fb36fd34cb035f37271fa893a7be\n(cherry picked from commit f7d5bf334dc4bc5b7399d4c8268e1b0bf676548f)\n"
    },
    {
      "commit": "71107cdd028461c433a39a10eb192edbdf03dede",
      "tree": "eeddf32f3c61c03b3b3ffda610326c12b9321c91",
      "parents": [
        "eeb9f5e41662828989f3913d81ec23229a668434",
        "56f40fbb822b3b3066a490bdb62666039542987a"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 29 17:49:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 17:49:41 2015 +0000"
      },
      "message": "Merge \"Rename ZipEntryName to ZipString\""
    },
    {
      "commit": "3f987f5b3eeb2e0e94c0d826429dfb418fce945f",
      "tree": "332cbe9dbced4189cd59fcae74a81b72506dfd83",
      "parents": [
        "d19c271599a4b8881213c7bfbb81f87d8e56a101"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jun 25 15:51:41 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jun 25 20:05:50 2015 -0700"
      },
      "message": "Fix crash when trying to load invalid ELF file.\n\nBug: http://b/22047255\nBug: http://b/22091640\nChange-Id: I6c51cff43287a6ac4b25fa9ce6a6fc3d232fd047\n(cherry picked from commit 06700b2b5e92a365505b15d0d05e2d5b0706c511)\n"
    },
    {
      "commit": "56f40fbb822b3b3066a490bdb62666039542987a",
      "tree": "4cd4918e5684d8e09a05d0538302d10ede4a7c24",
      "parents": [
        "d19c271599a4b8881213c7bfbb81f87d8e56a101"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 14:56:07 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 14:56:07 2015 -0700"
      },
      "message": "Rename ZipEntryName to ZipString\n\nThis is for https://android-review.googlesource.com/#/c/156771/.\n\nBug: 21957428\nChange-Id: Ida30c28c0fff0b2dadddbdb1aa1999ae3250610b\n"
    },
    {
      "commit": "bc425c73e07dc150d1dcb64889ca7d379dace410",
      "tree": "73d8edd1bc1627b8cd3a6a307c86f4958aaf56e8",
      "parents": [
        "c666838ad6e578f429783a82f9b9a5bbddd3a9a8"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Mon Jun 01 16:29:14 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 24 16:43:19 2015 -0700"
      },
      "message": "[MIPS] Support FR\u003d0 emulation on FR\u003d1 64-bit FP registers\n\nEnables running of older MIPS NDK-built apps on mips64r6.\n\nWorks with kernel supporting FRE emulation, and old kernels.\n\nChange-Id: If5e392ed89e9910cd1ccd30e0fd5c4a5acea2c7d\n"
    },
    {
      "commit": "c666838ad6e578f429783a82f9b9a5bbddd3a9a8",
      "tree": "ba497ccf8c189a3cd29bd0a01dba8bfe9d4b1aef",
      "parents": [
        "d807b9a12d3e49132b095df3d883618452033b51",
        "cc838904642c60f29e915ab3eb6b736782b32923"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 24 20:44:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 20:44:36 2015 +0000"
      },
      "message": "Merge \"Revert \"[MIPS] Support FR\u003d0 emulation on FR\u003d1 64-bit FP registers\"\""
    },
    {
      "commit": "cc838904642c60f29e915ab3eb6b736782b32923",
      "tree": "07d47b6970ab90a52ad2e2d86c6d3880fd5d4660",
      "parents": [
        "d02ec08427b006e80191ce60690ce48a788fb832"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 24 20:43:33 2015 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 24 20:43:33 2015 +0000"
      },
      "message": "Revert \"[MIPS] Support FR\u003d0 emulation on FR\u003d1 64-bit FP registers\"\n\nThis reverts commit d02ec08427b006e80191ce60690ce48a788fb832.\n\nBug: http://b/22045439\nChange-Id: Iaf10ff1e2948083cce0098f29d5b87b32bfae1b7\n"
    },
    {
      "commit": "e4ad91f86a47b39612e030a162f4793cb3421d31",
      "tree": "59f3790dd372c316830490bbe14b65489e13aef6",
      "parents": [
        "6a5ead6990ef16e858309928c4b14e3a5e2d89af"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jun 12 15:00:31 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 22 12:26:53 2015 -0700"
      },
      "message": "Remove text-relocs support for apps targeting M+\n\nRemove support of text-relocations for apps targeting sdk version \u003e 22\n\nBug: http://b/20013628\nChange-Id: I2127739544480c747315e32df15dfbd1b79de4f5\n(cherry picked from commit 3e6f7807541bab8157f9c26e55829fd193683349)\n"
    },
    {
      "commit": "d02ec08427b006e80191ce60690ce48a788fb832",
      "tree": "57600817094afe772b68efa3ecbef1f0191e301b",
      "parents": [
        "6cc98af72b0c48c58b2ab5fdb5f7abb842175299"
      ],
      "author": {
        "name": "Duane Sand",
        "email": "duane.sand@imgtec.com",
        "time": "Mon Jun 01 16:29:14 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Jun 21 11:36:57 2015 -0700"
      },
      "message": "[MIPS] Support FR\u003d0 emulation on FR\u003d1 64-bit FP registers\n\nEnables running of older MIPS NDK-built apps on mips64r6.\n\nWorks with kernel supporting FRE emulation, and old kernels.\n\nChange-Id: I13923fe62cd83ad1d337f13a50f2eda2dfdd906f\n"
    },
    {
      "commit": "a9703332f6a2983ca40781e1e943c539d053d814",
      "tree": "668314838922ac2081c301c278dfd420c6d056a2",
      "parents": [
        "9ae6f794cae7280385dfa172b12b7bd110f24693"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 16 15:38:21 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 17 17:16:44 2015 -0700"
      },
      "message": "Improve library lookup logic\n\nLinker tries to open a library even if it can\nbe found by soname. This only happens if the\nlibrary was previously opened under different\ntarget sdk version.\n\nBug: http://b/21876587\nBug: http://b/21153477\nBug: http://b/21171302\nBug: https://code.google.com/p/android/issues/detail?id\u003d160921\nChange-Id: I7dbbcc3b49933bffd89ca0af55371e1a1f2bf4c2\n(cherry picked from commit 28154f5c56dc4a64270cae2374b47a168d1bd7fa)\n"
    },
    {
      "commit": "d2c81ed000c08d6b5e98a65e488ca74e9516be97",
      "tree": "d7f03538c127ebf5d4c6b27b9ed76f75c366e35e",
      "parents": [
        "455c145e3c451b2b6dc00663e4040d79acefd496"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 17 21:34:25 2015 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 17 21:34:25 2015 +0000"
      },
      "message": "Revert \"Improve library lookup logic\"\n\nThis reverts commit 455c145e3c451b2b6dc00663e4040d79acefd496.\n\nBug: http://b/21876587\nBug: http://b/21153477\nBug: http://b/21171302\nBug: https://code.google.com/p/android/issues/detail?id\u003d160921\nChange-Id: Iad21ddfc1ac749d12bcb52384a8d937b307dd03b\n"
    },
    {
      "commit": "455c145e3c451b2b6dc00663e4040d79acefd496",
      "tree": "30d40afa6e9462e575e32729fcca50f2ca09e67b",
      "parents": [
        "3b5a4b0c3394e45b766188e0bede4d5acdc0c678"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 16 15:38:21 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 17 10:18:28 2015 -0700"
      },
      "message": "Improve library lookup logic\n\nLinker tries to open a library even if it can\nbe found by soname. This only happens if the\nlibrary was previously opened under different\ntarget sdk version.\n\nBug: http://b/21876587\nBug: http://b/21153477\nBug: http://b/21171302\nBug: https://code.google.com/p/android/issues/detail?id\u003d160921\nChange-Id: I769a04b6b1368a107d43f399297be14050338bbc\n(cherry picked from commit ea4ef52fa46602a5853df0e5b1ddd71b194d54ce)\n"
    },
    {
      "commit": "dee130f5983c5b76059787bd95e87a1be2530c87",
      "tree": "d7f03538c127ebf5d4c6b27b9ed76f75c366e35e",
      "parents": [
        "81b2382df6985d5e2495797bb4e03fa597340a37"
      ],
      "author": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Wed Jun 17 17:17:54 2015 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Wed Jun 17 17:17:54 2015 +0200"
      },
      "message": "Revert \"[MIPS] Do not use compact branches until GDB supports them\"\n\nThis reverts commit 3cec6eca929de5d627a8cc1fbe72c564ba5175cc.\n"
    },
    {
      "commit": "402a75060dcd194c1991a15df2aba51f0d868ac3",
      "tree": "2b59bfb2d5a206d2d5e830988874aad5981ab270",
      "parents": [
        "9ef26a3c4cd2e6d469f771815a07cb820800beb6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 09 13:46:51 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jun 11 11:01:23 2015 -0700"
      },
      "message": "Make path to apk compliant with jar url format\n\nBug: http://b/21726698\nBug: http://b/8076853\nChange-Id: I8c1942a98fe3119746b4dc9f60a7ff215ea7009c\n(cherry picked from commit 524f1f1efe0cb32714c61e26f21701ac952b9e42)\n"
    },
    {
      "commit": "175dae92d78cc6338125a49ea8dbabbd2f22ddf0",
      "tree": "364c0687f9e03505d9100fac7d3dcd2c09e7941b",
      "parents": [
        "db68b4600d84a213b4714525332f359f3f01c686"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 10 19:46:19 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 10 19:47:26 2015 -0700"
      },
      "message": "Fix l_addr for the linker\n\nBug: http://b/21765603\nChange-Id: I97710ef2436eac2160e29ba3e4521f6e63a1907c\n"
    },
    {
      "commit": "72af1235e49fa797987dd719e398f53995a50ec4",
      "tree": "32bb3603e9e76d0e8d80a3166007e6bcb388741b",
      "parents": [
        "ba1d40a3f16525e70e4b68c5a82e7cc9f8a4b76a",
        "6865082ca6d887766c6651ed2d079dca56a99d32"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jun 10 23:56:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 10 23:56:03 2015 +0000"
      },
      "message": "Merge \"Support DT_RUNPATH in the linker.\""
    },
    {
      "commit": "6865082ca6d887766c6651ed2d079dca56a99d32",
      "tree": "6884766e12440a9d2b5bfd99de77ee0972edaab8",
      "parents": [
        "f3463db7eb37cb7d9dd5e32dfb5b2bd24f808fb3"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jun 10 13:38:39 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jun 10 16:44:22 2015 -0700"
      },
      "message": "Support DT_RUNPATH in the linker.\n\nOnly $ORIGIN substitution is supported, but not linux-specific $LIB\nor $PLATFORM.\n\nChange-Id: I5814a016c7c91afba080230a547a863686e7c2b9\n"
    },
    {
      "commit": "ba1d40a3f16525e70e4b68c5a82e7cc9f8a4b76a",
      "tree": "ee87347a59c0ce2650243d7e5f13054cdb8b1efe",
      "parents": [
        "f3463db7eb37cb7d9dd5e32dfb5b2bd24f808fb3",
        "1801db3d3fe17df543e721b9fb355e5c882dc6cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 22:49:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 10 22:49:57 2015 +0000"
      },
      "message": "Merge \"Statically linked executables should honor AT_SECURE.\""
    },
    {
      "commit": "f3463db7eb37cb7d9dd5e32dfb5b2bd24f808fb3",
      "tree": "4dde85894a71fcbabf907dd9dbfac29c887dbfd7",
      "parents": [
        "6a494915d795d4f1c4d27aab3da0b65e7e4c0b18",
        "624b8f17a1ce9b968f11e73231733442a07ac001"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 10 22:26:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 10 22:26:07 2015 +0000"
      },
      "message": "Merge \"Check if strtab exists before using it\""
    },
    {
      "commit": "1801db3d3fe17df543e721b9fb355e5c882dc6cc",
      "tree": "0da1044f0e048558d86d74ea9414cb867e43af51",
      "parents": [
        "1cfbd94a2f40743757cdecd51cfa3e3ab545a5c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 08 18:04:00 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 09 20:10:25 2015 -0700"
      },
      "message": "Statically linked executables should honor AT_SECURE.\n\nBug: http://b/19647373\nChange-Id: I10e7682d9cec26a523f1a3597ca5326c3ca42ebe\n"
    },
    {
      "commit": "8a1162835597be38705b381ac34c07da17932568",
      "tree": "13fb64618cf74789d9f47d7d438eda0e3fd27607",
      "parents": [
        "d9dc13d4172516342ceebf1b16624ed9fdf3fca2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jun 05 22:16:23 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 09 13:44:31 2015 -0700"
      },
      "message": "Add flag that makes linker honor min(p_vaddr)\n\nBug: http://b/21523078\nChange-Id: Ice72766fb6ad3bd333c32b496e7870121e17a763\n"
    },
    {
      "commit": "624b8f17a1ce9b968f11e73231733442a07ac001",
      "tree": "2da8c232c98427e26074bcb5b78dccb5bff9f0db",
      "parents": [
        "d9dc13d4172516342ceebf1b16624ed9fdf3fca2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 08 10:41:33 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 08 10:41:33 2015 -0700"
      },
      "message": "Check if strtab exists before using it\n\nBug: http://b/21696087\nChange-Id: I1e22d5fd6fe2faead332249493123c9a085081e9\n"
    },
    {
      "commit": "1913352c6b3501893dfb45189754970f9dc6e7bb",
      "tree": "40cfe61bd454bfacb8f8aca029eee6a65beb7311",
      "parents": [
        "11b15b23aa6044b1fa2ce89744643a0cc072b348"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 02 17:36:54 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 02 18:09:23 2015 -0700"
      },
      "message": "Backward compatibility for dlsym(RTLD_DEFAULT, ...)\n\n Do not skip RTLD_LOCAL libraries in dlsym(RTLD_DEFAULT, ...)\n if the library is opened by application with target api level \u003c\u003d 22\n\nBug: http://b/21565766\nBug: http://b/17512583\nChange-Id: Ic45ed1e4f53e84cba9d74cab6b0049c0c7aa8423\n(cherry picked from commit 04f7e3e955ba7de5f449c995e667659319dc1cce)\n"
    },
    {
      "commit": "11b15b23aa6044b1fa2ce89744643a0cc072b348",
      "tree": "e0e8a119550b536a888d5371c80a22ab2a112e81",
      "parents": [
        "ef55f967234f160a4e00a51ca53377fadd17715d",
        "75108f4f830b533aced792d35e52841bf597f960"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 02 21:06:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 02 21:09:41 2015 +0000"
      },
      "message": "Merge \"Work around for libraries without dt_soname\""
    },
    {
      "commit": "75108f4f830b533aced792d35e52841bf597f960",
      "tree": "2e2d522c2ef4ee1112c903f594e30320ceef8bb3",
      "parents": [
        "d70891687d742414d457e41a998726e5eb0a09bd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 02 13:28:06 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 02 14:02:22 2015 -0700"
      },
      "message": "Work around for libraries without dt_soname\n\n Applies only for apps targeting sdk version \u003c\u003d 22\n\nBug: http://b/21565766\nChange-Id: If0bf2229dc1341e9ca09f9a05d0890515273d5a2\n(cherry picked from commit 38c37d6705f420ecac4146c11d79bee6e0ca8a03)\n"
    },
    {
      "commit": "f439b5a3186ca0fef1092f45770abc716da9d87a",
      "tree": "d85508ffcefb14495e90d6e0669440558f753367",
      "parents": [
        "d70891687d742414d457e41a998726e5eb0a09bd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat May 30 13:04:39 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 01 14:33:43 2015 -0700"
      },
      "message": "Fix dlsym(handle_of_main_executable, ...)\n\n  According to man dlopen(3) and posix docs in the case when si is handle\n  of the main executable we need to search not only in the executable and its\n  dependencies but also in all libraries loaded with RTLD_GLOBAL.\n\n  see also: http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlopen.html\n\nBug: http://b/21528224\nBug: http://b/17512583\nBug: https://code.google.com/p/android/issues/detail?id\u003d173822\nChange-Id: Ib2801367ba48b6f3704da89a6d9f5e6911430013\n"
    },
    {
      "commit": "d70891687d742414d457e41a998726e5eb0a09bd",
      "tree": "751f2fb12cd1c689ee850d28cc72fc3b0410850e",
      "parents": [
        "5511551009c5b8b7495af8278ffe914d4a8147b1",
        "3cec6eca929de5d627a8cc1fbe72c564ba5175cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 29 04:39:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 29 04:39:24 2015 +0000"
      },
      "message": "Merge \"[MIPS] Do not use compact branches until GDB supports them\""
    },
    {
      "commit": "5511551009c5b8b7495af8278ffe914d4a8147b1",
      "tree": "f822d8aa4551b3fda773763b58598e1053de276b",
      "parents": [
        "6c2dba8651f8cf9e406a5c7879fbaee1b0f29980",
        "087005f37e02b48809746947159d824493885b1e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 28 22:28:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 28 22:28:13 2015 +0000"
      },
      "message": "Merge \"Improve some of error/warning messages\""
    },
    {
      "commit": "d974e8804689058714dc4fe9adcb57ee9a6996a8",
      "tree": "f95bfd6c671f0119167054eee232ceb3634facb6",
      "parents": [
        "d717b1a3e55db9b7625a46bec950e856cc107951"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 27 18:29:41 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 28 14:56:42 2015 -0700"
      },
      "message": "Work around incorrect dt_needed entries\n\n  This applies for apps targeting sdk\u003c\u003d22 and\n  only for lp32 platforms.\n\nBug: http://b/21364029\nChange-Id: I903e81c9ccda2a8beaba1d132d68c77d30a4cdb2\n"
    },
    {
      "commit": "087005f37e02b48809746947159d824493885b1e",
      "tree": "86cca9819137291f35c63a668be83774738d1233",
      "parents": [
        "d717b1a3e55db9b7625a46bec950e856cc107951"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 28 11:44:31 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 28 11:44:31 2015 -0700"
      },
      "message": "Improve some of error/warning messages\n\nBug: http://b/20464031\nChange-Id: I948141c46f9e054fc45f5934153dee56ce3cd558\n"
    },
    {
      "commit": "79fd668bb4ddb22432eeda2ebd8d10359013d9a8",
      "tree": "c0f8b611a678275b2f6cab8e4d3b711a6a1aa3f2",
      "parents": [
        "aaafbe128f51dff92da3cf4f5fc9b47f04f05261"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 21 17:43:49 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 27 14:31:36 2015 -0700"
      },
      "message": "Add functions to provide target sdk version\n\nBug: http://b/21364029\nChange-Id: I8648d1bff6c8fd6e7cd12da7f128e048b9f2829a\n"
    },
    {
      "commit": "3cec6eca929de5d627a8cc1fbe72c564ba5175cc",
      "tree": "1d6458d15ce2b9901df8b88ba605c93ff1f54bef",
      "parents": [
        "ffe01a3de62d17cbe1cdf3b40a91d1ac9a9d36b5"
      ],
      "author": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Thu May 21 18:23:55 2015 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Mon May 25 16:28:14 2015 +0200"
      },
      "message": "[MIPS] Do not use compact branches until GDB supports them\n\nGDB does not yet have support for compact branches, and is not able\nto set a breakpoint on rtld_db_dlactivity(), which is compiled into\none JIC instruction. Unfortunately, We cannot turn off generation of\nJIC compact branch. Instead, add unoptimized FP handling code, so GDB\nwill have something to land on.\n\nChange-Id: Iddcf40ec018972398179018d049b8323fcd258b7\n"
    },
    {
      "commit": "b96ac41b32e61799c48f3fd07831cc168b95068d",
      "tree": "e385f6de4946a9b368fde057e66dc1c712a212fe",
      "parents": [
        "ffe01a3de62d17cbe1cdf3b40a91d1ac9a9d36b5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 22 12:34:42 2015 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 22 19:46:11 2015 +0000"
      },
      "message": "Fix RTLD_NEXT lookup for the local_group\n\n  Linker used to skip RTLD_NEXT within local_group when\n  caller-\u003enext is nullptr (which represents load order\n  but not the order within local_group dependency tree)\n\nBug: http://b/21380474\nChange-Id: I178fc4657b19bceb871635b177c1df67855b1708\n"
    },
    {
      "commit": "a42b5bcd896daa83b479e7964c0fa8cf1abf5a1d",
      "tree": "75049be14cb5bba94c21337385b38c03ee70d077",
      "parents": [
        "882283e9e2e64e596f1a244fa25d3586b2dea4da",
        "9185e04f72c16d2a66d92ac89b38ee926d7f706b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat May 16 16:56:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 16 16:56:49 2015 +0000"
      },
      "message": "Merge \"Apply work around b/19059885 to x86\""
    },
    {
      "commit": "9185e04f72c16d2a66d92ac89b38ee926d7f706b",
      "tree": "e6cf2006eb78c9fbd28a64573a40370508f91624",
      "parents": [
        "0378d8f65126b2d94c731f2719a68773e370f615"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 15 17:53:39 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 15 18:42:14 2015 -0700"
      },
      "message": "Apply work around b/19059885 to x86\n\nBug: http://b/19059885\nBug: http://b/21203348\nChange-Id: Ic375e9f877d68de8f866d17362879a7dde638465\n(cherry picked from commit 69a5fb951d69689dedd83cb033ae3dcd0ef05b65)\n"
    },
    {
      "commit": "882283e9e2e64e596f1a244fa25d3586b2dea4da",
      "tree": "c672f77ba00e449e82aa364434b26a96babc0ed8",
      "parents": [
        "1d52b8b07c327a6ef4936a7b9b08ddd4ee85002e",
        "4e8ef698d0d76be3f8d75de32701e6e6327c1fbd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 15 23:24:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 15 23:24:12 2015 +0000"
      },
      "message": "Merge \"Don\u0027t use TEMP_FAILURE_RETRY on close in bionic.\""
    },
    {
      "commit": "4e8ef698d0d76be3f8d75de32701e6e6327c1fbd",
      "tree": "c63f1d264df409ae6e57059fc9cd8deb4e4e0377",
      "parents": [
        "0378d8f65126b2d94c731f2719a68773e370f615"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 15 16:20:07 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 15 16:20:07 2015 -0700"
      },
      "message": "Don\u0027t use TEMP_FAILURE_RETRY on close in bionic.\n\nBug: http://b/20501816\nChange-Id: Id64b5109cc2b165fa0351b6edbb865a5e5058008\n"
    },
    {
      "commit": "e77e335b54f352d2e3b59518388d7354c22cd0cf",
      "tree": "08bb0164bf54c43f8cef0f445cdf4a2f1393e090",
      "parents": [
        "0378d8f65126b2d94c731f2719a68773e370f615"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 15 07:47:17 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 15 09:28:10 2015 -0700"
      },
      "message": "Fix regression in crash reporting\n\nBug: 19532651\n\nPartial revert of be0e43b77676338fd5e6a82c9cc2b6302d579de2\n\nChange-Id: I99e220328aff985facb920ebcd84ac1a016759b5\n(cherry picked from commit d7ad443cfd4e1315cdf45210bc94bb68e0564b8f)\n"
    },
    {
      "commit": "0346ad7a4fb6e253317577ee8b9cc79d958f4349",
      "tree": "aaf050b99510115a3f9cc496bac889518cc29811",
      "parents": [
        "fe77d2d0036306eec978eccf7b4db81fa424a2f3"
      ],
      "author": {
        "name": "Spencer Low",
        "email": "CompareAndSwap@gmail.com",
        "time": "Wed Apr 22 18:06:51 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 13 13:27:11 2015 -0700"
      },
      "message": "ScopedFd: Don\u0027t use TEMP_FAILURE_RETRY() with close()\n\nAccording to the comments in Posix_close(), TEMP_FAILURE_RETRY() should\nnot be used with close():\n\nhttps://android.googlesource.com/platform/libcore/+/462bdac45c10f43d88d8f07f6994e272a27c14a2%5E%21/#F12\n\nKill ScopedFd by simplifying the single caller.\n\nChange-Id: I248c40b8c2fc95f1938a6edfc245c81847fc44af\nSigned-off-by: Spencer Low \u003cCompareAndSwap@gmail.com\u003e\n"
    },
    {
      "commit": "fe77d2d0036306eec978eccf7b4db81fa424a2f3",
      "tree": "c91424930f302cd81ccca10ea4c88a2178030a2f",
      "parents": [
        "d0763ba07693ec1d56f94e53e615eb4d7019eefa",
        "697bd9fd38ab078a117ad9a5777cf286c467b9b9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 20:48:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 20:48:17 2015 +0000"
      },
      "message": "Merge \"Improved dlsym tests and fixes to linker\""
    },
    {
      "commit": "697bd9fd38ab078a117ad9a5777cf286c467b9b9",
      "tree": "f34ace69fa45951dbcd215dea1c040b549bf3c6f",
      "parents": [
        "75f2dfca653dd57b6f65bf898ec4f45d87d18926"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 11:12:27 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 13:46:40 2015 -0700"
      },
      "message": "Improved dlsym tests and fixes to linker\n\n Answers the question: what if dependent library\n was preloaded with RTLD_LOCAL flag.\n\n Also add test for RTLD_NEXT within local_group.\n\nBug: http://b/17512583\nChange-Id: I79e081e68b3a8c0ed8980d4275a06515fea94ec9\n"
    },
    {
      "commit": "f58ac87182da214c7cdd697a4fa09aeb7b995305",
      "tree": "9e3f98036cf6cc087ba9e476659dde06450b8a60",
      "parents": [
        "3ff027e5502503a8a7907dc51bb35feae5019d95"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:44:37 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:44:37 2015 -0700"
      },
      "message": "Update NOTICE files (the second time today).\n\nChange-Id: Ifb031d29ee697ee0682bd651e0081493e8016e67\n"
    },
    {
      "commit": "7e54c762fc799d81fe0a09bfdfcb7ab623503204",
      "tree": "19c7a12da3603a6e902cf01d019f0f8dcba5011f",
      "parents": [
        "8a330cad8db512f5119251f55ac7bf606c552ed0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:09:01 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:33:20 2015 -0700"
      },
      "message": "Update NOTICE files.\n\n(cherry-pick of f0bd92db8966b04062fda0986dacf80891e1a378.)\nChange-Id: I4e170118abf452dd87ffe79d343ba1e2b53955de\n"
    },
    {
      "commit": "8a330cad8db512f5119251f55ac7bf606c552ed0",
      "tree": "e304e2ba2a428e137dc8564d80d8c64757a61555",
      "parents": [
        "972d7fe63a2e0636b070bec266479c27e0bb8c5f",
        "c69ace87ec110a91005bdf19dbafeb355f399c06"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 17:27:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 17:27:04 2015 +0000"
      },
      "message": "Merge \"Simplify three copyright headers.\""
    },
    {
      "commit": "c69ace87ec110a91005bdf19dbafeb355f399c06",
      "tree": "de3925703500014e61f4383e20d0088b9a8558a2",
      "parents": [
        "fff06e624db96f1d876627fa0a122cdf65f41698"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:10:01 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 12 10:10:01 2015 -0700"
      },
      "message": "Simplify three copyright headers.\n\nThere\u0027s no reason to have multiple years in our own copyright headers,\nand given the stupidity of our NOTICE file generation, it just creates\nmore junk.\n\nChange-Id: I065a3811c2e2584e3b649a18ad9460286bc72b92\n"
    },
    {
      "commit": "3edb9182ff2fddfa2d835aab0cad151616f2eac5",
      "tree": "2970128f0c464fc1c6d9843da08e34b6566df666",
      "parents": [
        "fff06e624db96f1d876627fa0a122cdf65f41698"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 07 10:48:00 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 07 10:48:00 2015 -0700"
      },
      "message": "Use realpath for log and error messages\n\nBug: http://b/20885931\nChange-Id: Ida8ab7982ca75fa73da13c4cb10a6b2e53bc2c8e\n"
    },
    {
      "commit": "406d99665c71cf95af278c3244eb80745daaa0ea",
      "tree": "0354881037b9cdff7da39530289f0b330a0bb298",
      "parents": [
        "f3392791bc0f8f3638a04e15cea893c7c102f3c3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 06 11:05:27 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 06 12:04:57 2015 -0700"
      },
      "message": "VersionTracker: Ignore libraries without soname\n\nBug: http://b/20872443\nChange-Id: I7bd076885c1feae39af6ea64c9442bcc5ae5a1dc\n(cherry picked from commit 8264afb37778bea2a3c6e9aa7144f4877401c3f8)\n"
    },
    {
      "commit": "dbe26fdcc7de503539837467299b96c4a93084cc",
      "tree": "09944070d08e984face62ae29fb4f019b174e6e4",
      "parents": [
        "2c3d8d8b2c77a2439e324f8ef2369589024f33ed"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 04 19:30:49 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 04 19:30:49 2015 -0700"
      },
      "message": "Fix protected symbol lookups for mips\n\nBug: http://b/20694161\nChange-Id: I5cc58034f9776e1db9cddc34abe48ef85f6048f4\n"
    },
    {
      "commit": "f39cb63603da949325b4d186e870d0c3de01eb30",
      "tree": "39d151cabf9ca4702f1666101b6c25a5a954b931",
      "parents": [
        "7e4bbbae4a1e2034e6fa47ac2b0e1e7ca970acf0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 30 20:17:03 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 30 20:17:03 2015 -0700"
      },
      "message": "Lookup version info when relocating mips got\n\nBug: http://b/20693971\nBug: http://b/20139821\nChange-Id: I28bd3bc44dafe048761b2c598facfe20320128c4\n"
    },
    {
      "commit": "7e4bbbae4a1e2034e6fa47ac2b0e1e7ca970acf0",
      "tree": "be63e276f1c60b88ed06811497de551c52e9eb03",
      "parents": [
        "788ea593ec27f4bb8600c88d5717a914fe79ed8b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 30 19:49:19 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 30 19:49:19 2015 -0700"
      },
      "message": "Refactoring: move VersionTracker to link_image\n\n  Use one instance of VersionTracker per link (instead of 2).\n\nChange-Id: I6860013df65f5969975c82ebdae8bd90a82e0a82\n"
    },
    {
      "commit": "31b408d2c2e070c35838e7859ca4a4e5eb0c45fc",
      "tree": "a79f2ff20acf3747392d9e330d70833d2be1d119",
      "parents": [
        "6a4c9d9bf9e3d2679394850ab49a42f368e12c2d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 30 16:11:48 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 30 16:12:32 2015 -0700"
      },
      "message": "Refactoring: extract lookup_version_info(..)\n\nChange-Id: I47f9c21a1738dc520fd83281c8227dc3a7e79650\n"
    },
    {
      "commit": "f29640c2d8920c98f4cfd461d80c297a1cafa86a",
      "tree": "921bb4cac7bcf8fe53fc0c0e6a76b8031142fa46",
      "parents": [
        "c6b9b254dc042c9c2b8be72430a9f59803eb0794",
        "b4e5067cab9f17fa76bd7695f41a0b5070e10df8"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 29 23:44:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 29 23:44:57 2015 +0000"
      },
      "message": "Merge \"linker: initialize system properties\""
    },
    {
      "commit": "0373d4f47342e0a6f146af9023a146b0b707442b",
      "tree": "bc649cbeb6bdd3d44fb0d3eb0a8cfc55ffed4646",
      "parents": [
        "fa6f6496078426fe332a5ae9bba009c98dfabc94"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 29 14:41:06 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 29 14:41:06 2015 -0700"
      },
      "message": "Fix mips relocation to use load_bias as intended\n\nBug: http://b/20658994\nChange-Id: I5a15605fe34db359e26d563e13841ae993083c4a\n"
    },
    {
      "commit": "f8093a9485402584f75b774ddf2ca051fa9b8aad",
      "tree": "54330fd86df75f8d61555307b6fafff25685745e",
      "parents": [
        "b904afa16eb02266f4e72c241cc745340698f5fc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 18:09:53 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 18:09:53 2015 -0700"
      },
      "message": "Fix LD_PRELOAD for dlopen()\n\n We did not set DF_1_GLOBAL flag for LD_PRELOADed\n libraries which led to the situation when ld_preloads\n where ignored during on dlopen()\n\nChange-Id: I696b3b2506a8ed4c0984ad2c803210a7a4f8e686\n"
    },
    {
      "commit": "b4e5067cab9f17fa76bd7695f41a0b5070e10df8",
      "tree": "309dd23b580e5dfe11a23dd7b0e7f462a038bee9",
      "parents": [
        "b904afa16eb02266f4e72c241cc745340698f5fc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 15:49:26 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 15:52:52 2015 -0700"
      },
      "message": "linker: initialize system properties\n\nBug: http://b/20567629\nBug: https://code.google.com/p/chromium/issues/detail?id\u003d478886\nChange-Id: I8d2d89b749015e7fcd6e7ea646911f2e617dd1ba\n"
    },
    {
      "commit": "a85bcc2e99739420b5b4f9a5c337af1d26ac652b",
      "tree": "2ea2de9ad2720ad5e249765f602d1c6ab4434633",
      "parents": [
        "6fa65e7cd54aeffbb2eb2116e30d2d34a5b655a2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 13:34:16 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 14:21:36 2015 -0700"
      },
      "message": "linker: use libc\u0027s environ variable to store envp\n\n  This is to make getenv() work correctly.\n\nBug: http://b/20567629\nChange-Id: I148627e1efea1649fb0822c95876811652fb4082\n"
    },
    {
      "commit": "2ea504fed199a63c7f24f7fd3233affe5b6c940f",
      "tree": "db1bb4056a1bca3f22108313bb1d44949a1e9838",
      "parents": [
        "59bce688c7edfa2479f63a76268cc30f98d1044c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 27 11:16:11 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 27 11:24:36 2015 -0700"
      },
      "message": "Remove outdated warning\n\n It is ok to use malloc in linker.\n\nBug: http://b/20567629\nChange-Id: I54183dbe8ebcd223a44e710e511c339688a65dba\n"
    },
    {
      "commit": "18870d350c29c83bdcecbe5cf3715b2c800275f7",
      "tree": "8f41a50086a97f88be5bf98d2a2806a26d854d5a",
      "parents": [
        "9ceec1a75dfcc8b032aa3a974b0cfc3bff5a306e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 22 13:10:04 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 22 13:29:42 2015 -0700"
      },
      "message": "Always use signed leb128 decoder\n\n  Relocation packer no longer encodes relocation tables\n  using unsigned leb128: https://android-review.googlesource.com/147745\n\nBug: http://b/18051137\nChange-Id: I620b7188e5f3dd9d5123431aa1fc7feca76be607\n"
    }
  ],
  "next": "3d7bea1fa00342f2a18331ea33a4b6e3332b3b02"
}
