)]}'
{
  "log": [
    {
      "commit": "9d97008a68826b46c3b012fbaca02c4ba69f71ae",
      "tree": "74ba8d03b0483a6e48da6d25b6d0b08941a202bc",
      "parents": [
        "b33accf799fc9b3c1e247c9c03d3d341839b55a2"
      ],
      "author": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Fri Jun 16 14:43:16 2017 +0900"
      },
      "committer": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Mon Jun 19 00:12:45 2017 +0000"
      },
      "message": "linker_config_test: allow search paths of systems without a vendor partition\n\nlinker_config#smoke and linker_config.asan_smoke are trying to find\npaths under the /vendor directory. If there is no vendor partition,\nthe real path of them is started with /system/vendor.\n\nThis CL allows those paths in the tests by getting the resolved paths\nfor systems without a vendor partition.\n\nBug: http://b/62562515\nTest: linker_config_test passes without a vendor partition.\nChange-Id: Id6d16ef623efd81ab9083c3e819da2ad22a28bf8\n"
    },
    {
      "commit": "7a3681e5b6c39bc2b3b62031ca5941dbf7bc4e63",
      "tree": "78c25e2a38b7efed8db770a623a5cbfb7eaab11d",
      "parents": [
        "ca5e0f49ca5df873a20c996755175b5c9c1e2ed9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 24 17:48:32 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 03 08:50:43 2017 -0700"
      },
      "message": "Move libc_log code into libasync_safe.\n\nThis library is used by a number of different libraries in the system.\nMake it easy for platform libraries to use this library and create\nan actual exported include file.\n\nChange the names of the functions to reflect the new name of the library.\n\nRun clang_format on the async_safe_log.cpp file since the formatting is\nall over the place.\n\nBug: 31919199\n\nTest: Compiled for angler/bullhead, and booted.\nTest: Ran bionic unit tests.\nTest: Ran the malloc debug tests.\nChange-Id: I8071bf690c17b0ea3bc8dc5749cdd5b6ad58478a\n"
    },
    {
      "commit": "01de74e76d1131b5c5b0120d07e8f468ac5f8fac",
      "tree": "1cd468876895e1ed149efcde3382edeaddcdab31",
      "parents": [
        "627ed9162538d847ea4e530fd443570d37f57d65"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Apr 03 23:10:37 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Apr 28 10:14:28 2017 +0900"
      },
      "message": "linker: add android_get_exported_namespace\n\nDepending on how ld.config.txt is configured, there can be multiple\nbuilt-in namespaces created by the linker from the beginning of a\nprocess. android_get_exported_namespace is a platform only API for\ngetting a handle (android_namespace_t*) to one of the built-in namespaces\nwith given name. The returned namespace can then be given to\nandroid_dlopen_ext in order to explicitly specify the target namespace\nwhere the library is searched and loaded from.\n\nNote that this function only returns \u0027exported\u0027 namespaces created via\nld.config.txt file. In order to export a namespace, the visible property\nshould be set to true:\n\nnamespace.\u003cname\u003e.visible \u003d true\n\nNamespaces are hidden by default. Hidden namespaces and namespaces\nthat are created programmatically, notably \u0027classloader-namespace\u0027,\naren\u0027t returned by this function.\n\nBug: 36851137\nTest: confirmed that namespaces created with ld.config.txt is retrieved.\nTest: linker-unit-tests passes\nMerged-in: I714b510fa24f77e42c3dfc4c827b3befa8bb2951\nChange-Id: I0d05fa7e0e116009edf8ea362ab46774bc617cbf\n(cherry picked from commit d7c4832e6a640be972017e85ab21e72950dfeddd)\n"
    },
    {
      "commit": "b8ab61804cec48e4ca585f4508fb1b7c6c5a04c5",
      "tree": "4a1045e4b9e30c52e6c3886de8474c0aeb2c8996",
      "parents": [
        "12021ce9cf1ec1bc47cded3402ac9a3aa7b9b396"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:20:29 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:37:07 2017 -0700"
      },
      "message": "Move scopeguard into android::base\n\nTest: boot bullhead, bionic unit tests\nChange-Id: I223249684867655ecb53713b10da41d3014f96ae\n"
    },
    {
      "commit": "4cabfaad340c957ff691cfbc420b29da805c5dd8",
      "tree": "91df98d18f36ed19f857db91688c8b62f6f242de",
      "parents": [
        "e98d1e68ce37bb9238e3c50ea6b01d1057adb2eb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 07 11:19:05 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 24 15:50:45 2017 -0700"
      },
      "message": "Load namespace configuration from ld.config.txt\n\nThis change allows customization of default namespace\nconfiguration for different executables. It also enables\ntarget_sdk_version setup for binaries (note that this\noption should explicitly be enabled in ld.config.txt).\n\nBug: http://b/30706810\nBug: http://b/30435785\nTest: run linker-unit-tests/bionic-unit-tests, boot angler\nChange-Id: Ibbe87209acf1538fc9cec04944f3d22a190c38f1\n"
    },
    {
      "commit": "2a6d9b25437c42fd3e0284a6e7a607c842f59fe0",
      "tree": "b1154afd67ab484cd468e2c3dcb9d7960878d383",
      "parents": [
        "b3473f20db82fdc16b1c2dc8b51249277de399ca"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Mar 11 14:35:38 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 13 16:25:51 2017 -0700"
      },
      "message": "Extract format_string function.\n\nExtract format_string function and add a test.\n\nTest: run linker-unit-tests\nChange-Id: I794a29aaf62e184438ce1a9224b88aa0586c17b5\n"
    },
    {
      "commit": "bcc4da9b752f0def46d63ed7b31f3f49cc2435ad",
      "tree": "b4e59da798a4f613507a79072eabbaaa995fa447",
      "parents": [
        "606ba2762e6d1062a2cbf4599b7bdb60ce5cc404"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 15 15:31:13 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 15 15:35:33 2017 -0800"
      },
      "message": "Unify linker files under one license (BSD)\n\nHistorically we had part of the linker licensed under BSD and\nanother part under Apache 2 license. This commit makes all the\nlinker code licensed under BSD license.\n\nTest: m\nChange-Id: I11b8163ae75966b5768d3fe992679de376106515\n"
    },
    {
      "commit": "48ec288d40d272e6fe5e68c4c0a9778b55e24f8a",
      "tree": "4070843ac34ee5924221c2885b9ed6a26d03a5dd",
      "parents": [
        "b943f303a2d67d1e4c2fc8c4df3b4407888d777b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 04 11:50:36 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 08 16:12:53 2016 -0700"
      },
      "message": "Extract soinfo and globals to separate files.\n\nMove soinfo and globals out of linker.cpp to\nseparate files.\n\nBreaking up huge linker.cpp into smaller peaces\nin order to make it easier to extract part of the\ncode that belongs to libdl.so and remove parts of\nthe code that do not belong to linker\n\n(refactoring part 2 of many)\n\nChange-Id: I868417f4b8d2b84d0e8265e354bc7977161497e2\n"
    },
    {
      "commit": "fa4aeed2c60fb97a06e2550481b9ef4d0e100b7e",
      "tree": "cce7c56997a35fe2913053b8039bce381d3c6654",
      "parents": [
        "c9291e1bb51a9bf9fb64e382a094dc205de4287d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 05 13:29:50 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 05 16:42:17 2016 -0700"
      },
      "message": "linker: Add unit-test for sleb128_decoder\n\nAdd missing test for sleb128_decoder. Also remove\ndependency to static library because it exposes malloc/free\nwhich interfere with libc.so malloc/free causing test to crash.\n\nChange-Id: Iedd3268011df9f67ed58c0b58c71f34e30370b23\n"
    },
    {
      "commit": "aa9cb26ead0cb875075fb0c5cf78020c14daaff7",
      "tree": "ca08d0fe9e2aac83d26b8e4c0bcc7e9300de167f",
      "parents": [
        "85665af917c74ff88668c1c1bffe5455e9f779cc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 16 10:13:42 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Feb 16 14:43:12 2016 -0800"
      },
      "message": "Revert \"Revert \"Split out liblinker_malloc static library\"\"\n\nThis reverts commit 3bbeca7a1ae3d31cddd97fb6a0140c4cf7e39f8e.\n\nChange-Id: I5a757fcd52a14442c2eb7ca53f7d1f1923a4efe9\n"
    },
    {
      "commit": "3bbeca7a1ae3d31cddd97fb6a0140c4cf7e39f8e",
      "tree": "ebd6b34509a2198628aa5a25b76a8ff4af4c2804",
      "parents": [
        "a80564318a87c1efe76224b8591c707c54d51d2d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 15 19:19:35 2016 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 15 19:19:35 2016 +0000"
      },
      "message": "Revert \"Split out liblinker_malloc static library\"\n\nThis reverts commit a80564318a87c1efe76224b8591c707c54d51d2d.\n\nChange-Id: I63f16739a38f40ad930692176a4297ad1ce89570\n"
    },
    {
      "commit": "a80564318a87c1efe76224b8591c707c54d51d2d",
      "tree": "1b100b156e94372e2cee6b9ca0108dc4d7db588e",
      "parents": [
        "72bca4b4105e24058f3f2eca024382bedb122a30"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 11 13:48:49 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 11 13:48:49 2016 -0800"
      },
      "message": "Split out liblinker_malloc static library\n\nBug: http://b/14998480\nBug: http://b/25716705\nChange-Id: I8c7ba3971d1b17dbfc1a2ab5553aa04fe5da6677\n"
    },
    {
      "commit": "3edc5c41bbee7cf608a781e7056599f32ca1949c",
      "tree": "88b26c5a450fb4548479c109a68253e7a41c07e8",
      "parents": [
        "8d6e19408cfdbd73ba7e5c9e5b8716d9dad8dcf9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jan 21 10:55:40 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jan 21 14:28:33 2016 -0800"
      },
      "message": "linker: align allocated blocks to 16 bytes\n\nC/C++ requires the result of malloc/new to be\naligned for any primitive type.\n\nChange-Id: I715b7679e738f34b3b409993fb3ef242e1321b7f\n"
    },
    {
      "commit": "284ae3559ed909613b189b98bdc3efab94373a30",
      "tree": "7f525b5244599a2caa7692d3d179dde4bbb61fe3",
      "parents": [
        "df196131f3c16f1eddb1542c7e04c675e7f1fbda"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 08 10:47:13 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 09 13:54:01 2015 -0800"
      },
      "message": "Add permitted_when_isolated_path to linker namespaces\n\nThe permitted_when_isolated_path is a way to white-list\ndirectories not present in search-path. It is ignored for\nnot isolated namespaces.\n\nBug: http://b/25853516\nBug: http://b/22548808\nChange-Id: Ib1538037268eea69323ea49968a34a4a1d1938a5\n"
    },
    {
      "commit": "84bab5a9552cebf57795ade0e1abd5f7aee46479",
      "tree": "0c6fd9d36cd69f86c377a772b3d4b8f8e9ef333b",
      "parents": [
        "a1ab0d8ed1c4025233b0d816164eefb1b84159b9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 13:34:11 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 20 21:37:51 2015 +0000"
      },
      "message": "Move some utility functions to linker_utils\n\nAlso adds unit-tests for page_start, page_offset, and safe_add\n\nChange-Id: Ia1325b4682d367328a01599a19848e4ffcd2c0ea\n"
    },
    {
      "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": "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": "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": "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": "19656ce5376c95ce0deebc4d0c6af1bb8d740934",
      "tree": "3e78273c034d5890e12af1a00f9e9746ce3fec23",
      "parents": [
        "11a06c73f6e7d31442429a58a346d881b0a8a441"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 10 17:48:27 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 11:19:53 2015 -0700"
      },
      "message": "General purpose memory allocator for linker.\n\n Add basic general purpose memory allocator to\n linker in order to enable usage of other libraries\n like libziparchive.\n\nChange-Id: I4a680ebb36ed5ba67c61249f81dba9f567808434\n"
    },
    {
      "commit": "600bc3cb9342fbb1dc16ea25f5b676ce072e3e1b",
      "tree": "5892626ab8bfc8648476ba15f71d20e03e90da11",
      "parents": [
        "c9ce70d7838b6aae074fc3615cdf04e5c9ac612a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 10 15:43:50 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 10 15:43:50 2015 -0700"
      },
      "message": "Rename LinkerAllocator and LinkerAllocatorPage\n\nChange-Id: I87d80fbcd4ec26c0ee4f601b9c4c64f600418dd9\n"
    },
    {
      "commit": "c9ce70d7838b6aae074fc3615cdf04e5c9ac612a",
      "tree": "dac3026e1798737fd5edc364a82822bdfb078ae0",
      "parents": [
        "e842dc0de5ce5f9950e323ae8805909f60867bf6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 10 15:30:26 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 10 15:30:26 2015 -0700"
      },
      "message": "Refactoring: rename linker_allocator files\n\nChange-Id: Ifc08e64b3a85205f072b7abab1149c7ab71e2f75\n"
    },
    {
      "commit": "14152b9f31cc13c4fbffcbdf8155f3c3ee0c33a7",
      "tree": "7a89616b71b959783f0d8ce9aa67cc978edd770e",
      "parents": [
        "66eeec8e160feddc2b35c4ff9d20de92f37331dd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 19:01:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 19:01:58 2015 -0800"
      },
      "message": "Remove obsolete BUILD_TINY_ANDROID.\n\nChange-Id: If2fc97134340fd09ec2583b666ace2f673cbdf66\n"
    },
    {
      "commit": "14669a939d113214a4a20b9318fca0992d5453f0",
      "tree": "160b15f09cb7edc2da5b02e47cf3d5ce1461df97",
      "parents": [
        "320a01d51693408dad859094ca52e5f315ff1d15"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:42:53 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 13:02:50 2014 -0700"
      },
      "message": "Load libraries in breadth-first order\n\n  This patch fixes the problem with symbol search order\n  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries\n  and ld_preloads in correct order.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d74255\nChange-Id: If1ba5c807322409faa914e27ecb675e2c4541f0d\nAttempt: 2\n"
    },
    {
      "commit": "a4926058496c1c24c00ac07e42d45048dac7c487",
      "tree": "829a5e199cb60e89ab2f9be1e58281e7d3a9cc39",
      "parents": [
        "5120bcf9f11951bffd8ac595c2b70252ed4a4958"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 02 09:45:40 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 02 09:45:40 2014 -0700"
      },
      "message": "Implement LinkedList::visit()\n\nChange-Id: Ibd9d133dddf1f2e6e65660e3cd2dacafcc0c84d9\n"
    },
    {
      "commit": "4bea498544bb1377f610520d7f58856382a6e5fc",
      "tree": "5701b2f191fede78cd11b8f96c234b0ebd96bcc0",
      "parents": [
        "f4e721dd519db89c504c8944763811a3df956b32"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 29 14:01:48 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 29 17:09:24 2014 -0700"
      },
      "message": "Erase elements in LinkedList::remove_if\n\nChange-Id: I5119a78c73ffe780a81c53ab5ff0266d5c82d319\n"
    },
    {
      "commit": "aa0f2bdbc22d4b7aec5d3f8f5f01eaeaa13414c2",
      "tree": "3f70916c79cb9bff5f859d846e9e06c26a8cc2e6",
      "parents": [
        "a7dc7600fe1be1f3fd61856b407bb7065307e711"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jul 28 17:32:20 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 29 14:35:13 2014 -0700"
      },
      "message": "Fix dlsym(3) to do breadth first search.\n\n  dlsym(3) with handle !\u003d RTLD_DEFAULT|RTLD_NEXT performs\n  breadth first search through the dependency tree.\n\nBug: 16653281\nChange-Id: I017a6975d1a62abb0218a7eb59ae4deba458e324\n"
    },
    {
      "commit": "4151ea73b75e274d1ff80b42d9d457a783208516",
      "tree": "5095a8609376eccfc649da4af282d10da47abb06",
      "parents": [
        "7d22a4519610f830178bbff32d961a2784354397"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 24 15:33:25 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 24 15:33:25 2014 -0700"
      },
      "message": "Fix global variable initialization for linker\n\n Linker now calls init functions for itself.\n\nChange-Id: Ibd099812493041ac70f591e3f379ee742b4683b8\n"
    },
    {
      "commit": "fcac81ef04ade6f31eddb71bfc9a30a1ecf47840",
      "tree": "9b0cca03636c66607c78eb10927715de64f847ba",
      "parents": [
        "442d41fc128646d7f572da842d5d5b1918341c53"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 01 15:38:22 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 01 15:38:22 2014 -0700"
      },
      "message": "Native tests are now multilib\u003dboth by default\n\nChange-Id: I788ac0b871703c137727a65e017c4466127c0190\n"
    },
    {
      "commit": "d286796fce1e6fff407b719a53eb2afbeb96c327",
      "tree": "c1edc80194a19b7b443611acd0ffdea2ddfe130a",
      "parents": [
        "2f9400b679ffe08f7190781e64edda5edf0f7297"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 03 15:22:34 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 03 15:22:34 2014 -0700"
      },
      "message": "Turn on -Wunused and fix the mistakes it uncovers.\n\nChange-Id: I023d2d8b547fbc21d4124bb7510d42b06a0dc501\n"
    },
    {
      "commit": "d59e50063ad708509f3ad83350be33f5612c4f54",
      "tree": "4179117769c38d28aff06e56427f54e72e5eed6b",
      "parents": [
        "6897b7b8b95beae120fd53e6fd15921d6420bea7"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 09 09:10:14 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 14 15:16:35 2014 -0700"
      },
      "message": "Improve detection of already loaded libraries\n\nLinker is now able to resolve symlinked libraries correctly.\n\nsoinfo is extended to save the graph of dependencies during\nload/unload. Dependencies are used only in CallConstructor.\n\nBug: 9741592\nChange-Id: Id9c48a74c46aa89bcdf3d54ec2f8ba3d398130b1\n"
    },
    {
      "commit": "1079406cab09090cc11e26d4ac2f1ba9c4930cdb",
      "tree": "1990287fea9a5cc28410dfa1bc3ff3741ad1cfc2",
      "parents": [
        "c6b5834ceb3df72608a8fe3526a2db337e504512"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 14 12:52:57 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 14 12:52:57 2014 -0700"
      },
      "message": "Fix for linker allocator\n\nChange-Id: I18a3f1a8515657f0deb69266184fb516a27f90e8\n"
    },
    {
      "commit": "bc23e530c4db5175a065eeef36553c9c2c78fcf4",
      "tree": "dd0ef72c108a549ef4ac775be8cb4f43034ca29a",
      "parents": [
        "d597d263bc32422402d4810ce4ec070f0227c2f7"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 13 18:34:48 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 13 18:34:48 2014 -0700"
      },
      "message": "Remove page level mprotects\n\nFreeing block mprotects on the page which it turn\nmay lead to application crash if linker subsequently\ntries to modify another block on the page.\n\nBug: 14895266\nChange-Id: I8ff7f5df467d7be184242de652032b3c84e24b76\n"
    },
    {
      "commit": "d597d263bc32422402d4810ce4ec070f0227c2f7",
      "tree": "82c874dc2a5e8e1821a23af6c9d9fce7091be185",
      "parents": [
        "4b57305afe2b54a6afb733361f6fd93cb92ccfa8"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 05 16:49:04 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 12 21:40:09 2014 -0700"
      },
      "message": "Refactor linker allocator\n\nMakes it reusable for different fixed sized and not very\nbig structures (\u003cPAGE_SIZE).\n\nChange-Id: Id5ec13fc6541b1935ef7fe3671c22b98685abbae\n"
    }
  ]
}
