)]}'
{
  "log": [
    {
      "commit": "bcaa454d32e1b4ccf92467bb263d627695ac9a5b",
      "tree": "65d7d4c493242ecb51bfe1796f133b32538de514",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:20:23 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:26:39 2019 -0700"
      },
      "message": "bionic tests: use GTEST_SKIP.\n\nAlso be a bit more to the point in our messages, focusing on \"why\" not\n\"what\".\n\nTest: ran tests\nChange-Id: I297806c7a102bd52602dcd2fcf7a2cd34aba3a11\n"
    },
    {
      "commit": "6c619a0da3f96a26d91c1db48fd3e3be156aabe5",
      "tree": "aa0802d01d19ed0891e6b77a732cc72ed5617dcc",
      "parents": [
        "4e167f35d602f9dcede3b74ff3e09e88f3edb398"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 17:59:51 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 07 08:39:55 2019 -0800"
      },
      "message": "Refactor the malloc_info code.\n\nmalloc_info needs to be per native allocator, but the code treated it\nlike a global function that doesn\u0027t depend on the native memory allocator.\n\nUpdate malloc debug to dump the actual pointers that it has been tracking.\n\nTest: bionic-unit-tests pass.\nTest: malloc debug tests pass.\nTest: malloc hook tests pass.\nChange-Id: I3b0d4d748489dd84c16d16933479dc8b8d79013e\nMerged-In: I3b0d4d748489dd84c16d16933479dc8b8d79013e\n(cherry picked from commit a3656a98b10d2a4a6194a5d9705ad9c2cc5877b0)\n"
    },
    {
      "commit": "4e167f35d602f9dcede3b74ff3e09e88f3edb398",
      "tree": "2fbda87a91cc77ce24cee78c5e7d3f3dc8d7fc45",
      "parents": [
        "b8ef55a4f841cb1e790e97776ee51419ec5d9bd1",
        "ddcf488ef606886eed334a1bc5069de803940890"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Wed Mar 06 23:05:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 23:05:24 2019 +0000"
      },
      "message": "Merge \"bionic-unit-tests should depend on libandroidicu instead\""
    },
    {
      "commit": "ddcf488ef606886eed334a1bc5069de803940890",
      "tree": "4ca60773d76a637896fcd19f3de66f50d6a9e92e",
      "parents": [
        "e65558a0a4ad1f4aee5d63d0661b02f910e0cbd8"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Mar 06 18:12:07 2019 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Mar 06 18:29:55 2019 +0000"
      },
      "message": "bionic-unit-tests should depend on libandroidicu instead\n\nbionic has been moved to use libandroidicu instead of libicuuc.\nThis CL updates the unit test\n\nBug: 120659668\nTest: m bionic-unit-tests \u0026\u0026 adb push out/target/product/walleye/data/nativetest/* /data/nativetest \u0026\u0026 adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests\nChange-Id: I59a0589d18bfd6753215dc07874f3c472bd64cca\n"
    },
    {
      "commit": "a22f5d5175df5c42ec86d2c2db250edf1f64084c",
      "tree": "66d2980a1b04626c7e4fc1437e96194b958ea8f8",
      "parents": [
        "0771b752f1b955e7ded6ccbbf825b0ae93439eb5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 16:40:59 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 23:56:23 2019 -0800"
      },
      "message": "Make aligned_alloc match the standard.\n\nJemalloc does not verify that the size parameter is a multiple of\nalignment. Fix this since it only went into P.\n\nFix the unit tests, and fix malloc debug/malloc hooks to handle this\nnew restrictive behavior.\n\nBug: 126944692\n\nTest: Ran bionic unit tests.\nTest: Ran bionic unit tests with malloc hooks enabled (no new tests fail).\nTest: Ran bionic unit tests with malloc debug enabled (no new tests fail).\nTest: Ran malloc debug unit tests.\nChange-Id: I4d50785928815679c781ca729f998454d76b9192\n"
    },
    {
      "commit": "7cdbd0d477176e0973beb7328e40c328aa73d1e5",
      "tree": "6de43a0fb91dd75eb0eb89f4a003b32e6e8e3c0d",
      "parents": [
        "b656d4a1da35eac817950f906ce1c26259c05e82",
        "efbe9a5eefce28db6d1dbba18c212eb45915cf78"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 21 16:06:17 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 16:06:17 2019 +0000"
      },
      "message": "Merge \"linker: allow using reserved space for multiple libraries.\""
    },
    {
      "commit": "efbe9a5eefce28db6d1dbba18c212eb45915cf78",
      "tree": "0e35795b7b52bc65af89143af0662b5b0f4ce3e1",
      "parents": [
        "73ee7a6320024c8f390d954a01b7a067c919bfc4"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Wed Oct 17 15:59:38 2018 -0400"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Wed Feb 20 17:29:36 2019 -0500"
      },
      "message": "linker: allow using reserved space for multiple libraries.\n\nIntroduce a new flag ANDROID_DLEXT_RESERVED_ADDRESS_RECURSIVE which\ninstructs the linker to use the reserved address space to load all of\nthe newly-loaded libraries required by a dlopen() call instead of only\nthe main library. They will be loaded consecutively into that region if\nthey fit. The RELRO sections of all the loaded libraries will also be\nconsidered for reading/writing shared RELRO data.\n\nThis will allow the WebView implementation to potentially consist of\nmore than one .so file while still benefiting from the RELRO sharing\noptimisation, which would otherwise only apply to the \"root\" .so file.\n\nTest: bionic-unit-tests (existing and newly added)\nBug: 110790153\nChange-Id: I61da775c29fd5017d9a1e2b6b3757c3d20a355b3\n"
    },
    {
      "commit": "9da8ff1270c18665c6267d7862f415b04d567aab",
      "tree": "9087657cf0526e92d57e240b8147cb1f4b3301e3",
      "parents": [
        "f84d0a95bd237e56c6aa7cbdce786ef611c53254"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 19 13:23:49 2019 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 19 13:24:59 2019 -0800"
      },
      "message": "Waive AID Range check for devices through Q\n\nWe still don\u0027t have a good way to create vendor AIDs in the system or\nother non-vendor partitions, therefore we keep this check disabled.\n\nBug: 73062966\nTest: treehugger\nChange-Id: I7aed425899d6ec11a22702ccec82476eacdbc790\n"
    },
    {
      "commit": "cf6cec84899e8e28d06a0739c69cf0883e5a8ffb",
      "tree": "b350bcf2504046254fc6fc044fbf88c6d5efe448",
      "parents": [
        "a192c50e5aa5f7f16b0a1eceb16e2229a320e4ac",
        "7d2aea09ddced6e8a1435e862470a5f5cc9f1757"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 15 23:03:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 15 23:03:00 2019 +0000"
      },
      "message": "Merge \"bionic/malloc_iterate_test: Adjust callback for procinfo::ReadMapFile\""
    },
    {
      "commit": "c2136b51aadf05aa2668827470430deeebb01aba",
      "tree": "4789f394e6acc9d51c5b9d71711694172a8b63f6",
      "parents": [
        "40f18976dbb8bc3def6c65f13c94e8c4a345fc20",
        "e4cdbc47549680db6ada24fdb6a22e68409d578a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Feb 13 18:38:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 18:38:22 2019 +0000"
      },
      "message": "Merge \"Refactor malloc common into distinct pieces.\""
    },
    {
      "commit": "e4cdbc47549680db6ada24fdb6a22e68409d578a",
      "tree": "cb1f89abc61a2272aa30d0b8e0dcd2b4738f3562",
      "parents": [
        "c682e3b6e5549aea7be655f81bf22a4431c9c955"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 08 17:30:58 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 12 14:19:07 2019 -0800"
      },
      "message": "Refactor malloc common into distinct pieces.\n\nThe pieces:\n- The malloc common shared by static and dynamic code (malloc_common.cpp).\n- The code for shared libraries that includes any dlopen\u0027ing\n  (malloc_common_dynamic.cpp).\n- The implementation of perfetto\u0027s heapprofd (malloc_heapprofd.cpp).\n\nThis makes it easier to see what\u0027s going on in the many different areas.\nIt should also make it easier to add the allocation capping option.\n\nOther related changes:\n- Update the unit tests for android_mallopt. All of the current options\n  don\u0027t work on static binaries, so make sure that is reflected in the test.\n- A few names changes to make sure that all code is consistent.\n\nTest: Ran tests (malloc hooks/malloc debug/perfetto/bionic unit tests).\nChange-Id: I0893bfbc0f83d82506fac5d1f37cf92fbdef6f59\n"
    },
    {
      "commit": "7fda2c9495b95a9ac956c3bee9d989b3a93340f1",
      "tree": "0628d7deac12f66a1b05d3d43ebbbdf505901e70",
      "parents": [
        "808d176e7e0dd727c7f929622ec017f6e065c582"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Feb 11 18:25:41 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Feb 11 18:37:17 2019 -0800"
      },
      "message": "Only test tprel_missing_weak in dynamic binaries\n\nRename a test to be less confusing when this file tests unresolved weaks\nwith both TPREL and TLSDESC relocations.\n\nBug: http://b/123635978\nTest: bionic unit tests\nChange-Id: Id17d76a41159d134d16e84a699cc284662eb99bb\n"
    },
    {
      "commit": "7d2aea09ddced6e8a1435e862470a5f5cc9f1757",
      "tree": "ba5fa43b6207b5d435d75e1f0ba5f2e085aa35b2",
      "parents": [
        "1d3c56bc308c34217e36def4b408d8bae390924e"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Jan 30 17:45:48 2019 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Sun Feb 10 17:27:39 2019 -0800"
      },
      "message": "bionic/malloc_iterate_test: Adjust callback for procinfo::ReadMapFile\n\nBug: 123532375\nTest: Builds\n\nChange-Id: I8e782d9050b4d6a0726e8c880d4064df99c763e5\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "4e56228637b5e82fad30ce11b231a5bfe1cf46ea",
      "tree": "5711a3b2a2c73f7f0f3be630be0e604f6e74dd27",
      "parents": [
        "1d3c56bc308c34217e36def4b408d8bae390924e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 07 14:20:03 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 07 14:20:03 2019 -0800"
      },
      "message": "Fix flakiness of mallinfo test.\n\nThe test was really only supposed to verify that mallinfo eventually\nincrease after allocations of certain sizes. Sometimes the mallinfo\nreturned decreases due to some compaction event, so don\u0027t fail in that\ncase.\n\nBug: 124060188\n\nTest: Ran the test 2000 times (32 bit and 64 bit). It would fail within about\nTest: 200 test iterations before.\nChange-Id: Ie019107be163dcf275cedf4d1bc5759278def483\n"
    },
    {
      "commit": "1d3c56bc308c34217e36def4b408d8bae390924e",
      "tree": "f3ce84c1abcf978dc02eea46d55877e60f37aa29",
      "parents": [
        "5569bc7d34b69de4b7eaf443e825637770d3ea0d",
        "6cb719f0ed2d59ed88d79e8b36147c49975753c9"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu Feb 07 12:28:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 12:28:00 2019 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Allow dlopen(\"/system/lib/\u003csoname\u003e\") for pre-Q\"\"\""
    },
    {
      "commit": "6cb719f0ed2d59ed88d79e8b36147c49975753c9",
      "tree": "21ee650264fe65ec145f21049336b1aad925975b",
      "parents": [
        "73ee7a6320024c8f390d954a01b7a067c919bfc4"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Feb 06 17:19:10 2019 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Thu Feb 07 01:17:37 2019 +0000"
      },
      "message": "Revert \"Revert \"Allow dlopen(\"/system/lib/\u003csoname\u003e\") for pre-Q\"\"\n\nThis reverts commit 1906e77665758c61b0d97c35f3d64225f296504a\nand fixes dlopen(nullptr)\n\nIt\u0027s enabled for the following .so libraries\nlibicuuc.so\nlibicui18n.so\n\nThis CL does not move the .so files into a APEX.\nThus, no visible effect before moving .so files.\n\nBug: 121248172\nTest: dlfcn#dlopen_from_nullptr\nTest: Perform the following test after moving libicuuc to /apex\n      dlopen(\"/system/lib64/libicuuc.so\") for targetSdkVersion \u003c Q\nChange-Id: Ia310ea566485fe00ca28e2203f4bffbd92243638\n"
    },
    {
      "commit": "f827d82cdde0fe7f11015fb5ead39bac861ab6bd",
      "tree": "a322a9f7b880e20144916208388ed2540fd60c9e",
      "parents": [
        "73ee7a6320024c8f390d954a01b7a067c919bfc4",
        "7cc670637005e88e00be467c6c387112644a9209"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Feb 06 22:04:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 22:04:09 2019 +0000"
      },
      "message": "Merge \"Cleanup bionic tests with hwasan.\""
    },
    {
      "commit": "7cc670637005e88e00be467c6c387112644a9209",
      "tree": "0141df753769639688cc216287be3f7f76d5cbdf",
      "parents": [
        "352853a53525ecb2a120dfa4e9aa03b3970df8ee"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Feb 05 18:43:34 2019 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Feb 06 13:59:16 2019 -0800"
      },
      "message": "Cleanup bionic tests with hwasan.\n\nThe tests were patched earlier to run with tagging heap allocator.\nThis change enables hwasan code instrumentation in the tests themselves,\nand fixes the issues that arise, mainly in the code that:\n* compares addresses of unrelated stack variables\n* compares address of a stack variable with stack limits as found in\n  /proc/self/maps\n* writes address of a stack variable to a hardware watchpoint register\netc.\n\nNote that static tests are broken at the moment, like all static\nbinaries. Dynamic tests pass 100% with this change.\n\nBug: 114279110, 124007027\nTest: SANITIZE_TARGET\u003dhwaddress; run dynamic bionic tests\n\nChange-Id: I68b8df9dd3e30b47734ddc083811a75a7f27deaa\n"
    },
    {
      "commit": "3f8bdb216cf3c1faab805917efed74119971f84d",
      "tree": "9a4c0cdc4d65c56cefb1e00152129e3e560cb2c6",
      "parents": [
        "9a5c0fc9d3ec59f4a64b86f835745b9695ee9e43",
        "352853a53525ecb2a120dfa4e9aa03b3970df8ee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 06 16:42:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 16:42:47 2019 +0000"
      },
      "message": "Merge \"Fix use-after-pthread_exit in a test.\""
    },
    {
      "commit": "166dfd6f49c125245fbf53935c18d305b526c63a",
      "tree": "65b68b5a2b80ca5bdde39cffdf6b8dce940f1867",
      "parents": [
        "e7c5954b31c23d00a60ed2403660917df6c5ae9e",
        "288465d6e908a4a2b9f8ed27834fc5861bae0ed3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 06 16:39:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 16:39:33 2019 +0000"
      },
      "message": "Merge \"Avoid writing to a zero-capacity buffer.\""
    },
    {
      "commit": "352853a53525ecb2a120dfa4e9aa03b3970df8ee",
      "tree": "b70292ae9c4cf2945228126b893bf8d0596fb863",
      "parents": [
        "de70b72b4f408a7100000e632e9b887347a531b3"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Feb 05 17:37:37 2019 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Feb 05 17:37:37 2019 -0800"
      },
      "message": "Fix use-after-pthread_exit in a test.\n\nHWASan reports access to a local variable after the owning thread has\ncalled pthread_exit.\n\nBug: 114279110\nTest: enable hwasan in tests/Android.bp; run pthread_DeathTest.pthread_bug_37410\nChange-Id: Ic04a2b3dce092d7ab3cbefab1da64731e0c7afb9\n"
    },
    {
      "commit": "288465d6e908a4a2b9f8ed27834fc5861bae0ed3",
      "tree": "60ed2b0f19354c21223fd8539c68a32568fe3c42",
      "parents": [
        "5c45c4efb28f103112ed8765386184d802afea73"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 05 15:00:13 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 05 15:00:13 2019 -0800"
      },
      "message": "Avoid writing to a zero-capacity buffer.\n\nBug: http://b/120752721\nTest: ran tests\nChange-Id: I3f03ae204ab5de40fd4402a5562c50ffe51ef998\n"
    },
    {
      "commit": "fbac97a54c4dd2b59fd6b891ae4ba3023dc1aa71",
      "tree": "818243866f70ee6c9b90d6e126343736cc69daad",
      "parents": [
        "5c45c4efb28f103112ed8765386184d802afea73"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 04 16:46:24 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 05 12:15:27 2019 -0800"
      },
      "message": "Move NetBSD string routines to OpenBSD.\n\nNetBSD seems to be the least well maintained of our three BSD upstreams,\nand it\u0027s already the one we use the least. Let\u0027s push a little further\nin that direction...\n\nTest: new smoke tests\nChange-Id: Idfebd11794445fe14cbfa07177a7392a7b36a5e4\n"
    },
    {
      "commit": "3912efa503c419a855bf904dd36240427eedd7b7",
      "tree": "d584f8e3ae86aa1f5c450bb835fccfd24dd44be2",
      "parents": [
        "c1d579798e26da5222a9ef60c65774969978a5c5",
        "5bb113cba279f93fb840954463e897b9e28a8660"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 04 16:42:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 04 16:42:27 2019 +0000"
      },
      "message": "Merge \"Pass caller names to __pthread_internal_find for better errors.\""
    },
    {
      "commit": "c1d579798e26da5222a9ef60c65774969978a5c5",
      "tree": "5f3cefd72a619e705b0265956858dc289f5f8e7d",
      "parents": [
        "e930e109357771c2c4df8aa5cf51f89e6836409d",
        "7a0f04cb8dbfa900ce5fedb4979b5358efc5dad9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Feb 03 00:04:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 03 00:04:46 2019 +0000"
      },
      "message": "Merge \"Implement ifunc support for static executables.\""
    },
    {
      "commit": "5bb113cba279f93fb840954463e897b9e28a8660",
      "tree": "bb0ef349f69afba98ee358d5b21a77aeab59076b",
      "parents": [
        "58dd1cbd7f2a0b8a779f2f43c45447cdccc09c3e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 16:31:10 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 16:31:10 2019 -0800"
      },
      "message": "Pass caller names to __pthread_internal_find for better errors.\n\nOn http://b/122082295 we had this abort:\n\n  12-27 15:29:31.237 10222 10814 10848 F libc    : invalid pthread_t 0xb1907960 passed to libc\n\nThis wasn\u0027t super helpful. We can do better. Now you get something like\nthis instead:\n\n  03-27 02:34:58.754 25329 25329 W libc    : invalid pthread_t (0) passed to pthread_join\n\nTest: adb shell crasher\nBug: http://b/123255692\nChange-Id: I1d545665a233308480cc3747ec3120e2b6de0453\n"
    },
    {
      "commit": "c378180cb80370c70b519ae41c30eee8642babf1",
      "tree": "f76ee78d56e4c0f4c48d9dc582b4bda13034cc26",
      "parents": [
        "58dd1cbd7f2a0b8a779f2f43c45447cdccc09c3e",
        "fa4dcb418dec2801dcbf0d651a819289fc1c60ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 01 16:15:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 01 16:15:44 2019 +0000"
      },
      "message": "Merge \"dlfcn.dt_runpath* tests are amended to handle LIB\""
    },
    {
      "commit": "18181e6a0a55bb8778e82b5fbc0f7090380ea87d",
      "tree": "756a68e1676145785fcd7e4be1643ba9a31c118c",
      "parents": [
        "ccc0922653904525147b670f0aa25aa85c0d2022"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 30 13:52:36 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 30 13:52:36 2019 -0800"
      },
      "message": "Updates for glibc 2.17.\n\nBug: http://b/111358231\nTest: builds\nChange-Id: I542b2a9acc74261ad12b78e4add0f3ae77c3656c\n"
    },
    {
      "commit": "fa4dcb418dec2801dcbf0d651a819289fc1c60ce",
      "tree": "0504a5f1eeb91f69df47f526ed2b47cf54c052d4",
      "parents": [
        "aa3dd3d520f84a59dd1455eee9c70d7c2bc08df0"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sun Jan 20 01:41:42 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jan 30 21:05:03 2019 +0900"
      },
      "message": "dlfcn.dt_runpath* tests are amended to handle LIB\n\nLIB is now expanded to either lib or lib64. Add a new lib\nlibtest_dt_runpath_y which is under lib or lib64 directory to the tests.\n\nTest: run bionic-unit-tests\n\nMerged-In: Ib051d8cae4d50b452759d594c87126b45bc9e959\nChange-Id: Ib051d8cae4d50b452759d594c87126b45bc9e959\n"
    },
    {
      "commit": "aa3dd3d520f84a59dd1455eee9c70d7c2bc08df0",
      "tree": "8e347da8539a3498943085746ba80f6bff84dfdc",
      "parents": [
        "d7873cf94ee3c7a7b0fa24e1e932694c78416cd4",
        "06d2d790adc8cc487881dc56234bb55c1c8c6901"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 30 04:46:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 30 04:46:54 2019 +0000"
      },
      "message": "Merge \"Add tests for dynamic ELF TLS\""
    },
    {
      "commit": "d7873cf94ee3c7a7b0fa24e1e932694c78416cd4",
      "tree": "fc4663053c4fbbb33cddd6fb507a1c604e337a68",
      "parents": [
        "3c9c75974ead1b84d197d2f10172a7a2f344ea24",
        "08fd072525b682ff3c23207c179506d886f70556"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jan 29 22:24:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 29 22:24:58 2019 +0000"
      },
      "message": "Merge \"bionic: update for glibc 2.17\""
    },
    {
      "commit": "06d2d790adc8cc487881dc56234bb55c1c8c6901",
      "tree": "a7e6e1ca632724a10aed5a2e03e774f24c1935b4",
      "parents": [
        "ffaae70936a12e310cb1b468566d39f0f7dbcdf0"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 23 23:19:19 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 29 08:35:10 2019 +0000"
      },
      "message": "Add tests for dynamic ELF TLS\n\nBug: http://b/78026329\nTest: bionic unit tests\nMerged-In: I508fa38b331eeec7dae53039b4b1ec6cedea3034\nChange-Id: I508fa38b331eeec7dae53039b4b1ec6cedea3034\n"
    },
    {
      "commit": "ecdc451ccf9e3f6fa4a89ec99f0f59b0a8080516",
      "tree": "106c9d3feab344ad09751f27a728b2de4f19df41",
      "parents": [
        "543b4013e7e24813b33709750fe86ca190f0ac4c",
        "16455b5100ea46b930c1fa84d6bc905b7977643d"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Jan 28 19:32:59 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 28 19:32:59 2019 +0000"
      },
      "message": "Merge changes I3c9b1292,I05c28d6a,I788c4a95,If8cd798f,I1c8d1cd7, ...\n\n* changes:\n  Implement dynamic TLS accesses and allocation\n  Implement TLS_DTPMOD and TLS_DTPREL relocations\n  Ignore DT_TLSDESC_GOT / DT_TLSDESC_PLT\n  Disable the dlfcn.dlopen_library_with_ELF_TLS test\n  Add BionicAllocator::memalign\n  Move the linker allocator into libc\n  Replace some of linker_allocator\u0027s header includes\n"
    },
    {
      "commit": "122ecb1ca8023d32211b61004b1a107d83490b5c",
      "tree": "167d935c15e77f73cef1c53e673eb690aeca9b83",
      "parents": [
        "70ee1825d0e8c72570c834db0f27ab806de5d857",
        "4e02cc185873c9ab0b6be6260f987cbdfe87f5d5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Jan 27 03:42:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Jan 27 03:42:35 2019 +0000"
      },
      "message": "Merge \"bionic_unit_tests: Remove dependency on libpagemap\""
    },
    {
      "commit": "5f5a1929e8bd883c79669dc5dd2348d9cec1d1a6",
      "tree": "9bcd21c4e14268e538c2728474ae48b222020b33",
      "parents": [
        "96773a2daf8d11f2d95801935e26f71eb0265559"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 25 16:14:31 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 25 17:53:01 2019 -0800"
      },
      "message": "Disable the dlfcn.dlopen_library_with_ELF_TLS test\n\nThis test is verifying that an ELF TLS solib can\u0027t be loaded, but once\nELF TLS is implemented, it *can* be loaded. Removing the test requires\ncoordinated changes with internal test suites.\n\nI could modify the test to verify that the solib was successfully loaded,\nbut support for dynamic ELF TLS appears across a few different CLs.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: If8cd798f456568a5c76310b754cea48ca8edaa82\n"
    },
    {
      "commit": "7a0f04cb8dbfa900ce5fedb4979b5358efc5dad9",
      "tree": "8c0eb6f10e030bccf38330cfa00b74b8bcf9af6d",
      "parents": [
        "176d2fbcaefe4691b8fd7844f6cec8e7a1a22c76"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Jan 23 17:56:24 2019 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Jan 25 16:25:27 2019 -0800"
      },
      "message": "Implement ifunc support for static executables.\n\nA static executable is almost entirely statically relocated by the\nlinker, with the exception of IRELATIVE relocations, which must be\nresolved by libc by enumerating the relocations using the special\nlinker-defined symbols __rela?_iplt_{start,end}. This patch implements\nifunc support by enumerating the relocations in this way.\n\nBug: 112482891\nTest: /data/nativetest{,64}/bionic-unit-tests-static/bionic-unit-tests-static on walleye_hwasan-userdebug\nChange-Id: Ia5522a190da0b86e095b141d5d4e68dd7dd4b695\n"
    },
    {
      "commit": "96773a2daf8d11f2d95801935e26f71eb0265559",
      "tree": "44a8da51e6b6acfb7054830a44e23b00d82afefc",
      "parents": [
        "083d850b30c5eb29c16500bca934d7f6682e4aaa"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 24 15:22:50 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 25 15:31:35 2019 -0800"
      },
      "message": "Add BionicAllocator::memalign\n\nBionic needs this functionality to allocate a TLS segment with greater\nthan 16-byte alignment. For simplicity, this allocator only supports up\nto one page of alignment.\n\nThe memory layout changes slightly when allocating an object of exactly\nPAGE_SIZE alignment. Instead of allocating the page_info header at the\nstart of the page containing the pointer, it is allocated at the start\nof the preceding page.\n\nBug: http://b/78026329\nTest: linker-unit-tests{32,64}\nChange-Id: I1c8d1cd7ca72d113bced5ee15ba8d831426b0081\n"
    },
    {
      "commit": "083d850b30c5eb29c16500bca934d7f6682e4aaa",
      "tree": "5138d02782bff5e30af0c97cf114000674ca8771",
      "parents": [
        "52165b34b9c36eae4e15c47c25ab3c51b2029592"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 24 13:47:13 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 25 15:31:35 2019 -0800"
      },
      "message": "Move the linker allocator into libc\n\nRename LinkerMemoryAllocator -\u003e BionicAllocator\nRename LinkerSmallObjectAllocator -\u003e BionicSmallObjectAllocator\n\nlibc and the linker need to share an instance of the allocator for\nallocating and freeing dynamic ELF TLS memory (DTVs and segments). The\nlinker also continues to use this allocator.\n\nBug: http://b/78026329\nTest: /data/nativetest/bionic-unit-tests-static\nTest: /data/nativetest64/bionic-unit-tests-static\nTest: /data/nativetest/linker-unit-tests/linker-unit-tests32\nTest: /data/nativetest64/linker-unit-tests/linker-unit-tests64\nChange-Id: I2da037006ddf8041a75f3eba2071a8fcdcc223ce\n"
    },
    {
      "commit": "4e02cc185873c9ab0b6be6260f987cbdfe87f5d5",
      "tree": "5a6f0b6fa9dfd4db23475df20bb502c043944ffc",
      "parents": [
        "822326db922ac5d0e4dea8cff1d774e8f04db94a"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Jan 21 14:22:05 2019 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Fri Jan 25 13:07:02 2019 -0800"
      },
      "message": "bionic_unit_tests: Remove dependency on libpagemap\n\nUse libmeminfo instead.\nBug: 111694435\nTest: bionic-unit-tests --gtest_filter\u003dDlExtRelroSharingTest.*\n\nChange-Id: Ice217a91a16ee0216354608b2776c0f1e5f65c09\nMerged-In: Ice217a91a16ee0216354608b2776c0f1e5f65c09\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "ba40ff657f841c685d220ebdecbe8ba2c2ab1a8a",
      "tree": "68d78c01718b37055199b5bd936c137cde7eb530",
      "parents": [
        "3ce06c7b0ad60cafece0fedd2cf88340eb6a6c22"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jan 22 22:53:49 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 24 13:21:18 2019 -0800"
      },
      "message": "Don\u0027t filter reserved signals in sigaction.\n\nIf a signal handler is blocking all of their signals, we should\nprobably respect that and not silently unblock bionic\u0027s reserved\nsignals for them. Otherwise, user code can deadlock, run out of stack,\netc. through no fault of their own, if one of the reserved signals\ncomes in while they\u0027ve pivoted onto their signal stack.\n\nBug: http://b/122939726\nTest: treehugger\nChange-Id: I6425a3e7413edc16157b35dffe632e1ab1d76618\n"
    },
    {
      "commit": "ecc37e38771aaf994a97c51104017a7d1b73a568",
      "tree": "2b1a1d908e99eb5181cdaf77e06005a4459dcaa1",
      "parents": [
        "176d2fbcaefe4691b8fd7844f6cec8e7a1a22c76"
      ],
      "author": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Fri Dec 14 15:57:21 2018 +0000"
      },
      "committer": {
        "name": "Ryan Savitski",
        "email": "rsavitski@google.com",
        "time": "Wed Jan 23 18:30:54 2019 +0000"
      },
      "message": "conditional zygote child heap profiling + android_internal_mallopt\n\nOn user builds, heapprofd should only be allowed to profile apps that\nare either debuggable, or profileable (according to the manifest). This\nchange exposes extra zygote-specific knowledge to bionic, and makes the\ndedicated signal handler check for the special case of being in a zygote child.\n\nWith this \u0026 the corresponding framework change, we should now be\nhandling the 4 combinations of:\n  {java, native} x {profile_at_runtime, profile_at_startup}.\n\nSee internal go/heapprofd-java-trigger for further context.\n\nTest: on-device unit tests (shared \u0026 static) on blueline-userdebug.\nTest: flashed blueline-userdebug, confirmed that java profiling activates from startup and at runtime.\nBug: 120409382\nChange-Id: Ic251afeca4324dc650ac1d4f46976b526eae692a\n(cherry picked from commit 998792e2b6e1b84222b5d124f13ecdcb446cb22f)\nMerged-In: Ic251afeca4324dc650ac1d4f46976b526eae692a\n"
    },
    {
      "commit": "e4ee12f813d62ba1ef0c0e80b205efd2ee98ca11",
      "tree": "55413168dfdf579a285be7bcb22c50930a898fca",
      "parents": [
        "c85a8823cab8b3d3f0a0a4f83820e3751f598a2d"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 15 20:35:00 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 18 22:44:55 2019 +0000"
      },
      "message": "Add tests for static ELF TLS\n\nBug: http://b/78026329\nTest: bionic unit tests\nMerged-In: I806f2bd193998dfe352372476104876edb27aebf\nChange-Id: I806f2bd193998dfe352372476104876edb27aebf\n"
    },
    {
      "commit": "c85a8823cab8b3d3f0a0a4f83820e3751f598a2d",
      "tree": "04a5e6057858b325acb23d67de23571f2a4c087b",
      "parents": [
        "4ac3709f66876af38e26178349d5b1278f0367a9",
        "cd4e5ba559d38077576c084a4852b8c39003eedb"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 18 21:44:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 18 21:44:27 2019 +0000"
      },
      "message": "Merge \"Turn off XOM on libnstest_root.so\""
    },
    {
      "commit": "0159b64aa50dcff574281ba85c8e3dfd80536ce7",
      "tree": "a7adb7a2ec6cb1dc1e492cba2144aa345c511be7",
      "parents": [
        "314c0f798983895d81705d7b431cc4651accc8a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 18 08:20:55 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 18 08:20:55 2019 -0800"
      },
      "message": "Allow more leeway to fix sys_time.gettimeofday flakiness.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: Ieb8ee481ea3572533823e6cb0eab4ec089a38e44\n"
    },
    {
      "commit": "cd4e5ba559d38077576c084a4852b8c39003eedb",
      "tree": "273b48ab277c66dbdca480442ec3acf02a098400",
      "parents": [
        "9a238653c1a32a7bd046aba8411e7400dda8367e"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 17 17:45:42 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 18 01:15:44 2019 -0800"
      },
      "message": "Turn off XOM on libnstest_root.so\n\nThe dlext.ns_anonymous test copies the loaded segments of this shared\nobject into a new mapping, so every segment must be readable. Turn off\neXecute-Only-Memory.\n\nBug: http://b/123034666\nTest: bionic-unit-tests --gtest_filter\u003ddlext.ns_anonymous\nChange-Id: I2d427feb81d353e0403c7ef251a55afb4d8729b4\n"
    },
    {
      "commit": "9a238653c1a32a7bd046aba8411e7400dda8367e",
      "tree": "726605d697cad7873e090acdb5014164ce42f5d6",
      "parents": [
        "1f6adf5863b53c8a9139eef256e87d998f7130d4",
        "fb8730d49586f29868b5697d6a8c74aa9a4847d0"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 17 23:10:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 23:10:51 2019 +0000"
      },
      "message": "Merge changes Ia08e1b5c,I60e589dd,Ib7edb665,Ibf1bf5ec,Ibd623857\n\n* changes:\n  Handle R_GENERIC_TLS_TPREL relocations\n  Avoid a dlopen abort on an invalid TLS alignment\n  Initialize static TLS memory using module list\n  Record TLS modules and layout static TLS memory\n  StaticTlsLayout: add exe/tcb and solib layout\n"
    },
    {
      "commit": "1f6adf5863b53c8a9139eef256e87d998f7130d4",
      "tree": "a3117011b35b66f8b5446bd6592fe9af56c3383f",
      "parents": [
        "de70b72b4f408a7100000e632e9b887347a531b3",
        "8dff0bb66bd48ef9f5ce472d94c99e5b656ba083"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 17 22:15:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 22:15:33 2019 +0000"
      },
      "message": "Merge \"Allow more leeway to fix time.clock_gettime flakiness.\""
    },
    {
      "commit": "de70b72b4f408a7100000e632e9b887347a531b3",
      "tree": "1eaf5553b9b978ab171b3110b15b0c3a551384ce",
      "parents": [
        "d4f8f4e20b90dc8ea01ca651ee691506e1c589ee",
        "f9d2299ee2c05477f72dd137f4abddb68b91d8b2"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jan 17 20:49:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 20:49:19 2019 +0000"
      },
      "message": "Merge \"Update getpwnam() tests to correctly handle new app zygote uids.\""
    },
    {
      "commit": "8dff0bb66bd48ef9f5ce472d94c99e5b656ba083",
      "tree": "26d5b4029a9f35eceb7e4daaef4e0b07e0bf9cc1",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 17 12:32:32 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 17 12:32:32 2019 -0800"
      },
      "message": "Allow more leeway to fix time.clock_gettime flakiness.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: Ic949763e56c46f05ed2565ca4465a15c7ecf768c\n"
    },
    {
      "commit": "f9d2299ee2c05477f72dd137f4abddb68b91d8b2",
      "tree": "aba2725b8e73ca67fec1a98b7468f89bb98b3afb",
      "parents": [
        "ca305a39e50d92dc572f50f00262b3dbb0dece9d"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 16 16:25:40 2019 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jan 17 13:36:47 2019 +0100"
      },
      "message": "Update getpwnam() tests to correctly handle new app zygote uids.\n\nThe UID range [90000..98999] is used for isolated processes that are\nspawned from an application zygote. Otherwise they are identical to\nregular isolated processes in the [99000..99999] range. Fix the tests to\nmatch the new range.\n\nBug: 111434506\nTest: atest bionic-unit-tests-static\nChange-Id: Id0352f2cf0d21edb04d95f01ea2548e95b62317a\n"
    },
    {
      "commit": "fb8730d49586f29868b5697d6a8c74aa9a4847d0",
      "tree": "2900d8f03068efb6a069eb6b579460855b43627b",
      "parents": [
        "1988350d1ccd1a99c628178612e1c9ce0f7858a3"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 15 00:11:37 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 17 00:45:55 2019 -0800"
      },
      "message": "Handle R_GENERIC_TLS_TPREL relocations\n\nThis relocation is used for static TLS\u0027s initial-exec (IE) accesses.\n\nA TLS symbol\u0027s value is its offset from the start of the ELF module\u0027s\nTLS segment. It doesn\u0027t make sense to add the load_bias to this value,\nso skip the call to soinfo::resolve_symbol_address.\n\nAllow TLS relocations to refer to an unresolved weak symbol. In that case,\nsym will be non-zero, but lsi will be nullptr. The dynamic linker resolves\nthe TPREL relocation to 0, making \u0026missing_weak_symbol equal the thread\npointer.\n\nRecognize Gold-style relocations to STB_LOCAL TLS symbols/sections and\nissue an error.\n\nRemove the \"case R_AARCH64_TLS_TPREL64\", because the R_GENERIC_TLS_TPREL\ncase handles it.\n\nRemove the no-op R_AARCH64_TLSDESC handler. It\u0027s better to issue an error.\ndlopen_library_with_ELF_TLS now fails with a consistent error about an\nunimplemented dynamic TLS relocation.\n\nBug: http://b/78026329\nTest: bionic unit tests (elftls tests are added in a later CL)\nChange-Id: Ia08e1b5c8098117e12143d3b4ebb4dfaa5ca46ec\n"
    },
    {
      "commit": "073fffde090f3d68ce997b6f4c376a58d2a9fc40",
      "tree": "0eb622b140e97f3110398129ac3aabe31c8ec6a7",
      "parents": [
        "2e724175acab8f0b9752bb55acb42a4915eb3d01"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 09 15:55:41 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 16 01:11:26 2019 -0800"
      },
      "message": "Provide a stub aeabi.read_tp on other archs\n\nUsing \"#if defined(...)\" inside the test body seems to be the convention.\n\nBug: none\nTest: bionic-unit-tests\nChange-Id: Icb348a1184e630c5e199129bbe2090fd1e490fa5\n"
    },
    {
      "commit": "08fd072525b682ff3c23207c179506d886f70556",
      "tree": "9229e78cc2252a8659129938145f6e547c937dc3",
      "parents": [
        "b21fc16a22cec7056a5231568e1eac636c115b19"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jan 15 19:00:11 2019 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jan 15 19:00:11 2019 -0800"
      },
      "message": "bionic: update for glibc 2.17\n\nComing soon to a source tree near you.\n\nBug: 111358231\nTest: `m checkbuild`. x86 emulator boots cleanly.\nChange-Id: I9e3e2f7d3f8b7c36798fad27ca776f3490d834d2\n"
    },
    {
      "commit": "45d1349c638426d99a5319e7be3dbb7c36ece7eb",
      "tree": "fe566eac57d2354c8b6bf27fc9db698fe57ea6be",
      "parents": [
        "27d59338b98bba7f33eb223c4f2e1df4c3b96774"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 03 02:51:30 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 11 15:34:22 2019 -0800"
      },
      "message": "Reorganize static TLS memory for ELF TLS\n\nFor ELF TLS \"local-exec\" accesses, the static linker assumes that an\nexecutable\u0027s TLS segment is located at a statically-known offset from the\nthread pointer (i.e. \"variant 1\" for ARM and \"variant 2\" for x86).\nBecause these layouts are incompatible, Bionic generally needs to allocate\nits TLS slots differently between different architectures.\n\nTo allow per-architecture TLS slots:\n - Replace the TLS_SLOT_xxx enumerators with macros. New ARM slots are\n   generally negative, while new x86 slots are generally positive.\n - Define a bionic_tcb struct that provides two things:\n    - a void* raw_slots_storage[BIONIC_TLS_SLOTS] field\n    - an inline accessor function: void*\u0026 tls_slot(size_t tpindex);\n\nFor ELF TLS, it\u0027s necessary to allocate a temporary TCB (i.e. TLS slots),\nbecause the runtime linker doesn\u0027t know how large the static TLS area is\nuntil after it has loaded all of the initial solibs.\n\nTo accommodate Golang, it\u0027s necessary to allocate the pthread keys at a\nfixed, small, positive offset from the thread pointer.\n\nThis CL moves the pthread keys into bionic_tls, then allocates a single\nmapping per thread that looks like so:\n - stack guard\n - stack [omitted for main thread and with pthread_attr_setstack]\n - static TLS:\n    - bionic_tcb [exec TLS will either precede or succeed the TCB]\n    - bionic_tls [prefixed by the pthread keys]\n    - [solib TLS segments will be placed here]\n - guard page\n\nAs before, if the new mapping includes a stack, the pthread_internal_t\nis allocated on it.\n\nAt startup, Bionic allocates a temporary bionic_tcb object on the stack,\nthen allocates a temporary bionic_tls object using mmap. This mmap is\ndelayed because the linker can\u0027t currently call async_safe_fatal() before\nrelocating itself.\n\nLater, Bionic allocates a stack-less thread mapping for the main thread,\nand copies slots from the temporary TCB to the new TCB.\n(See *::copy_from_bootstrap methods.)\n\nBug: http://b/78026329\nTest: bionic unit tests\nTest: verify that a Golang app still works\nTest: verify that a Golang app crashes if bionic_{tls,tcb} are swapped\nMerged-In: I6543063752f4ec8ef6dc9c7f2a06ce2a18fc5af3\nChange-Id: I6543063752f4ec8ef6dc9c7f2a06ce2a18fc5af3\n(cherry picked from commit 1e660b70da625fcbf1e43dfae09b7b4817fa1660)\n"
    },
    {
      "commit": "98564b8c743a5fdea7b8bb7c016921f208b9e1bb",
      "tree": "a92f91ad3351af94be0387d3644e81f933d695ef",
      "parents": [
        "688028d7a5b9c6ac5f38b216504d0880bbf6d0e9",
        "220f51e5669571aaae66a47a5f29866792359fd7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 11 16:59:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 16:59:15 2019 +0000"
      },
      "message": "Merge changes from topic \"move_bionic_to_apex\"\n\n* changes:\n  Expose more symbols temporarily\n  Add stubs variants for bionic libs\n"
    },
    {
      "commit": "45024fefe7507574faa0653b92c04536b36eb6ab",
      "tree": "40f657c63af98330eee9d1c2236bc7f522ad8b65",
      "parents": [
        "e7964158cedf37b50e42ab1988e67eb2154c74f2"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Sun Dec 30 21:10:26 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Jan 07 20:30:35 2019 -0800"
      },
      "message": "Add ARM EABI function __aeabi_read_tp\n\nBy default, Clang uses this arm32 function to read the thread pointer,\neither for ELF TLS or via __builtin_thread_pointer(). It\u0027s probably better\nto inline the cp15 access using -mtp\u003dcp15, but that\u0027s not the default yet.\n\nSee https://reviews.llvm.org/D34878?id\u003d114573.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: I93b8926075f0b2cea8df9ef518d54f2820a8ff5b\n"
    },
    {
      "commit": "c45fe9f7bd49b110f63b5928d00cf33a7b515d04",
      "tree": "71c0df52796a2e3b24e1983897f019101e6bcf3e",
      "parents": [
        "c975355066daf0b3012d236aa4e726b0d3d7e06a"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 13 18:26:48 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 04 22:29:36 2019 +0900"
      },
      "message": "Add stubs variants for bionic libs\n\nBionic libs are part of the runtime APEX (com.android.runtime). In order\nto be able to update the runtime APEX independetly from the platform, we\nhave to prevent things outside of the APEX from using bionic symbols\nthat are not guaranteed to be stable. Otherwise, platform could break\nwhen a symbol is removed from the libs via the APEX update.\n\nTo achive this goal, this change adds stubs variant to the bionic libs.\nWith this, things outside of the runtime APEX (i.e. other APEXes and the\nplatform) are built with the stubs variants that provide only the\nsymbols that are guaranteed to be stable.\n\nThe set of symbols are basically the same as the symbols available to\nNDK clients. However, there are a few additional symbols that are not\navailable for NDK but should be made available for platform components.\nThey are marked with \"# apex\" tag. Symbols with that tag are not exposed\nto apps (via NDK stubs) or vendors (via LLNDK stubs).\n\nNote that the stubs is a build-time only artifact. It is used just to\nbreak the build when private symbols are used outside of the runtime\nAPEX. At runtime, the real library in the APEX is used.\n\nBug: 120266448\nTest: m\nTest: m bionic-unit-tests\nChange-Id: I7b8d75830c81d7d7d54e2fca21a85b3417531b47\n"
    },
    {
      "commit": "07468a811ed6795addeb243fb82423edae86c0aa",
      "tree": "3ef0bc9b779720484cefe8e04b31bfd908b9fc05",
      "parents": [
        "49c631a746c530ee05666ca440616aa8b15e61e0",
        "770032ddfa31f6ed18e6ec85013b7939cd291eb0"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 22:29:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 02 22:29:13 2019 +0000"
      },
      "message": "Merge \"Fix/suppress bionic google-explicit-constructor warnings\""
    },
    {
      "commit": "770032ddfa31f6ed18e6ec85013b7939cd291eb0",
      "tree": "28dc26ae8a6b3623e79d1bb2b19fd5362477843c",
      "parents": [
        "7bd54ade8d12762ef6bdb0096f3838261f14eee5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 10:59:48 2019 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 11:04:05 2019 -0800"
      },
      "message": "Fix/suppress bionic google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: Id1ad0327c1b8c6f094bcbb3ae599bc1f716b3f2f\n"
    },
    {
      "commit": "76e7fd4e26e93a2921f0fd691551f0c8dca014a7",
      "tree": "4aa3c3c63dd425c0779fa95414efe06be9c1a270",
      "parents": [
        "7bd54ade8d12762ef6bdb0096f3838261f14eee5"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 01 16:20:12 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 01 19:46:41 2019 -0800"
      },
      "message": "Fix modify_stack_protector flake\n\nThe previous test would fail to crash if the first byte of the canary was\nalready NUL (1 of 256 runs assuming uniform canary distribution).\n\nBug: http://b/121156651\nTest: bionic unit tests\n"
    },
    {
      "commit": "727a6ebcfb96740bda52ae972a246bf1a3a4109a",
      "tree": "ceab309ffa6ba0f91e97ac88cb2949b741e5f57f",
      "parents": [
        "3b3e09aad026c187a4f20436618ab36a9851aa35",
        "72a54a41a7ef0b1bc5a27e923b6d5b993a5271e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 19 01:33:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 19 01:33:36 2018 +0000"
      },
      "message": "Merge \"Make stdlib.getloadavg more resiliant.\""
    },
    {
      "commit": "910a2a83a4fcc88628f3bc6900e57f040ec3ba15",
      "tree": "6d52faaa14bc61f7bdc68691f2644c9fd13b93d6",
      "parents": [
        "0c499a69e3d8b858f53a7410285416c0cb30f83b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 15:19:40 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 15:19:40 2018 -0800"
      },
      "message": "Fix sys_prctl.pr_cap_ambient.\n\nThis test didn\u0027t clear errno before testing it, so was sensitive to\nwhatever code had run before. Since I\u0027d already added the code to dump\nthe exact kernel version before realizing the actual bug, I\u0027ve left that\nin too.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: I38482036cb6f035c0c98c27eb64d17829f29b09a\n"
    },
    {
      "commit": "72a54a41a7ef0b1bc5a27e923b6d5b993a5271e0",
      "tree": "0bfa4bf6c2fa17343cf9fe9d6d03dcbf933d19df",
      "parents": [
        "0c499a69e3d8b858f53a7410285416c0cb30f83b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 14:47:25 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 18 14:47:25 2018 -0800"
      },
      "message": "Make stdlib.getloadavg more resiliant.\n\nUsing rint(3) gave us a step where if one side was 1.4 and the other\nwas 1.5, that would be 1 and 2 respectively. So instead use a simple\ndifference. Also log more detail in case this doesn\u0027t fix the flakiness.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: Ib5b2eb05d2b1eb8c4a10b182a8703510a3ef0cea\n"
    },
    {
      "commit": "0dafa8a3a57e27cf8c38ea85f9a86f2007c06c74",
      "tree": "03fefa6604c0a44fd01944cbb1a0e835eae7338e",
      "parents": [
        "9ea997a2ac4eeb26230e65d2b680ebff6fe0b8a4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 17 16:04:45 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 17 16:04:45 2018 -0800"
      },
      "message": "Increase 2ms to 5ms to reduce flake.\n\nBug: http://b/121156651\nTest: ran tests\nChange-Id: Ief699cacf920b144bf66821cf0ac73930fae9274\n"
    },
    {
      "commit": "c2edae3f863f7c04d3b543c608319584527f2435",
      "tree": "cc1107f059e84a994d83a99fe1ffd1380ac0863b",
      "parents": [
        "913f808c0f502d64ca542ceab984c9d40eb97eed"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 15:16:24 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 15:16:24 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings in tests.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: I2606dc4cdfff9c2691ed60d529971e16adb3a9ae\n"
    },
    {
      "commit": "5a66490e3b9738cc70162257788bcc00583032fa",
      "tree": "3c284f55d4ce2f2af5745627bf271812082d3223",
      "parents": [
        "9cfca866ce36458bb942b7eebc4997f7bb94d3ad"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Nov 22 02:14:14 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Dec 04 13:51:46 2018 -0800"
      },
      "message": "Use shared globals so getauxval works earlier\n\nMake getauxval() work in .preinit_array. It still won\u0027t be usable for\nifuncs unless we can guarantee that the __loader_shared_globals relocation\nis resolved before the ifunc calls [__bionic_]getauxval.\n\nDefine __bionic_getauxval for use in replacing calls to\nKernelArgumentBlock::getauxval, which doesn\u0027t (and sometimes isn\u0027t allowed\nto) access TLS variables like errno.\n\nBug: http://b/25751302\nTest: bionic unit tests\nChange-Id: I461feeaed7f43cfa2a2b6c34147194f0df82b516\nMerged-In: I461feeaed7f43cfa2a2b6c34147194f0df82b516\n(cherry picked from commit bdab4a2b97c53af0205788875342ec08e6901376)\n"
    },
    {
      "commit": "eebf5fddf3db685213831d963f924fd3c6ff6692",
      "tree": "8b7839d279946bad9be6b3e2c9467c44f361ce1a",
      "parents": [
        "c466664c4703fdb9e540c33bd31e0b44d88d891d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 30 16:56:43 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 03 08:46:21 2018 -0800"
      },
      "message": "Reduce strerror(3)\u0027s impact on .data.rel.ro.\n\nTest: tests pass\nChange-Id: I60b15dfac6ca7dce45f4858ad10b8255e2f1b66d\n"
    },
    {
      "commit": "48b1159bb82b12bdd75be9228bd43db45168bdba",
      "tree": "876b546289ca58c6bb0a923c325aedeef7fd5cf8",
      "parents": [
        "7752bcb234a9960d2e9e89766d143b7ac0c5f332"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Nov 22 02:41:36 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Nov 28 14:26:14 2018 -0800"
      },
      "message": "Use shared globals to init __progname + environ\n\nInitialize the __progname and environ global variables using\nlibc_shared_globals rather than KernelArgumentBlock.\n\nAlso: suppose the linker is invoked on an executable:\n\n    linker prog [args...]\n\nThe first argument passed to main() and constructor functions is \"prog\"\nrather than \"linker\". For consistency, this CL changes the BSD\n__progname global from \"linker\" to \"prog\".\n\nBug: none\nTest: bionic unit tests\nChange-Id: I376d76953c9436706dbc53911ef6585c1acc1c31\n"
    },
    {
      "commit": "7f92fbe06484f036274952efa00fb5cdf410eb12",
      "tree": "69a4759756cb1874c9b18ad955d1ddec77f1c440",
      "parents": [
        "1fc432f42dfe310f6f6e7c50bd119791f51e5a2d",
        "09a19aa0e766340d01ebd8697d648721bbee5fab"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 27 02:33:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 27 02:33:15 2018 +0000"
      },
      "message": "Merge \"Add test for mallinfo.\""
    },
    {
      "commit": "8d849ffbade2e4418084e186f9f22a347fe4862c",
      "tree": "afbcf74d11c296650ae0aedbd2ed52361757abcb",
      "parents": [
        "7562ef394daa8c8e3313372be73bec7d1be68d9b",
        "734beec3d48a7ea5cfe3bd0815676181ea698cc7"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Nov 19 20:44:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 19 20:44:03 2018 +0000"
      },
      "message": "Merge \"Allocate a small guard region around the shadow call stack.\""
    },
    {
      "commit": "734beec3d48a7ea5cfe3bd0815676181ea698cc7",
      "tree": "4a288b288b56d549c23e25166de6be1b86729c79",
      "parents": [
        "83590680649dc04ce8a98cd85b6356e1d6066564"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Nov 14 12:41:41 2018 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Nov 16 14:37:08 2018 -0800"
      },
      "message": "Allocate a small guard region around the shadow call stack.\n\nThis lets us do two things:\n\n1) Make setjmp and longjmp compatible with shadow call stack.\n   To avoid leaking the shadow call stack address into memory, only the\n   lower log2(SCS_SIZE) bits of x18 are stored to jmp_buf. This requires\n   allocating an additional guard page so that we\u0027re guaranteed to be\n   able to allocate a sufficiently aligned SCS.\n\n2) SCS overflow detection. Overflows now result in a SIGSEGV instead\n   of corrupting the allocation that comes after it.\n\nChange-Id: I04d6634f96162bf625684672a87fba8b402b7fd1\nTest: bionic-unit-tests\n"
    },
    {
      "commit": "09a19aa0e766340d01ebd8697d648721bbee5fab",
      "tree": "76e0dcd68b03a14f8a363374cc6ff57aaa759585",
      "parents": [
        "cfd628009c16670ee9ad5756b73717ccd7444644"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 16 13:28:56 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 16 13:34:36 2018 -0800"
      },
      "message": "Add test for mallinfo.\n\nBug: 119580449\n\nTest: Test passes.\nChange-Id: Ib605e550b7d6d8fd2336ad61b678a7e63f8ecffb\n"
    },
    {
      "commit": "ae471db4a9e5d3411fcfd5d602f65099b5d989d6",
      "tree": "06de55d782ee6f0e264a94478e39916c169a3ca2",
      "parents": [
        "cfd628009c16670ee9ad5756b73717ccd7444644",
        "c0f46564528c7bec8d490e62633e962f2007b8f4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 15 23:04:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 23:04:41 2018 +0000"
      },
      "message": "Merge \"Make android_get_application_target_sdk_version available to the NDK.\""
    },
    {
      "commit": "c0f46564528c7bec8d490e62633e962f2007b8f4",
      "tree": "4dabb94963f869576828c5d169e74956f527031a",
      "parents": [
        "83590680649dc04ce8a98cd85b6356e1d6066564"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 09 15:38:52 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 15 11:07:30 2018 -0800"
      },
      "message": "Make android_get_application_target_sdk_version available to the NDK.\n\nAlso move this and android_get_device_api_level into \u003candroid/api-level.h\u003e\nso that they\u0027re always available.\n\nThis involves cleaning up \u003csys/cdefs.h\u003e slightly.\n\nBug: N/A\nTest: builds\nChange-Id: I25435c55f3549cd0d827a7581bee75ea8228028b\n"
    },
    {
      "commit": "ba1a723ad111018a1de7992032dabef8c87b15d7",
      "tree": "8e83fddc57fb9431f66fbf966de612d3c83ffc58",
      "parents": [
        "f1e657cdff25541959e1a81e0894bc4245d8e9d1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 15:19:53 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 15:46:49 2018 -0800"
      },
      "message": "switch to using android-base/file.h instead of android-base/test_utils.h\n\nTest: compile\nBug: 119313545\nChange-Id: I664fb32522d01909c603d7b903475c4e9aea9223\n"
    },
    {
      "commit": "83590680649dc04ce8a98cd85b6356e1d6066564",
      "tree": "753629be99569b6866ebda256ccec04932c2b8c0",
      "parents": [
        "48630a91914b312f5b8c952872c1a9a11b3591ae",
        "ff1428a48e05a86b6e777d5f04a8faa1dc662f8b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 14 19:50:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 19:50:59 2018 +0000"
      },
      "message": "Merge \"Move API levels from `uint32_t` to `int`.\""
    },
    {
      "commit": "ff1428a48e05a86b6e777d5f04a8faa1dc662f8b",
      "tree": "513aeffdbfed65b2f995aca73d9926ac70e293ee",
      "parents": [
        "17c4bd9e5966e36352bfe93832e6cdccf5755a49"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 12 16:01:37 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 13 21:25:07 2018 -0800"
      },
      "message": "Move API levels from `uint32_t` to `int`.\n\n(cherrypick of a6c71a09670ca636cca5cfea9d74b03a951e2b5e.)\n\nBug: N/A\nTest: builds\nChange-Id: I9c414e30e3c4fe2a4e16a2fe4ce18eae85fe4844\n"
    },
    {
      "commit": "68a3bcc249b04394b73991c5272aa0ae4bde7676",
      "tree": "1198b5a3d89086b82223d8ee7271d215643c03a3",
      "parents": [
        "c2d3e67a77fe284e8f8f1ae4dd4a67a669bfd644"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 13 07:35:21 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 13 10:57:28 2018 -0800"
      },
      "message": "bionic tests: switch to using android-base/file.h for TemporaryFile\n\nA matching definition of TemporaryFile exists in libbase now.\n\nTest: compile\nBug: 119313545\nChange-Id: I6f84dbf3af9a9c4b270a2532a36c9cb4c0f6bb8f\n"
    },
    {
      "commit": "d495e0b777a101e6a146e9cc87abf522bc64f687",
      "tree": "4c0aad26f7bf2c30a2a2a42bc396d3d103fc5e21",
      "parents": [
        "10265a8cbe36fecf59e7630ebf1132b8ecc0902d",
        "b011d59a7fa6b2070eb5d31804eddfa798950327"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Nov 08 18:23:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 18:23:56 2018 +0000"
      },
      "message": "Merge \"Don\u0027t build bionic-unit-tests-static with libcrt_builtins\""
    },
    {
      "commit": "b011d59a7fa6b2070eb5d31804eddfa798950327",
      "tree": "78ec380451e6b541f3e0fee3a6b22471d1e79eac",
      "parents": [
        "2b94f124df2745d2f56688a8e4bb0e8e6e9cde33"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Nov 07 21:28:47 2018 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Nov 08 05:33:15 2018 +0000"
      },
      "message": "Don\u0027t build bionic-unit-tests-static with libcrt_builtins\n\nlibcrt_builtins does not work with libm, which is statically linked in\nbionic-unit-tests-static. Opt it out of libcrt_builtins for now.\n\nBug: 119207651\nBug: 117167374\nTest: run bionic-unit-test-static\nChange-Id: I20067c9841beb9de2b73342847aaa945dbadbff8\n"
    },
    {
      "commit": "52d7749335c88acfe6e5e305fe45aeea422bcb64",
      "tree": "6586825a94b3745d2514f6713b284a0e5fb68d22",
      "parents": [
        "6689b4f25883e06300df03850fa3a386b574f55a",
        "8178c417f68dac9c2d1a6b44dbca1e6b85e5b081"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 08 03:09:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 03:09:53 2018 +0000"
      },
      "message": "Merge \"ART isn\u0027t using the ART-specific linker features any more.\""
    },
    {
      "commit": "6689b4f25883e06300df03850fa3a386b574f55a",
      "tree": "0b9e70ad0f34fa8399cd545452493a94e218dc74",
      "parents": [
        "aced2b25e64ba10d1e3aaff210ed5329189dc398",
        "01db9bde05ebec27813392d3642c1a784f0be9ab"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 08 03:01:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 03:01:34 2018 +0000"
      },
      "message": "Merge \"Add a force fail for non-bionic xfail test.\""
    },
    {
      "commit": "af1b8ddaa976bc95007353bc46f59cf5959af7ad",
      "tree": "3c4e707580da50ac0a61aa8b7ad45a51b3642c90",
      "parents": [
        "e691069366401dc385943cb1702beb9d4feecb85"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 07 15:28:16 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 07 17:11:42 2018 -0800"
      },
      "message": "Add smoke tests for mallopt options.\n\nTest: Unit tests pass.\nChange-Id: If213f4338078011ff12996c1b2a6f6858b51d824\n"
    },
    {
      "commit": "01db9bde05ebec27813392d3642c1a784f0be9ab",
      "tree": "b1a81579b5b69b4a5a54e2558d590f127db9482b",
      "parents": [
        "0c39bd468d3aa19b3e27937b36b101cc4aa65dab"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 07 14:39:43 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 07 14:39:43 2018 -0800"
      },
      "message": "Add a force fail for non-bionic xfail test.\n\nTest: xfail test passes on host.\nChange-Id: I6c4ddd3f3dc5541b126d9dd31b1fcff9d34819e6\n"
    },
    {
      "commit": "5e099173dadd437d0be743d947bad6fb02f38e5b",
      "tree": "778885d143de7f7bf7dd987ab74d8e216a8e0439",
      "parents": [
        "2b94f124df2745d2f56688a8e4bb0e8e6e9cde33",
        "08a0cd082f02352a30f8be880050a80b61ecebd1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 07 21:43:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 21:43:24 2018 +0000"
      },
      "message": "Merge \"Revert \"Do not use clang lld with -z,global\"\""
    },
    {
      "commit": "acd6f4f9f5d248345231542df91947b44a309c26",
      "tree": "56ebc05a9af0de40af4c624e722ca2e489d0c7f1",
      "parents": [
        "96bd339c51194bf56781ccc738fde8babd618fc6"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Nov 06 16:48:27 2018 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Nov 06 16:59:25 2018 -0800"
      },
      "message": "Disable a few bionic tests under HWASan.\n\n* HWASan report invalid use of the allocator api (like alignment not\nbeing power of two, or allocation size too large) in a way tests do not\nexpect.\n* Code in .preinit_array runs before HWASan shadow is initialized and\nneeds to be excluded from instrumentation.\n* It looks that mm system calls (mmap/mprotect/etc) will not allow\ntagged pointers. In fact, the use of mprotect on malloc()ed memory is\ndoubtful - one can imagine some kind of speculative load from such\nmemory, as compiler knows that it is addressable.\n\nBug: 114279110\nTest: bionic-unit-tests with hwasan\n\nChange-Id: I6ba4b46a0d554de77c923ad134cf156ce4ddba1b\n"
    },
    {
      "commit": "96bd339c51194bf56781ccc738fde8babd618fc6",
      "tree": "8aadb242fdb150116029677bac486866adb08001",
      "parents": [
        "6d1c5cab94f9fb7423198f950fb94dc7e31c4ddd"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Nov 06 16:44:45 2018 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Nov 06 16:59:21 2018 -0800"
      },
      "message": "Remove timer_delete_multiple test.\n\nAccording to posix, this test invokes undefined behavior by deleting\na timer twice.\n\nAccording to hwasan, the second call to timer_delete loads\nkernel_timer_id from previously deallocated PosixTimer (i.e.\nheap-use-after-free).\n\nBug: 114279110\nTest: bionic-unit-tests with hwasan\n\nChange-Id: Ic54579e3bb41d3f38282b8822dafaba51efd003a\n"
    },
    {
      "commit": "08a0cd082f02352a30f8be880050a80b61ecebd1",
      "tree": "ee1151d23faac407d2e62dbbba0425f41937787a",
      "parents": [
        "8e462d411a73899c08b163b02c3c59355b475ab8"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 07 00:11:02 2018 +0000"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 07 00:12:56 2018 +0000"
      },
      "message": "Revert \"Do not use clang lld with -z,global\"\n\nThis reverts commit 8e462d411a73899c08b163b02c3c59355b475ab8.\n\nReason for revert: this lld bug has been fixed upstream and in AOSP prebuilts\n\nBug: 80109858\nChange-Id: Ied600324201e1a014a1d4e6742767e2ddd94999a\n"
    },
    {
      "commit": "8178c417f68dac9c2d1a6b44dbca1e6b85e5b081",
      "tree": "ac31cd7fcd74e5b7beb05807bae4f288a6dbdf90",
      "parents": [
        "0c39bd468d3aa19b3e27937b36b101cc4aa65dab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 05 13:34:36 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 06 11:15:17 2018 -0800"
      },
      "message": "ART isn\u0027t using the ART-specific linker features any more.\n\nBug: N/A\nTest: ran tests\nChange-Id: Ide3c295035687019608a2c4716a4a21cb889d121\n"
    },
    {
      "commit": "9ffd39cdeaf399f53950d2f578f148a88d08e396",
      "tree": "259763a5210b4f82056164a61694a278d95a1494",
      "parents": [
        "38b8255866860aef8b514cacb21c242e10a33107",
        "bfd3dc497c5e8172d1c87f3a1c663ff56eb80029"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 02 15:20:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 15:20:54 2018 +0000"
      },
      "message": "Merge \"Add test for malloc_iterate.\""
    },
    {
      "commit": "6f3a56bb18628243b6dbe470222e56bb56ed10ae",
      "tree": "53a7886e2e1f2c7766986c5eafe3f631fe6027ce",
      "parents": [
        "5c7bece8ca071118cceb42306ca568df495d09c7",
        "7b13dd918e6e2c1638e6b137f27c80979a4ecd3f"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Nov 01 01:32:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 01 01:32:00 2018 +0000"
      },
      "message": "Merge \"Revert \"bionic: Allocate a shadow call stack for each thread.\"\""
    },
    {
      "commit": "bfd3dc497c5e8172d1c87f3a1c663ff56eb80029",
      "tree": "66709fc47f80eede5a07751345bac18547d9396f",
      "parents": [
        "d6ac79300d2dc777b1df7345e68d5ad04e5e666c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 15 10:02:38 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 30 18:38:39 2018 -0700"
      },
      "message": "Add test for malloc_iterate.\n\nBug: 62621531\n\nTest: New unit tests pass.\nChange-Id: Icc50f5b19642225c8f812844d42c904babde8acf\n"
    },
    {
      "commit": "9ce28844db7cf80ee8cf7c88dab23b666eaab739",
      "tree": "a6dc35217992637cf0102c4beba99c6fdcd1ffdc",
      "parents": [
        "e898a17e8f2bf30506642be8106b1f8a6de61151"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 25 12:11:39 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 30 09:21:16 2018 -0700"
      },
      "message": "Update to v4.19 kernel headers.\n\nTest: Builds and boots.\nChange-Id: I99a9ed79666e143b47f02ca4e59eed94f69b7e4a\n(cherry picked from commit a981e2e52e2e95a65fa9c9b6fb16dcb4c83dd576)\n"
    },
    {
      "commit": "7b13dd918e6e2c1638e6b137f27c80979a4ecd3f",
      "tree": "b7f8343a6fc3767bd968b68ba8b6be74466d027a",
      "parents": [
        "da1bc79f937225b1a048d9e5a03eca81680a17fd"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 29 21:48:38 2018 +0000"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 29 21:48:59 2018 +0000"
      },
      "message": "Revert \"bionic: Allocate a shadow call stack for each thread.\"\n\nThis reverts commit da1bc79f937225b1a048d9e5a03eca81680a17fd.\n\nReason for revert: Caused OOM in media process\n\nBug: 112907825\nBug: 118593766\nChange-Id: I545663871d75889b209b9fd2131cdaa97166478f\n"
    },
    {
      "commit": "f284a475441f612a0b48067a8bc7a59c72c4b47a",
      "tree": "47d3953dcd5c84de7b57e01fae11d3c0cab606dd",
      "parents": [
        "debcd02d184822df57e7dc69066933dd44092235",
        "da1bc79f937225b1a048d9e5a03eca81680a17fd"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 29 21:05:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 29 21:05:25 2018 +0000"
      },
      "message": "Merge \"bionic: Allocate a shadow call stack for each thread.\""
    },
    {
      "commit": "da1bc79f937225b1a048d9e5a03eca81680a17fd",
      "tree": "0334b394fff71fc1263d82515dde5c8c16a5dda8",
      "parents": [
        "c89a3971e94c30611c885e4c440eae2fd9937948"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Sep 06 22:20:44 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 29 19:55:18 2018 +0000"
      },
      "message": "bionic: Allocate a shadow call stack for each thread.\n\nBug: 112907825\nChange-Id: I7c1479a0cd68696739bf6aa5e0700ba4f2a137ec\nMerged-In: I7c1479a0cd68696739bf6aa5e0700ba4f2a137ec\n"
    },
    {
      "commit": "5e62b34c0d6fa545b487b9b64fb4a04a0589bc13",
      "tree": "e08ee44067b3b636ace11b21ec8d63a08d4d2a19",
      "parents": [
        "c89a3971e94c30611c885e4c440eae2fd9937948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 11:00:00 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 11:00:00 2018 -0700"
      },
      "message": "Clean up bionic_macros.h a bit.\n\nUse \u003candroid-base/macros.h\u003e instead where possible, and move the bionic\nmacros out of the way of the libbase ones. Yes, there are folks who manage\nto end up with both included at once (thanks OpenGL!), and cleaning that\nup doesn\u0027t seem nearly as practical as just making this change.\n\nBug: N/A\nTest: builds\nChange-Id: I23fc544f39d5addf81dc61471771a5438778895b\n"
    },
    {
      "commit": "6032c38fb3d23a4d38cbc6eb4e180d58d7ef5300",
      "tree": "b7f8343a6fc3767bd968b68ba8b6be74466d027a",
      "parents": [
        "0ba6644b3e52752168798658fc61e26ac9508ab2",
        "2d0b28bc0da1ade2de2b72093dbdb740028fce7c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 24 16:31:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 24 16:31:21 2018 +0000"
      },
      "message": "Merge \"Add getloadavg(3).\""
    },
    {
      "commit": "2d0b28bc0da1ade2de2b72093dbdb740028fce7c",
      "tree": "75a1b66144e65f7141e3cf9ddaaae0049b07ca11",
      "parents": [
        "7562f1ab87e4b51042d185345248f1a54885489a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 11:23:00 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 11:23:00 2018 -0700"
      },
      "message": "Add getloadavg(3).\n\nLets us build ninja with bionic.\n\nBug: N/A\nTest: ran tests\nChange-Id: I97eef1247d794b58a2b9aee4851551632e5a4e48\n"
    },
    {
      "commit": "5d9312bb139ad8501047c60be7b024dd38c1f0bf",
      "tree": "37cfcbf656d2ee13cd3b39801a23e46886962e10",
      "parents": [
        "a8a716e42a8e6b8f28abf2b2f8f93b1e8579423d"
      ],
      "author": {
        "name": "Chuwei Xu",
        "email": "xucw@motorola.com",
        "time": "Tue Oct 23 13:50:04 2018 +0800"
      },
      "committer": {
        "name": "Chuwei Xu",
        "email": "xucw@motorola.com",
        "time": "Tue Oct 23 13:50:04 2018 +0800"
      },
      "message": "CTS: allow continue to use the old AIDs on devices launch with P\n\nSome vendors may have been using the AIDs outside the oem ranges\nfor long that those aids need continue to be maitained for the\nexisting devices. We allow them countinue to use the old AID names\nand values on device launch with P and before, to give them the\nperiod of time to adopt the new AID scheme.\n\nBug: 116405200\nChange-Id: I0453ed14df4c0855575ef1404c596ddc6ded681b\n"
    }
  ],
  "next": "7ff7d03286dcf8abc6b4bd0455c428256493c96d"
}
