)]}'
{
  "log": [
    {
      "commit": "f1cee9662f689609bab846052f1eabb452d35064",
      "tree": "8730b37b4c5483ae3c9e45795aaaa511f7c78fae",
      "parents": [
        "73d17e7720983d4aee5ebe5d2910bcc3fcb8e1b8"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jun 30 15:36:12 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jul 13 10:18:56 2017 +0900"
      },
      "message": "__cfi_slowpath[_diag] are available to NDK and VNDK clients\n\nWhen a vendor lib (or vendor-available platform lib) is built with\nsanitizer on, __cfi_slowpath_diag is required. However, when building\nfor those libs, the llndk stub of libdl.so is provided for them and\n__cfi_slowpath_diag is not exposed to the stub. In order to make the\nsanitizing build successful, expose the symbol.\n\nThese symbols are also exposed to NDK clients since we may want to CFI\nfor unbundled apps.\n\nBug: 63053790\nBug: 63342219\nTest: BOARD_VNDK_VERSION\u003dcurrent m -j libstagefright_foundation.vendor\n\nChange-Id: I081deddb4f66354aaecec4b395d4e17e5566c578\n"
    },
    {
      "commit": "87a47e1bb202a26918993487db8dc82229833ef8",
      "tree": "8f06d30e39972f84ac8d255ced62559dc98acf45",
      "parents": [
        "fd478a8cba97680974494bc72727fba6d8136805",
        "01de74e76d1131b5c5b0120d07e8f468ac5f8fac"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 02 01:37:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 02 01:37:04 2017 +0000"
      },
      "message": "Merge \"linker: add android_get_exported_namespace\""
    },
    {
      "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": "db98fed03d4140bf71b6f87d9d5909f7736baa6c",
      "tree": "3315098366666ebcaf33f1392e741e9abdbba8ea",
      "parents": [
        "5deddda68e780aaa26e4777378fee10d543eb719"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 25 15:42:42 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 25 15:42:42 2017 -0700"
      },
      "message": "Make dl_iterate_phdr weak in libdl.\n\nThis needs to be defined as weak because it is also defined in libc.a.\nWithout this, static executables will have a multiple definition\nerror.\n\nTest: make checkbuild\nBug: None\nChange-Id: If2024ef4191c8ab7cf087d21d76fefdc92b58da1\n"
    },
    {
      "commit": "51a9bf16733595fcd7ffcde3cd3832262516a390",
      "tree": "f9c293c54697c4169cebeb36d696ee4bb6456991",
      "parents": [
        "df244d876a5da87161e550147cc03c4373b49ca6"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 14:09:18 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 11 15:15:30 2017 +0000"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nMerged-In: Ibfe4cf5db732d9007b1cc12dbc523c427de1b23d\nChange-Id: Ibfe4cf5db732d9007b1cc12dbc523c427de1b23d\n"
    },
    {
      "commit": "b8f7fde4bdfba5a65ef5a88265fdb79403e8a699",
      "tree": "e98bbe6b0ad4cccccbe00d5f4c903ab66be95c3e",
      "parents": [
        "a3ed901ef82fae908858f08a62e3d04f769c26ce"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Mar 20 14:07:47 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 05 22:42:08 2017 +0000"
      },
      "message": "Add LLNDK stub libraries for the VNDK\n\nThe stub libraries are the same as the (equivalent version) NDK, but\nthey also contain symbols tagged with \u0027vndk\u0027. Except there are none of\nthose in Bionic currently.\n\nFor headers, the LLNDK/VNDK isn\u0027t using a sysroot like the NDK. Nor is\nit hardcoding an explicit source path list like the platform. Instead it\nruns the bionic/libc/include directory through versioner like the NDK,\nthen exports those generated headers and the kernel headers from the\nstub library like any other exported header. Except it uses -isystem\ninstead of -I due to export_headers_as_system.\n\nTest: aosp_arm; m -j\nTest: Enable BOARD_VNDK_VERSION on aosp_arm; m -j\nTest: Inspect out/soong/build.ninja before/after (w/o vndk)\nChange-Id: Ief58a73907a83053b408b1d4b62999cba470d61c\n"
    },
    {
      "commit": "8229596d4125d87509f8510da234bb0a6c54d31b",
      "tree": "c3a24d2c42c941faf0ed154c5289e0a3ed3fc4a7",
      "parents": [
        "616b2d87eabee34559b12a3ddd3e057a1ad49879"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 14:23:50 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 14:24:40 2017 -0700"
      },
      "message": "Enable ld-android on linux_bionic builds\n\nBug: 31559095\nTest: Enable host bionic, run soong\nChange-Id: If94927c66c0c2dc74c213ca403d45e73508b0025\n"
    },
    {
      "commit": "7a34b9d57a762ca7cd6b8d6b9f9fb45c2b991da7",
      "tree": "8dad357eee8d7672069abd75a63717d65b5f8ae6",
      "parents": [
        "7d429d3c480166e1013bcdf68f4be479209aa509"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 03 14:07:34 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 09 23:26:44 2017 -0800"
      },
      "message": "Replace public library list with shared lib sonames (part 2/2)\n\nThis commit updates interface of libdl.c.\n\n1. android_init_namespaces is replaces with android_init_anonymous_namespace\n2. added 2 arguments to android_create_namespace to specify linked namespace\n   and the list of shared libraries sonames.\n3. symbol lookup does not get past boundary libraries (added check and test for it).\n\nBug: http://b/26833548\nBug: http://b/21879602\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nChange-Id: I32921da487a02e5bd0d2fc528904d1228394bfb9\n"
    },
    {
      "commit": "68ecec1965dcec08c7df3f0224d69604c683cd6c",
      "tree": "13d1842c2a6d22a8818f9d24d4f49273cfda5e3c",
      "parents": [
        "3c838bbb4aca12936aa3d8e96f3b04af3803d0f4"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 13:19:30 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Feb 02 14:44:46 2017 -0800"
      },
      "message": "Fix CFI initialization crash on x86.\n\nThird try.\n\nBug: 34752378\nTest: bionic tests\nChange-Id: I247c127489a8ee38404e104f28d916a704e35f36\n"
    },
    {
      "commit": "beb3eb1790dffc6e2f57a670aec89364944f66c4",
      "tree": "833fc173575d6617e7051fbd126e98fde1c80700",
      "parents": [
        "dd76f744e7a8431eb105f1e94fd1e407690a0b89"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 17:10:03 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 17:10:03 2017 -0800"
      },
      "message": "Revert \"Fix CFI initialization crash on x86.\"\n\nBreaks aosp-master/sdk.\n\nThis reverts commit 4ccd4317f9301ec9b32aa0d3317a0439b994d7bf.\n"
    },
    {
      "commit": "4ccd4317f9301ec9b32aa0d3317a0439b994d7bf",
      "tree": "10061ae5eae47aa226dbfc15658c1d44b9456884",
      "parents": [
        "eb35144e588dc3799b851b8504b0a7db6c9a0b91"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 13:19:30 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 31 13:44:55 2017 -0800"
      },
      "message": "Fix CFI initialization crash on x86.\n\nSecond try.\n\nBug: 34752378\nTest: bionic tests\nChange-Id: I0a7453154671918b2e6e72f0bb9074c29ceb0f34\n"
    },
    {
      "commit": "6fcd7a7d28aa6be42bbc99070c93d4d16b56ab57",
      "tree": "0daa51584f72beb67cbe072f34ca67898212f381",
      "parents": [
        "a5066640cc7274e317bf3bae2d960986d58dbbbd"
      ],
      "author": {
        "name": "Alex Cheung",
        "email": "alexcheung@google.com",
        "time": "Tue Jan 31 04:05:00 2017 +0000"
      },
      "committer": {
        "name": "Alex Cheung",
        "email": "alexcheung@google.com",
        "time": "Tue Jan 31 04:19:50 2017 +0000"
      },
      "message": "Revert \"Fix CFI initialization crash on x86.\"\n\nThis reverts commit be46d3871c91902504e5ec4c7f575c86f647aafc.\n\nReverting due to broken build:\n\nhttps://android-build.googleplex.com/builds/branch-dashboard/aosp-master?build_id\u003d3687823\n\nChange-Id: I30968398edd9a094fce878839ba0a002ed487a77\n"
    },
    {
      "commit": "be46d3871c91902504e5ec4c7f575c86f647aafc",
      "tree": "d202c0a4817459b1f6d5b971284b9afa2a9f795d",
      "parents": [
        "6a9e0c8f15dee1b1b7c5cd7f8e058c2b18683bbc"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jan 27 13:42:03 2017 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jan 30 14:29:48 2017 -0800"
      },
      "message": "Fix CFI initialization crash on x86.\n\nBug: 34752378\nTest: bionic tests\nChange-Id: If8e33f76a1a2d83356d818fed506ea624f579860\n"
    },
    {
      "commit": "0a3637d3eb2424d8e825ad1825f843450a888406",
      "tree": "dc0d4c31cddc2ff06902fcbdf4233f7759258764",
      "parents": [
        "1b2975d54b9c17ced29883aef24490773a4a9fe6"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 06 13:20:59 2016 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jan 18 13:13:52 2017 -0800"
      },
      "message": "Runtime support for CFI\n\nControl Flow Integrity support in bionic.\n\nGeneral design:\nhttp://clang.llvm.org/docs/ControlFlowIntegrityDesign.html#shared-library-support\n\nThis CL implements subsections \"CFI Shadow\" and \"CFI_SlowPath\" in the above document.\n\nBug: 22033465\nTest: bionic device tests\nChange-Id: I14dfea630de468eb5620e7f55f92b1397ba06217\n"
    },
    {
      "commit": "ac4bd2f79316e8ee79e9a69463e5d12d0f792aad",
      "tree": "4588bf97c4a1e218521094fb185c58a7f8c12562",
      "parents": [
        "f27e97956d6705c09f38442423f5e115cbe55f0f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 21 12:50:38 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 14 11:16:21 2016 -0800"
      },
      "message": "Add test for elf-hash and packed relocations\n\nThis adds CTS test for system libraries to support\nworkaround for http://b/24465209: some apps require\na subset of system libs to have elf-hash and not to\nuse packed relocations.\n\nBug: http://b/32917341\nBug: http://b/24465209\nTest: bionic-unit-tests --gtest_filter\u003dDl*:dl*\nChange-Id: Ia0bc28506b1f1f97d4cf902d73b0769e2815fed3\n"
    },
    {
      "commit": "4e84d5e4fa10a405c155bf7c655c2000d0ea6520",
      "tree": "ee32f41d9ad14662340c17c8da8c21ca5ff3f6c8",
      "parents": [
        "901de13c37912286db015b6f9113e39be46ce04d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 12 16:21:46 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 12 16:21:46 2016 -0800"
      },
      "message": "Repair dlwarning toast\n\nThis was introduced by d9e427cf41893377dcdd0650ba20ff7cf7d72209\nwhere libdl.c android_dlwarning method implementation was\nnot updated.\n\nThis makes it delegate the call to ld-android.so\n\nBug: http://b/33530622\nTest: build, flash and launch test app\nChange-Id: I8a379442de94724280638db73e5f7934f2ea394e\n"
    },
    {
      "commit": "d9e427cf41893377dcdd0650ba20ff7cf7d72209",
      "tree": "6515aceab94a11861876b6e145adb6922183ebff",
      "parents": [
        "227894a754eb11cb1203c359192d59654b01b93e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 22 16:55:25 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 09 14:53:59 2016 -0800"
      },
      "message": "Bionic loader is no longer hijacking libdl.so\n\nDo not hijack libdl.so methods but make libdl proxy calls to\nloader instead. This will be replaces by calls to libc.so\nonce loader functionality is migrated.\n\nAlso add a lock to dl_unwind_find_exidx function call.\n\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nBug: http://b/27106625\nChange-Id: Ic33a7109a86f4262798d63a35f4c61d15b0068bb\n"
    },
    {
      "commit": "dcb846cb4978130d5db6b795e22e08b65e73f3cd",
      "tree": "08d415c92e8008104cd11fd76574816be320c70e",
      "parents": [
        "c12acef96bd80c419654e159e1dc24a69513a86d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 06 02:10:13 2016 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 06 02:10:13 2016 +0000"
      },
      "message": "Revert \"Bionic loader is no longer hijacking libdl.so\"\n\nThis reverts commit c12acef96bd80c419654e159e1dc24a69513a86d.\n\nBreaks the Mips build.\n\nBug: 27106625\nChange-Id: I27edb7114065c36e1b618e387530d58189cdb184\n"
    },
    {
      "commit": "c12acef96bd80c419654e159e1dc24a69513a86d",
      "tree": "2c9ee33aa3467a7fa0765a7a2de6c686056b755c",
      "parents": [
        "f8b4ff4aa1c1a855627b8dc36f0675d69ab9109d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 22 16:55:25 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 05 11:19:19 2016 -0800"
      },
      "message": "Bionic loader is no longer hijacking libdl.so\n\nDo not hijack libdl.so methods but make libdl proxy calls to\nloader instead. This will be replaces by calls to libc.so\nonce loader functionality is migrated.\n\nAlso add a lock to dl_unwind_find_exidx function call.\n\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nBug: http://b/27106625\nChange-Id: I9e666e771e4bbca52151cfa7fc4c8677e1480818\n"
    },
    {
      "commit": "7ec52b12efc1c4ed9cd83ba8c95fab5bbf39aaf4",
      "tree": "091ac4e81ecc619f8116a3f229ad10f8c47e017d",
      "parents": [
        "11b362d284b49e070813cd459584ea3dabb20b1e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Nov 28 17:02:25 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 29 21:09:05 2016 +0000"
      },
      "message": "Enable libc/libdl/libm/linker for host bionic\n\nDisables debuggerd integration unless building for android.\n\nBug: 31559095\nTest: Diff out/soong/build.ninja before/after, only change is moving\n      linker\u0027s libdebuggerd_client static lib to the beginning of the\n      list.\nTest: lunch aosp_arm64-eng; mmma -j bionic\nChange-Id: I62e725f7a9b98b7fe31637d0a835fd5846b0aff0\n"
    },
    {
      "commit": "c30862fdbc99eaf4c3859e915846e2ef316b1a47",
      "tree": "8fed9a6b9eec7c4b4b7ccce1ea51e8053835463c",
      "parents": [
        "32d5592a6930ba4b05cbbed1b3e933d71cf7e794"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 20 11:45:16 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 20 11:48:55 2016 -0700"
      },
      "message": "One NOTICE file to rule them all.\n\nGenerate a single NOTICE file rather than one per library. All the\nheaders come from libc these days anyway.\n\nTest: tools/update_notice.sh\nBug: None\nChange-Id: I127da185fdabc2815042e19aea74c507ec108f46\n"
    },
    {
      "commit": "166f875eabdd2b7c508fc4ed1789a0d37fb1bdce",
      "tree": "b9c48a51010821f5705237dad593d00dc83adc78",
      "parents": [
        "c623e7efc9437f704995ae4eb278b3c9f931f89a",
        "5e071a18ce88d93fcffaebb9e0f62524ae504908"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 11 23:16:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 11 23:16:59 2016 +0000"
      },
      "message": "Merge \"dlerror returns char*, not const char*.\""
    },
    {
      "commit": "5e071a18ce88d93fcffaebb9e0f62524ae504908",
      "tree": "39f8f753321a562b980e0134dbe98e4400f4be24",
      "parents": [
        "f5042cab109f7136191fd316be1471532d2ddf71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 15:02:45 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 15:02:45 2016 -0700"
      },
      "message": "dlerror returns char*, not const char*.\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/functions/dlerror.html:\n\n    char *dlerror(void);\n    ...\n    The application shall not modify the string returned.\n\nChange-Id: I5e684bfd3930c39a2a30ea6fd005a5d5d3e5b181\n"
    },
    {
      "commit": "4519a4d1829c9e9f80cf45f1003e5937f1dfb04e",
      "tree": "2719992bb76440ecd2cd455537af34f76b039f2a",
      "parents": [
        "32a2e137a52497ca0662e89dc5c21f67ad7b1e5c",
        "e8a9108b4b79e6ac73aa5f6f7ce2ab38d75e05d1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 11 01:33:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 11 01:33:31 2016 +0000"
      },
      "message": "Merge \"Add ndk_library for libdl.\""
    },
    {
      "commit": "77a3e28e2ed465bc9eccbb0aae5265fac33de03c",
      "tree": "33bc75be7cf8b8ed5414c5258628825305a73d6f",
      "parents": [
        "4b10751310c398360c6fea786410413ba67c8423"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 08 12:39:56 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 08 12:39:56 2016 -0700"
      },
      "message": "Update NOTICE files.\n\nChange-Id: I591dc91b54804aebc05ba6f9974ef9add660ecfe\n"
    },
    {
      "commit": "e8a9108b4b79e6ac73aa5f6f7ce2ab38d75e05d1",
      "tree": "de4cae340fa0434f004dbd6d12860a39067065aa",
      "parents": [
        "ed9e6a41c92c9552be84ecc126e29b4604eee246"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 04 13:45:44 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 05 09:36:48 2016 -0700"
      },
      "message": "Add ndk_library for libdl.\n\nTest: make checkbuild\nBug: http://b/30465923\nChange-Id: I8acf82f319d3b22948868bc5c4c377f2348af266\n"
    },
    {
      "commit": "c8a95a3b15c752bcba84516589a9f2bd63f22ca6",
      "tree": "0cc41faee0e71370481305866cc24d8561103cab",
      "parents": [
        "1bcaf53d20ffbfe0c18d8fefa3daed324590b2d3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 04 15:39:05 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 04 15:39:21 2016 -0700"
      },
      "message": "Run genversion-scripts.py.\n\nChange-Id: I01c4d9a85d3397b02b00b4d33fafe6d9ae692ed7\n"
    },
    {
      "commit": "1bcaf53d20ffbfe0c18d8fefa3daed324590b2d3",
      "tree": "2d3f44869e030a9b510bdfffdda4482566106062",
      "parents": [
        "f0b53115aeb96159ddb493dbe19b587ce612ac07"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 04 13:43:20 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 04 13:43:20 2016 -0700"
      },
      "message": "Annotate libdl.map.txt.\n\nTest: readelf diff between soong generated stubs and prebuilts/ndk\nBug: http://b/30465923\nChange-Id: Ic34734b40870c8b628449458798c0343648e4e97\n"
    },
    {
      "commit": "37ba9052b0a20499bd88e4ad4f3b834300637912",
      "tree": "67dfe3c65256d7d0dfdaff14dfe9f99b33aaf574",
      "parents": [
        "ea701b37905c4e3c8eda9932224e013d97b4ccea"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 02 15:20:36 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 02 15:33:53 2016 -0700"
      },
      "message": "Run genversion-scripts.py.\n\nChange-Id: Iecc1b127c67a96aecc4e86582c1cc3291a4acf00\n"
    },
    {
      "commit": "769b33fadf45a039741f932672ac2c4f901d7d4a",
      "tree": "bf29858de176dd3bf144c547174eb99e1727e85a",
      "parents": [
        "c5e79567e0b02eb3a02d6b2820b901d4ba392e87"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Jul 21 11:33:40 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 01 19:47:27 2016 +0000"
      },
      "message": "Sync linker with internal branch\n\nThis change includes dlwarning implementation and\nthe compatibility greylist for apps targeting pre-N.\n\nChange-Id: Ibf02a07cc58cbbb1a5aef4ac34558c5d43e4305f\nTest: Run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\n"
    },
    {
      "commit": "7510c33b6122961f2eb8800ca0543acfc8dd4636",
      "tree": "15e33600334276ebe0c5f3e2609916444a44f116",
      "parents": [
        "5fa57176746b78a3c42b909104d9cf4690ff14cb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 26 16:11:51 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 26 16:41:57 2016 -0700"
      },
      "message": "Remove deprecated Android.mk files\n\nThese directories all have Android.bp files that are always used now,\ndelete the Android.mk files.\n\nChange-Id: Ib0ba2d28bff88483b505426ba61606da314e03ab\n"
    },
    {
      "commit": "27c43c505e4bc58a6ad6603ef466745df1392115",
      "tree": "1797850f7867a82f0022dd565e9da6b52fae2d02",
      "parents": [
        "668fddb3ba36b52a16381513b1a0a42d9dd910e1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 07 13:27:24 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 15 16:36:13 2016 -0700"
      },
      "message": "Update sanitize property format\n\nChange-Id: I2fd35d6d85c7da7e96ffcefcd81350c836f0db9c\n"
    },
    {
      "commit": "7a622dacf1c08cdc702bc7b6b45511a0d0248f12",
      "tree": "21b204b8715c4dc7753b2e2a566fd8fe55f2e110",
      "parents": [
        "3ae69aab0eabc635f0801fa157cce3a04b6ed08d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 13 15:01:37 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 13 16:41:31 2016 -0700"
      },
      "message": "Move linker-namespace functions to LIBC_PLATFORM\n\nBug: http://b/28174921\nChange-Id: I089dbeeea813fc2128b9c2f6268a578d23a1954a\n(cherry picked from commit 7095da8d3c0f45e41aff5ca3d61aa7c442e21bdf)\n"
    },
    {
      "commit": "e5c872ffb73ba798a3e2e2a95c1e2caba8c53284",
      "tree": "1adc8dd6b755bef3c176be7b26e0de30647d79a3",
      "parents": [
        "506456c5d1ba281cb01c224679fc86d7a4c99ade"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Mar 03 13:10:23 2016 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Mar 23 16:25:42 2016 -0700"
      },
      "message": "genversion-scripts: fix script name in autogenerated comment\n\nChange-Id: I2a304818cfc54d08a08d2e621e4cf74e7ce465dd\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "98cdef39dccad972a527b274be08a1905047a39a",
      "tree": "e6d14e40bafe5eda4b36b96131ff9a9c3ba4e2a9",
      "parents": [
        "e97d8ed70e44db619de9975a43ed2d1509653d74"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 02 11:41:22 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 02 11:41:22 2016 -0800"
      },
      "message": "libdl: Rename LIBC_PRIVATE to LIBC_PLATFORM\n\nBug: http://b/26386014\nChange-Id: I3255faac66a96867aed302e205e3644b40ce7750\n"
    },
    {
      "commit": "b4931cee769ca3c60a2cb77f68078df893286cf0",
      "tree": "cdd4c8ddd5334f4514cd4251ff63cf202f68a51e",
      "parents": [
        "3dbdb9dbe6907ebf322e7dae6df9fb3aadd4854b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 08 17:00:12 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 08 17:00:12 2016 -0800"
      },
      "message": "Update NOTICE files.\n\nChange-Id: I6c4628534c5842c9835ead1bfff6582c5dce38e3\n"
    },
    {
      "commit": "7331fe18d7ffd550996e07b534bc7a6cf625afa5",
      "tree": "ffad9be2c77f5c3c1ad164aa055a0e4b08f91cb1",
      "parents": [
        "4afd635be1b956c40f36758a482e6d83502fbb42"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 14 14:11:17 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 19 23:38:27 2015 -0800"
      },
      "message": "linker: implement shared namespaces\n\nShared namespaces clone the list of loaded native\nlibraries from the caller namespace. This allows\nclassloaders for bundled apps to share already loaded\nlibraries with default namespace.\n\nBug: http://b/22548808\nBug: http://b/26165097\nChange-Id: I8949d45937fdb38e1f586ff0679003adac0d9dad\n(cherry picked from commit e78deef364d952dd1141a2f3067a12060aaf11e6)\n"
    },
    {
      "commit": "9cf99cbad89c8495828788ce693a99ced434f66f",
      "tree": "fa089662db2475f6e4e1260f029fcab805eb0a96",
      "parents": [
        "d3e5301a75256171199b23f6ba2c6651d05ce5f1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 14:22:24 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 16 15:24:13 2015 -0800"
      },
      "message": "linker: add dlvsym(3)\n\nThis changes implements dlvsym - dlsym for versioned symbols.\n\nBug: http://b/22865643\nChange-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f\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": "1ffec1cc4d0e283bb1ff6f49843769a3493b8d73",
      "tree": "083c8af007b9a2e2ed01fbde2eea50ded648e114",
      "parents": [
        "a7fc7f9909c221a0f64c5c5ecc5fadd5fba467c5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 11:26:35 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 16:13:10 2015 -0800"
      },
      "message": "Introduce anonymous namespace\n\nThe anonymous namespace is introduced to\nhandle cases when linker can not find the\ncaller. This usually happens when caller\ncode was not loaded by dynamic linker;\nfor example mono-generated code.\n\nBug: http://b/25844435\nBug: http://b/22548808\nChange-Id: I9e5b1d23c1c75bc78548d68e79216a6a943a33cf\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": "9e6f98fe9df0b10c2b414d85faa3d8833abe49b5",
      "tree": "dfd78472adc7d94089c116bf6ce4d0e839a41e41",
      "parents": [
        "af909869d868585a47914ab51536192da50935cb"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 03 14:30:57 2015 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 03 14:30:57 2015 -0800"
      },
      "message": "Update Android.bp with arch-specific version scripts\n\nChange-Id: I59b34f21b54e8a2084bb318a08c4092064f48083\n"
    },
    {
      "commit": "bc75047a1b0e68006077ea2e5f798475c90cbad0",
      "tree": "7c94f45c3cdad194c42241db85fccf21dd35ff53",
      "parents": [
        "e75453d5dd8b373f6e7ef61ec22a6a3074d51e02"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 30 17:43:27 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 30 17:43:27 2015 -0700"
      },
      "message": "Generate libdl.so per-architecture version script\n\nBug: http://b/24767418\nChange-Id: I3d5775ba44d4c8e7fc5f2fbebae10e022100f1e2\n"
    },
    {
      "commit": "208ae17e5f05ce26f2fa830c6d60c055d1d3f86a",
      "tree": "95857ecee983b8e7741f96c229b5762db0fd4f68",
      "parents": [
        "14545d4ce3dd446f20a14dcff37d60ff8d756f7a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 16 16:33:27 2015 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 16 16:50:01 2015 -0700"
      },
      "message": "Add Android.bp for libc/libm/libdl\n\nChange-Id: I3537363849ba1244348996ff17c5ace1b95dbeee\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": "11ea08c5cbc47db16f6c024338fbe9f6f456ce80",
      "tree": "aa7f4b50ac77ecff24b4f214c1779acbce3e99af",
      "parents": [
        "df11f340cac2e7aa5ef69c3180d0f4089f46c96b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 16 13:57:54 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 16 13:57:54 2015 -0700"
      },
      "message": "Use new sanitizer option.\n\nChange-Id: I21b04a1f3be3b10ee557bf9e0caa5db638686364\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": "da194780b1ae4487aa630bef4e720694acf4da82",
      "tree": "5b73dede38b5070796ee200bb80628318bae3c27",
      "parents": [
        "92b9cb2c899c386954b8f9ad8111aa6c8c63e306"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Dec 18 08:03:49 2014 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Dec 18 08:03:49 2014 -0800"
      },
      "message": "Disable ASAN for more of our libraries.\n\nSince ASAN depends on these libraries, we need to exclude them from\nbeing instrumented.\n\nChange-Id: I62005b6d04ee7b2283c4bd54ace5304386c67358\n"
    },
    {
      "commit": "a4ed64d4c3fa5ddb90d037d42294b5032d9b175a",
      "tree": "6b28358ac5ca38f970d08b931ef39308c9231b47",
      "parents": [
        "aa66e8828048d8d6fd7e4bb9c5e341ed89614266"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 26 15:23:07 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 26 15:23:07 2014 -0700"
      },
      "message": "Add a dummy libdl.a.\n\nChange-Id: I4b30b8875f14352bae2948ab8cf544ae818795ab\n"
    },
    {
      "commit": "3ec67de0513c1d7e5f41f7f17e8251122a0cc9d2",
      "tree": "638e7c37b25a173771a85133388ed083e15a52ff",
      "parents": [
        "36a5aa057cf1738577754a3fc16a14a5f817109f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 16 10:10:25 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 17 14:22:36 2014 -0700"
      },
      "message": "Exclude libstdc++ from linked libraries.\n\nAlso explicitly add libstdc++ includes for necessary targets.\n\nChange-Id: If712ba0ae7908d8147a69e29da5c453a183d6540\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": "012cb4583a5f8564059142bb1900ea3a31e7cfa9",
      "tree": "60d2a27a83766f6ad6d20b124feb0bc48a332593",
      "parents": [
        "26c2bb84dd5cbd9ab43a5f0ebc2635bc3b64be3d"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Feb 06 14:34:21 2014 +0000"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Apr 17 13:50:55 2014 +0100"
      },
      "message": "Add android_dlopen_ext() interface to linker.\n\nAdd a function \"android_dlopen_ext()\", defined in \u003candroid/dlext.h\u003e.\nThis is an extended version of dlopen() which takes a struct for passing\nadditional parameters for Android-specific functionality. This will be\nused to support RELRO section sharing between separate processes.\n\nBug: 13005501\nChange-Id: I9c99b2f2a02ee329dedaeba09ef3a1113b17b2d6\n"
    },
    {
      "commit": "1682c63d777d7b008415c2166dd896444e3f1596",
      "tree": "94398681f6fb6196cc4e71ce8d56044c5439329d",
      "parents": [
        "5acce960f40f51107301398f9cadff680a634951"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Jan 23 15:15:28 2014 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Jan 24 16:50:16 2014 -0800"
      },
      "message": "Use arch-specific variable to set up the x86 ld flags.\n\nBug: 11654773\nChange-Id: I9e9075bac1303cfa39b0f717dd74625ce1dd5fa5\n"
    },
    {
      "commit": "7ac975146ea7bc1ee7499bafc4e0b57b7ee56c98",
      "tree": "5a83c6b27714a3a51281bafa574548d1ac28b4bb",
      "parents": [
        "d971f7290529310df6f8d4ba8b3a30f629ba2946"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 14 17:25:13 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 14 17:25:13 2014 -0800"
      },
      "message": "Fix libdl build warnings, turn on -Werror.\n\nChange-Id: I71c39b77ac1e9a92482ce71a829449100945ec86\n"
    },
    {
      "commit": "a4aafd156068ee174012f28cd894dbecf0e4ab90",
      "tree": "d55b5e77d1fa752db1f374d0baec3afc9c15ecd5",
      "parents": [
        "ebc1c76d77dd604f16126e66b2171e8ee6fa1d22"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 13 16:37:47 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 13 16:37:47 2014 -0800"
      },
      "message": "Make it possible for code to query the dynamic linker\u0027s default search path.\n\nWe\u0027re not going to have init(1) set LD_LIBRARY_PATH globally on 64-bit.\nThis patch makes it possible for libnativehelper to set LD_LIBRARY_PATH\nin each Java VM (to support System.loadLibrary) without also hard-coding\nthe default search path there.\n\nChange-Id: If13961fae976e06dd80d5ef522f31e8b7eb01154\n"
    },
    {
      "commit": "a567a8e4bd9036bcb74a0a028235a48d8b2a115e",
      "tree": "ac2de610671b7ed24481bc1034b1919bdc1745ae",
      "parents": [
        "4eaa1e1ea8e4ba4fed31e4bd884e27683db90d81"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Tue Dec 18 17:30:02 2012 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 15:36:08 2013 -0700"
      },
      "message": "x86_64: Update Makefiles for x86_64 targets and add symlinks\n\nUse basic .c versions of all functions for x86_64 until they are\nmanually optimized and .s versions released.\n\nChange-Id: I59bba08931e894822db485c8803c2665c226234a\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "24053a461e7a20f34002262c1bb122023134989d",
      "tree": "5da0ad5fe8822190483226140c7fba6a9f618395",
      "parents": [
        "df7436e709035fb6f5667980042848c8b4ca3e79"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 19 17:45:09 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 06 09:53:54 2013 -0700"
      },
      "message": "Add the dl_iterate_phdr function to libdl for arm.\n\nBug: 8410085\n\nMerge from internal master.\n\n(cherry-picked from cb491bc66dc0abc145930b09086eb9189a30f6c2)\n\nChange-Id: I94ed51bc5d4c626df7552c0e85c31ccee2d6568f\n"
    },
    {
      "commit": "8f7120bbacb0bb7a8aca1102f76f64a462f40231",
      "tree": "ea3f120e146a043018529c4cd42b7632a5646ca0",
      "parents": [
        "800ad8249a398e94d039b6f6597e2a51558e41dd"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Mar 22 10:25:56 2013 +0800"
      },
      "committer": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Mar 22 10:28:15 2013 +0800"
      },
      "message": "Drop unnecessary execution permission for .cpp/.c/.h\n\nChange-Id: I9ac2b9d8f6bdb4fab8962210c5ec8f9c3e8c0ebf\n"
    },
    {
      "commit": "cade4c36e7c9c62db3f476a0f9cfc329bac9acb7",
      "tree": "ba27e7e4734b952421de2d7060a7a53e295a60d3",
      "parents": [
        "4b58214205d3d29dbdfed49964010235ef3f0403"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 20 14:42:14 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 20 14:42:14 2012 -0800"
      },
      "message": "Support System.loadLibrary for libraries with transitive dependencies.\n\nAlso fix the FLAG_ERROR annoyance --- it\u0027s not helpful to cache failures.\n\nBug: 7896159\nBug: http://code.google.com/p/android/issues/detail?id\u003d34416\nBug: http://code.google.com/p/android/issues/detail?id\u003d22143\nChange-Id: I60f235edb4ea4756e1f7ce56f7739f18e8a50789\n"
    },
    {
      "commit": "22d629211d72adaf46f3fc48f59540f8e5798b1e",
      "tree": "98ff73ae376f40abae72a869702276b0d35d2adc",
      "parents": [
        "db4fdf1aafb63b09ee967066d9b8107a9812db2d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 12 10:50:21 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 12 10:50:21 2012 -0700"
      },
      "message": "Make the dlfcn mutex static.\n\nMore style fixes too, and removal of yet another lingering SH reference!\n\nChange-Id: Iebc34a46475dd11845ad172b9108bb6ddd7585bb\n"
    },
    {
      "commit": "32dbc03c73dc1f9d1fcd072086d894a9eb25aecd",
      "tree": "cd9ba7f5de95b4435c6eb99695ba15246806d9de",
      "parents": [
        "fe43c768ec803a1febde0424bb5e69c343dd7ae9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 15:43:13 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 15 15:43:13 2012 -0700"
      },
      "message": "Regenerate all NOTICE files with the latest version of the script.\n\nThis sorts every entry, so we should have more stability and fewer\nmerge conflicts in future.\n\nChange-Id: Ifc5347dc53352da22c82d41ca59b483966fcfc6b\n"
    },
    {
      "commit": "ae5c64413bf72bc18d7fc81e1f5761824bc01f49",
      "tree": "910859328e35be8af64308ad002b0d290bc738f1",
      "parents": [
        "66fba00991f03d07c72f809d033b88748f839bda"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 14:06:05 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 13 14:06:05 2012 -0700"
      },
      "message": "Add dependencies on all the makefiles.\n\nThis should help prevent broken builds next time I\u0027m messing with\nassembler/compiler/linker flags...\n\nChange-Id: I30f15a3ce3c3f3c60cad7bc59aaba9f42d792224\n"
    },
    {
      "commit": "387d4b7de9af2afd0c37a895ff9d012eb1f66156",
      "tree": "a515a4be8d2881d734a6b1c2a2e4f1fdd0c43e1d",
      "parents": [
        "709bb0f79ced522e5fb145182472ee4063b85368"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 09 15:17:46 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 09 16:05:31 2012 -0700"
      },
      "message": "Auto-generate a complete NOTICE file.\n\nRemove the hand-collated ones, and switch to a script that pulls the\ncopyright headers out of every file and collects the unique ones.\n\nChange-Id: Ied3b98b3f56241df97166c410ff81de4e0157c9d\n"
    },
    {
      "commit": "e33af61c7073719b027e038fbcdde49363b604ee",
      "tree": "a716f29090aec47bbd62f5b66e2494e751e51183",
      "parents": [
        "cf8e554c72af1dd634d4f36a9065e34e853f8714"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 15 17:03:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 15 17:08:41 2012 -0700"
      },
      "message": "Remove the last references to SuperH.\n\nChange-Id: Icb44c1f94cb178d90b4c2b1e8f6d175586aec4e1\n"
    },
    {
      "commit": "726800e8f42f25a1bf7a36b1603ded29266e8ac6",
      "tree": "20a3971ce514a9c0a163662df988ce7fbcef5317",
      "parents": [
        "10579fc43d3ade285eed7318aee062a999f2784d"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris@mips.com",
        "time": "Tue May 01 17:45:53 2012 -0700"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Fri May 04 11:34:40 2012 -0700"
      },
      "message": "MIPS support to libm, libdl and libthread_db\n\nChange-Id: I9106721af7fe0cd45df82976250db0d300a20117\nSigned-off-by: Raghu Gandham \u003craghu@mips.com\u003e\n"
    },
    {
      "commit": "bda5da074eab4bdf374e1f4a19d480c62c72f5ff",
      "tree": "87a4c2fd35e6b071476d4a5fd02aca7c61c6e3f9",
      "parents": [
        "00964912745f0bb7e081f84ddcc74940f973149f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 27 22:30:19 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 28 12:17:34 2011 -0700"
      },
      "message": "fix prototype of dladdr\n\nthis breaks C++ source code in particular.\n\nChange-Id: Ie06b5d31d23b5455e6950c470adc64dd5e7784df\n"
    },
    {
      "commit": "7e5d19c055e50232fc566978e2bab332ccc6894e",
      "tree": "98bf68cb3ea6dacbb84632c8aa494ce907f138a2",
      "parents": [
        "221595a085fc8fa4eed2c4143402a085aa931aed"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:11:41 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:11:41 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I9064e3221582fcf3d4210d67f1cf0a96e7e3aa86\n"
    },
    {
      "commit": "e2a8b1fd19fb3a8ead2ba28ddba27be19fa978b5",
      "tree": "e5448ec45187a37dbade76fcf10115f91135a8bd",
      "parents": [
        "ede2e75f4942293342dfb8dfd4751369600ed8f1"
      ],
      "author": {
        "name": "Matt Fischer",
        "email": "matt.fischer@garmin.com",
        "time": "Thu Dec 31 12:17:40 2009 -0600"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Wed Mar 17 16:11:37 2010 -0500"
      },
      "message": "Added support for dladdr()\n\ndladdr() is a GNU extension function, which allows the caller to retrieve\nsymbol information for a specified memory address.  It is useful for things\nlike generating backtrace information at runtime.\n\nChange-Id: I3a1def1a6c9c666d93e1e97b7d260dfa5b9b79a9\n"
    },
    {
      "commit": "efecfde19a1af5aacbd77a6124968df2d7a49a83",
      "tree": "8d00b42d3429177f697dc7a8abf225c39827e16c",
      "parents": [
        "90ec5f2a3f581927ffef55733e8d531890fdc90e"
      ],
      "author": {
        "name": "Shin-ichiro KAWASAKI",
        "email": "shinichiro.kawasaki.mg@hitachi.com",
        "time": "Mon Aug 31 16:39:32 2009 +0900"
      },
      "committer": {
        "name": "Tony Sim",
        "email": "sim.chinyeow@renesas.com",
        "time": "Mon Aug 31 16:39:32 2009 +0900"
      },
      "message": "added and modified libdl to support SuperH architecture\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "9f65adf2ba3bb15feb8b7a7b3eef788df3fd270e",
      "tree": "c06064fc9022ef63a40f83a91292103784f49780",
      "parents": [
        "d37527501c85edcb3a6a7c8a0b6297d52d434897"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
