)]}'
{
  "log": [
    {
      "commit": "cf346532fccbe35666b827fbbfd2cb951dd00dc2",
      "tree": "c1ab59c29e63dea1700f24edb6bfad28c9d0687f",
      "parents": [
        "b1d27cab96c7aa31470ed2a1a8b284f9422cef25"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 10:35:03 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 31 10:35:03 2020 -0700"
      },
      "message": "More cleanup for #inclusivefixit.\n\nFound manually with grep, since the script seems to miss stuff.\n\nTest: treehugger\nChange-Id: I5933cbade9792801d4a0bec1ccb077efa6ad8fbc\n"
    },
    {
      "commit": "8844879212852a70918df1c9ebcac4d574f1fcd9",
      "tree": "3aedf7fcb684f452d9353fa5b187a1cb706403d9",
      "parents": [
        "4d3802baa4321b64ae3952b12aea48228a24c8d6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 28 14:15:31 2020 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 28 18:20:32 2020 -0700"
      },
      "message": "Add support for new scudo mallopt options.\n\nBug: 162092537\n\nTest: Ran new unit tests.\nChange-Id: I4b7d17a9e98166c03cd153eb9e9d847693914ea3\n"
    },
    {
      "commit": "68ae6ad12e4f89526638f167c380d0b28b3bdeac",
      "tree": "e18075751c1f0d08d94d7c6be14e1a18b560b285",
      "parents": [
        "c79ea239415963d4a38752d0f3efe50531c8e04f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 16:11:30 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 16:34:58 2020 -0700"
      },
      "message": "Changes for #inclusivefixit.\n\nTest: treehugger\nChange-Id: I7ff0496c5c2792a41781e74634247f55b0548213\n"
    },
    {
      "commit": "c9889fdf15897e70af011e597f0f2259c7e579ff",
      "tree": "a3b3b38a5a74ac7aaf21ffc6562869cbf63d51ab",
      "parents": [
        "c17236ee78e49af1266783fb55c91f69f053689f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 25 08:46:06 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 25 08:46:06 2020 -0700"
      },
      "message": "strings.h: undef ffs/ffsl/ffsll.\n\nProtect against software that #defines these, such as mesa3d.\n\nTest: treehugger\nChange-Id: I22e937423967676ea332956289419d48bb7c2cd3\n"
    },
    {
      "commit": "49f7f10f62a4da55e558ccfc43541fbbc97e7d3f",
      "tree": "1d912c13b88a92d965670d0079be369f82095917",
      "parents": [
        "04e4d35cd74f9932c989df728f04251e4b906410",
        "14dcbf89ce6743ba037c8eddda1c6774a1137672"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 00:35:17 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 05 00:35:17 2020 +0000"
      },
      "message": "Merge \"Add API constant for S.\""
    },
    {
      "commit": "03581d7aa9848e66775bb2eb0fa3be576dc2a030",
      "tree": "eebfc3779b511bfb80bd0bdcba535747a73d1b8f",
      "parents": [
        "e31b510f92adc21fcfbb19674ff58716dd4fdb3c",
        "0816c9050f465d85e4a6b3c0bc7ab84b6c852a2e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 10 23:04:55 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 23:04:55 2020 +0000"
      },
      "message": "Merge changes I6c9c2bf5,I23991692\n\n* changes:\n  Tighten pwd/grp iteration tests.\n  Cleanup some trivial TODOs.\n"
    },
    {
      "commit": "6f2e810198b4529ae179d3e662d3cf7ce76ae829",
      "tree": "72a2c601ca27d0b6a7405b414f53cff435bd9192",
      "parents": [
        "753994ab5aa5488966888eee3086be1535055c18"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 10 10:50:09 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 10 11:46:03 2020 -0700"
      },
      "message": "Cleanup some trivial TODOs.\n\n1) \"fix the system properties design\" is written for the old protocol,\n   so we\u0027ve already changed the design.  There are no other further\n   planned changes.\n2) \"don\u0027t drag in all the macros, just the types.\" is not likely to\n   happen or be particularly impactful.\n3) \"Find a location suitable for these functions ...\" is refering to\n   legacy code.  More likely that this code will be removed before we\n   find a serious reason to fix this TODO.\n4) \"(73062966) We still don\u0027t have a good way ...\" is stale; we fixed\n   this bug and added the appropriate mechanism.\n\nTest: n/a\nChange-Id: I23991692cdeb81ad00844a6a1680900ff384208b\n"
    },
    {
      "commit": "bb9fcb46361ddb55aac7faf639de5088a09b9b8e",
      "tree": "45734393965f7d49de434fc20dd4e578f715f190",
      "parents": [
        "a924442816161dd4699f1fbc401ae3e4c3eea738"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 06 11:38:04 2020 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 10 10:53:48 2020 -0700"
      },
      "message": "Update to v5.6 kernel headers.\n\nKernel headers coming from:\n\nGit: https://android.googlesource.com/kernel/common/\nBranch: android-mainline\nTag: android-mainline-5.6\n\nAdd a new method for removing structures. This is to deal with the kernel\nheaders changing some definitions of timeval to __kernel_old_timeval\nand itimerval to __kernel_old_itimerval. Remove the __kernel_old_XX\nstrutures and change the other structures to the previous definitions.\n\nThis only works so long as these structures stay the same, if they\ndiverge, then a different strategy will need to be implemented.\n\nTest: Booted cuttlefish/walleye.\nTest: Ran bionic-unit-tests on cuttlefish/walleye.\nChange-Id: I0a61f4fa6e4155c602e0414d9b38c2e1637829af\n"
    },
    {
      "commit": "14dcbf89ce6743ba037c8eddda1c6774a1137672",
      "tree": "42053fec96a1f7bcf3e4c176970dd3ea7f0eefeb",
      "parents": [
        "e05c449cd860b68e6339f71c98dd01748c22c01e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Mar 26 16:18:13 2020 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 09 12:38:53 2020 -0700"
      },
      "message": "Add API constant for S.\n\nTest: treehugger\nBug: http://b/152037166\nChange-Id: I9039377e80574cd59e13726a12072fe3002df67d\n"
    },
    {
      "commit": "666b12e25a6d73a7ad63563dc727c738271b72b7",
      "tree": "c7004148a508876aa13519595e5a93505369049d",
      "parents": [
        "dd8c4f84b20a11d066e333bd03ca3c7aee8b293f"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Mar 31 19:54:12 2020 -0700"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Wed Apr 01 20:54:45 2020 +0000"
      },
      "message": "icmp6.h - add captive portal and pref64 nd opts\n\nTest: builds\nBug: 150648313\nChange-Id: I41bcd4d46c0736b613870dba382ebc079e5759d7\n"
    },
    {
      "commit": "02f9f4cfb666b23dce4d648008e883be1d0c6a64",
      "tree": "093200f60395138642b85a7a70696d7c07b86382",
      "parents": [
        "2ec66b6a6a9e320cb80afc6ecd33310cc8cd9d9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 27 16:28:34 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 30 14:26:35 2020 -0700"
      },
      "message": "Add documentation to \u003cdirent.h\u003e.\n\nThis was a side-effect of something else I was doing. May as well check\nthis in now though.\n\nTest: treehugger\nChange-Id: Ibe8a3640d309c1980fa6e8ef003d4f255384c9e7\n"
    },
    {
      "commit": "4a6899ce0c0fc900354f44af400fb66ec29440e0",
      "tree": "ce91e984c6372ae2cb401ad58fc763a89ac19899",
      "parents": [
        "8d1849930f10e6b1a6b9c5885def5a08cee44040"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 25 10:34:46 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 26 11:43:05 2020 -0700"
      },
      "message": "Add ffsl(3), ffsll(3).\n\nPOSIX added these GNU extensions for issue 8.\n\nI\u0027ve made these always inline without the usual \"until API level X\"\nproviso because they\u0027re single instructions that the compiler can inline\nand there\u0027s really no point providing these if they add function call\noverhead --- everyone should just use __builtin_ffs() and friends\ninstead in that case.\n\nBug: https://austingroupbugs.net/view.php?id\u003d617\nTest: treehugger\nChange-Id: I33fc4b8648ea25917329e81c1b4c60eb9a66d667\n"
    },
    {
      "commit": "fa658eb094d915a9640a4d0642adee7667f439e7",
      "tree": "fed628e69093bc895bfb779c13cdf350c0f4540d",
      "parents": [
        "93517d1a27db3414e6f3b0b3fc91144903837329"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Mar 04 11:14:42 2020 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Mar 04 13:22:05 2020 -0800"
      },
      "message": "Fix bugprone-macro-parentheses warnings\n\nBug: 150783705\nTest: WITH_TIDY\u003d1 make\nChange-Id: If47b7adaa5f3ba3c518fb0be48f0ffdc81d204b2\n"
    },
    {
      "commit": "33318f51972de2a7973efb7d9d2f00de567d2e3c",
      "tree": "73449053c31e0966e79426588380bc351edd4f19",
      "parents": [
        "521dab3b365cd87284fdb0e3534069902b31d875",
        "733cedd1c4696ea74dab34d629ef7ac28ecc2200"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 25 16:37:09 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 16:37:09 2020 +0000"
      },
      "message": "Merge \"Add a libc wrapper for statx(2).\""
    },
    {
      "commit": "521dab3b365cd87284fdb0e3534069902b31d875",
      "tree": "68f56092f0bcc2f4668a03506352b32b890f66aa",
      "parents": [
        "9f8e1d52cbab7c5645298479ce9f66590f082c20",
        "c5d9036f80d0361a5ad711ab9047ba5747145c02"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 25 16:36:26 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 16:36:26 2020 +0000"
      },
      "message": "Merge \"Make the HWCAP/HWCAP2 constants available from \u003csys/auxv.h\u003e.\""
    },
    {
      "commit": "c5d9036f80d0361a5ad711ab9047ba5747145c02",
      "tree": "a045be6afb94bee06d36e28ecceb5c1c9331f38e",
      "parents": [
        "fcbdba22ab1c84825bd1e4cd18f8298c87991a5b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 09:52:14 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 09:52:14 2020 -0800"
      },
      "message": "Make the HWCAP/HWCAP2 constants available from \u003csys/auxv.h\u003e.\n\nNoticed by ARM when adding BTI support to the linker.\n\nTest: treehugger\nChange-Id: If3b87d0bd4682ff478b7805251fc9a88a7f439f9\n"
    },
    {
      "commit": "733cedd1c4696ea74dab34d629ef7ac28ecc2200",
      "tree": "6f24227b01f5bfea254d364bd90ee5a1067d4408",
      "parents": [
        "fcbdba22ab1c84825bd1e4cd18f8298c87991a5b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 21 23:21:28 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Feb 23 11:36:53 2020 -0800"
      },
      "message": "Add a libc wrapper for statx(2).\n\nBug: http://b/127675384\nBug: http://b/146676114\nTest: treehugger\nChange-Id: I844edc12f62717e579870a040cf03dfe60dc280b\n"
    },
    {
      "commit": "5403bd647b79e35bbd253103c9399f36740f45ba",
      "tree": "382a87d2db7474c3a176a296f412db5803c143ae",
      "parents": [
        "fcbdba22ab1c84825bd1e4cd18f8298c87991a5b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 21 16:23:33 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 21 16:23:33 2020 -0800"
      },
      "message": "Fix wrong link in getauxval(3) doc comment.\n\nTest: treehugger\nChange-Id: I8646251edaa07fa8682127428f4fdb1fa0cf80e5\n"
    },
    {
      "commit": "db5c45b457377bd37b5bbada9a5adeb3259077e0",
      "tree": "bfa9c9e0c5e2823e909369e07dc1c7ff901aa378",
      "parents": [
        "679d8e19cf5c0f073f72f2cd906d2981c3fa8e69",
        "d02e7b131efc0600572b00d796aede9db8675a33"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Feb 19 18:12:31 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 19 18:12:31 2020 +0000"
      },
      "message": "Merge \"fortify: simplify strlen for LLVM\u0027s new optimization\""
    },
    {
      "commit": "36359f47a29e8ba4f1c7653983b5db522c9deec8",
      "tree": "ec82c118f639b15b2665cf9aed36a0a06ef374aa",
      "parents": [
        "3d74451cf1aff71626b666a16ae6a1ceec82a055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 13:25:22 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 13:25:22 2020 -0800"
      },
      "message": "Remove unused declarations.\n\nTest: treehugger\nChange-Id: Ia96dc01df0d26e2e3023bebab23de82ca8e389f7\n"
    },
    {
      "commit": "5ac438e5daf497526e7321b456ba87a758a95ea2",
      "tree": "b285ddd203793a6d11744afa37da0cd5f5bb017c",
      "parents": [
        "7482e240cf60fff52ec08cf9340edb231aae7079"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 13 15:56:31 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 13 18:00:16 2020 -0800"
      },
      "message": "Clean up mips references in the headers.\n\nTest: treehugger\nChange-Id: I1997af980b9e46c7c530f9e6cb1aa407b2d63d76\n"
    },
    {
      "commit": "d02e7b131efc0600572b00d796aede9db8675a33",
      "tree": "01f646dfb0d781b48fc7448868e97d1a24f0d9cd",
      "parents": [
        "97d053283f4c100baed8677f7a7af98a976a2e2f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 13 11:44:20 2020 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 13 11:44:20 2020 -0800"
      },
      "message": "fortify: simplify strlen for LLVM\u0027s new optimization\n\nLLVM now knows how to fold __strlen_chk, so we can make this function a\none-liner.\n\nAlso fix strlcat to not double-return while I\u0027m in the area.\n\nBug: 148189733\nTest: TreeHugger\nChange-Id: I71ee308defbefe96f3fe6e357a2127309d2f0942\n"
    },
    {
      "commit": "44c01c77d39efc0f524ce62664c43054872d6874",
      "tree": "4507a57c91ef4598511ab43167c8771f84b0fd87",
      "parents": [
        "20b45958c39d836cce95d88c09b869d1e0ba921c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 08:46:29 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 08:46:29 2020 -0800"
      },
      "message": "Clean up the math headers.\n\nI had hoped that this would then let us remove more of the \"introduced\nin\" annotations, but it looks like that\u0027s not really going to happen\nuntil the NDK\u0027s minimum supported API is 21.\n\nAlso remove a .c file that wasn\u0027t referenced anywhere.\n\nTest: treehugger\nChange-Id: I8b4a61c082293f8445195a4fa5ee30595d70444e\n"
    },
    {
      "commit": "fd2eb42006fd1b51beb98e5c4e3e3ae2e676173e",
      "tree": "abf91d7d5b6fde955cf21b6da8f3e9d57b166348",
      "parents": [
        "3f41e145f24e28e03b9ab581ba7b50f4ca8f99a9",
        "026d3a8fa5f2ae8e7ce288369791581fd7cf5f19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 19:37:18 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 05 19:37:18 2020 +0000"
      },
      "message": "Merge \"\u003cctype.h\u003e: inline the ASCII functions.\""
    },
    {
      "commit": "3f41e145f24e28e03b9ab581ba7b50f4ca8f99a9",
      "tree": "3977776322fbc259eefb1c97f4cdd6fd63679947",
      "parents": [
        "f7c40da307be6a9cbe2287306d9b7c25f16bb09b",
        "2f7876596e700c85a1c7ad7ad21f3e6accb4a0bc"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Feb 05 18:02:08 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 05 18:02:08 2020 +0000"
      },
      "message": "Merge \"fortify: remove \u0027optimizations\u0027 for functions that LLVM knows about\""
    },
    {
      "commit": "026d3a8fa5f2ae8e7ce288369791581fd7cf5f19",
      "tree": "5ea4ff1d2489df502414fbfa0c311b813728f72f",
      "parents": [
        "2968695188152dbdc7529e56d6acbe4f77cbd2b4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 08:07:10 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 08:18:51 2020 -0800"
      },
      "message": "\u003cctype.h\u003e: inline the ASCII functions.\n\nWe\u0027ve optimized the ctype functions to the point where they\u0027re pretty\nmuch all down to one instruction. This change takes the obvious next\nstep of just inlining them.\n\nOn Android these function have only ever been for ASCII. You need the\n\u003cwctype.h\u003e functions for non-ASCII.\n\nlibc++ currently has its own inlines for the _l variants, so if we want\nto just inline them in bionic directly, we\u0027ll need to coordinate that.\n\nBug: http://b/144165498\nTest: treehugger plus benchmarks\nChange-Id: I4cc8aa96f7994ae710a562cfc9d4f220ab7babd6\n"
    },
    {
      "commit": "2f7876596e700c85a1c7ad7ad21f3e6accb4a0bc",
      "tree": "b89a9f8617a1b54c761364a8bb9c9361803c2a67",
      "parents": [
        "4fe5b783a46fced8fa355a5a9a187528eecde3cc"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 04 21:40:40 2020 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 04 21:52:36 2020 -0800"
      },
      "message": "fortify: remove \u0027optimizations\u0027 for functions that LLVM knows about\n\nOver the last year, LLVM apparently learned how to optimize many\nFORTIFY\u0027ed functions. I went through the list of functions it optimizes,\nand simplified their implementations here.\n\nThis is more than a code health thing; __bos_trivially_ge expands to a\nbranch that\u0027s not eliminated until after inlining, so it can actually\ncause some functions (like one of std::string\u0027s ctors) to become\nuninlineable.\n\nBug: 148189733\nTest: hand-checked the IR we get for each of the changed functions. Many\n      get optimized to their non-_chk variant when appropriate. Others\n      will get optimized to non-_chk versions when bos \u003d\u003d -1. Bug repro\n      also now shows all \u0027inline\u0027s.\n\nChange-Id: Ic360818ad9daaeda3958e1282af41087f85122a3\n"
    },
    {
      "commit": "9354f3e9a96dd0292c358d8e1afb6ef9b329be79",
      "tree": "ad3ddfef3a9bd48853e8fc2168165d6753e18dbb",
      "parents": [
        "1cecce883abe533978533d7fc29f6ce4bf96c161",
        "3288c2e254332beb1826380c06d7210af450c40b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 31 01:47:27 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 31 01:47:27 2020 +0000"
      },
      "message": "Merge \"Fix the libc/include .clang-format.\""
    },
    {
      "commit": "5f1165c66f81c4ba633d84bbf96bcc0b3108d199",
      "tree": "e6cac1b71339b846d1651841d00464d989d835f5",
      "parents": [
        "ce11673cadfd87065c24349d4269e9ff44d1e8af"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 30 14:35:01 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 30 14:35:01 2020 -0800"
      },
      "message": "versioner: don\u0027t require mips headers.\n\nIf we remove the mips uapi headers, versioner fails because it assumes\nthey\u0027re available. We\u0027ll need a new versioner prebuilt beforre we can\nremove the libc/versioner-dependencies/mips* symlinks.\n\nTest: treehugger\nChange-Id: Ife6df0cb57938f806a31ec334d648df9694c3d17\n"
    },
    {
      "commit": "3288c2e254332beb1826380c06d7210af450c40b",
      "tree": "fd1ff246fd9c99c19df0d3d320e540038abbe7df",
      "parents": [
        "ce11673cadfd87065c24349d4269e9ff44d1e8af"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 30 13:51:39 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 30 13:51:39 2020 -0800"
      },
      "message": "Fix the libc/include .clang-format.\n\nMany of our header files are very sensitive to the order in which\ntheir #includes appear...\n\nBug: N/A\nTest: N/A\nChange-Id: I2c21cac5e9bd49b7e80620d14971af8fefa17e91\n"
    },
    {
      "commit": "09e77f35ab8d291bf88302bb9673aaa518c6bcb0",
      "tree": "8cd94a94db1ab872266022a3ad2b746d0b215e36",
      "parents": [
        "945001da54637082fb30ea2a8bc50beb24442ffa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 19:20:45 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 19:36:14 2020 -0800"
      },
      "message": "_FILE_OFFSET_BITS\u003d64 support for fcntl.\n\nOn Android, fcntl is always implemented by fcntl64(2). This means that\nan LP32 binary can `fcntl(F_SETLK, struct flock)` (because fcntl64(2)\npasses through to the 32-bit fcntl(2) to handle F_SETLK), and it can\nalso `fcntl(F_SETLK64, struct flock64)`. What it can\u0027t do before this\npatch is set _FILE_OFFSET_BITS\u003d64 and then `fcntl(F_SETLK, struct\nflock)` where that `struct flock` is actually implicitly `struct\nflock64`.\n\nMove the kernel uapi structs out of the way, define them ourselves based\non __LP64__ and _FILE_OFFSET_BITS, and fix up the relevant F_ constants.\n\n(Also add a .clang-format to turn off clang-format in libc/include/.)\n\nBug: N/A\nTest: treehugger (and strace!)\nChange-Id: Iccd6c83d9133e1efcf93a7b49a6ae0f1bbd3d58b\n"
    },
    {
      "commit": "b070cabea875c5fd9d671708f45634010dbcbd55",
      "tree": "8a5f9e7b325f15a26be84a6c2ba5aad405dc5d97",
      "parents": [
        "1d8f6f2f5d180db07158e9d75c50adabd2826f30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:00:19 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 16:00:19 2020 -0800"
      },
      "message": "elf.h: move all the Android extensions together.\n\n...and document them slightly better.\n\nTest: N/A\nChange-Id: I32ad209f4086f617978c093782ac45977561445f\n"
    },
    {
      "commit": "6663f5525dafc31de1891d7e0fa6da88c4c7dc4b",
      "tree": "20be89b877823e6c2c3521037aa4a21f6bcb0345",
      "parents": [
        "5b9cc3144239511ec9062a3ff47dc20202848388"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 14:36:10 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 15:39:01 2020 -0800"
      },
      "message": "Modernize SHT_RELR support.\n\nUntil now we\u0027ve only supported RELR with our own OS-private-use\nconstants. Add support for the official numbers (while maintaining\nsupport for the historical numbers).\n\nAdd tests to ensure we continue to support both indefinitely.\n\nWe can\u0027t yet flip the build system over to using the official constants\nbecause the old GNU binutils objcopy we still use in most cases (for the\nmini-debug section) only supports the historical constants.\n\nBug: http://b/147452927\nTest: treehugger\nChange-Id: If214fce7fade4316115947e90b78ab40864b61f2\n"
    },
    {
      "commit": "f39b0856fef005c734c40959f07f711b94c0c4f6",
      "tree": "553d6335e5816e0a9f680a7165c8ad972de85564",
      "parents": [
        "3779d6da40fc90b989b343c1b0d5b22611226b43"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 16:28:22 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 16:42:15 2020 -0800"
      },
      "message": "Consistent \u003ctermios.h\u003e behavior on all API levels.\n\nBug: https://issuetracker.google.com/146886722 (where the difference was noticed)\nBug: http://b/69816452 (most recent fixes)\nTest: treehugger\nChange-Id: I487399c44f63ba276ccde74bf0c4a01e4cd4f4bf\n"
    },
    {
      "commit": "3779d6da40fc90b989b343c1b0d5b22611226b43",
      "tree": "ea9dd683f20ad87d47e13033663d357821a6acc0",
      "parents": [
        "932a83399a11f9c8ff3faa5f3d388f3a4c339970",
        "580d17d2adec17e3bd926445573c1e51d5f1621f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 08 03:43:18 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 08 03:43:18 2020 +0000"
      },
      "message": "Merge \"Add /system_ext/bin to shell search path\""
    },
    {
      "commit": "580d17d2adec17e3bd926445573c1e51d5f1621f",
      "tree": "50e4a4f2c68b3a653f20ba277c25d053ca97aa80",
      "parents": [
        "d2b8149ddad8b21ce535fb02ff752c85c7aa9d43"
      ],
      "author": {
        "name": "Justin Yun",
        "email": "justinyun@google.com",
        "time": "Tue Jan 07 20:19:20 2020 +0900"
      },
      "committer": {
        "name": "Justin Yun",
        "email": "justinyun@google.com",
        "time": "Tue Jan 07 20:39:52 2020 +0900"
      },
      "message": "Add /system_ext/bin to shell search path\n\n/system_ext/bin has executable binaries. They must be in the shell\nsearch path.\n\nBug: 134909174\nBug: 134359158\nTest: check PATH in the adb shell\nChange-Id: I997a2347fa85c444f2e335bede0d63b7703ba001\n"
    },
    {
      "commit": "5a750f3cf7756f3426402bc063ff30ee13956e07",
      "tree": "f91b37d6af07ea347ab0b45448ec75efa0cfa7ef",
      "parents": [
        "d7d9ebca37df2ee34fd620c26574b12f557c0c16"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Nov 20 10:29:14 2019 -0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Dec 23 07:22:48 2019 -0800"
      },
      "message": "versioner: Add __VERSIONER_FORTIFY_INLINE\n\nThis commit adds `__VERSIONER_FORTIFY_INLINE` to fortify overload\nfunctions.  Fortified functions are always overloaded and are likely to\nbe different from `libc.map.txt`.\n\nBug: 118991081\nTest: source development/vndk/tools/header-checker/android/envsetup.sh \u0026\u0026 \\\n      source build/envsetup.sh \u0026\u0026 \\\n      lunch aosp_arm64-userdebug \u0026\u0026 \\\n      m versioner \u0026\u0026 \\\n      ./bionic/tools/versioner/run_tests.py\nChange-Id: I28903d0f039d74a07eb2833c754ff017335bac95\n"
    },
    {
      "commit": "d7d9ebca37df2ee34fd620c26574b12f557c0c16",
      "tree": "2399b03cf784154d9cabcbd7243481852529370b",
      "parents": [
        "c88331b062803cf2a5257e41b9e38c6a2ea25122"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Nov 27 07:25:07 2019 -0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Dec 23 07:22:48 2019 -0800"
      },
      "message": "versioner: Only enable annotation while running versioner\n\nBug: 118991081\nTest: source development/vndk/tools/header-checker/android/envsetup.sh \u0026\u0026 \\\n      source build/envsetup.sh \u0026\u0026 \\\n      lunch aosp_arm64-userdebug \u0026\u0026 \\\n      m versioner \u0026\u0026 \\\n      ./bionic/tools/versioner/run_tests.py\nChange-Id: Id6cc776f8ea27bf7230c7a63dd75445a99e5ba58\n"
    },
    {
      "commit": "d98dac41df84e3f99d9a2e2bf158dc29ca7edf53",
      "tree": "0964a13ed92b2093f96bdf9ceeda954e9fb9aaa1",
      "parents": [
        "aaffa3c6d4bf620e211257b505223fab370ba3a1"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Nov 20 09:52:06 2019 -0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Dec 23 07:14:05 2019 -0800"
      },
      "message": "versioner: Fix fortified sendto\n\nThis commit fixes an error in fortified `sendto` function.  Since\n`__sendto_chk` is only introduced in API 26, the usage should be guarded\nwith `__ANDROID__API__ \u003e\u003d 26` instead of\n`__ANDROID_API__ \u003e\u003d __ANDROID_API_N_MR1__` (25).\n\nBug: 118991081\nTest: source development/vndk/tools/header-checker/android/envsetup.sh \u0026\u0026 \\\n      source build/envsetup.sh \u0026\u0026 \\\n      lunch aosp_arm64-userdebug \u0026\u0026 \\\n      m versioner \u0026\u0026 \\\n      ./bionic/tools/versioner/run_tests.py\nChange-Id: Ibc08244645c3fe76a72d0107138f67ffd56f5caa\n"
    },
    {
      "commit": "aaffa3c6d4bf620e211257b505223fab370ba3a1",
      "tree": "fa460f4c50db045474035fa67f7fb4e41731c6f4",
      "parents": [
        "5e2ac29165a5ecdff9be1e8b3aa0c0f968abf539"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Nov 20 09:21:04 2019 -0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Dec 23 07:13:33 2019 -0800"
      },
      "message": "versioner: Update libc.map.txt to match annotations\n\nThis commit removes several symbol versions (API 14 and 15) from\n`libc.map.txt` because we no longer support NDK with those API levels.\nThis also matches the versioner annotations in the header files.\n\nThis commit also annotates twalk() with __INTRODUCED_IN(21).  It was\naccidentally removed in aosp/1157510.\n\nTest: source development/vndk/tools/header-checker/android/envsetup.sh \u0026\u0026 \\\n      source build/envsetup.sh \u0026\u0026 \\\n      lunch aosp_arm64-userdebug \u0026\u0026 \\\n      m versioner \u0026\u0026 \\\n      ./bionic/tools/versioner/run_tests.py\nChange-Id: I211fe5b7b1b66793d5e76a8676f9d18825f96b5e\n"
    },
    {
      "commit": "95c6cd753f028b1afc0c6a800a3dd6bd85a5a6a0",
      "tree": "3d785e53e88c0b5864a8129c7b13e31f5d0e9caf",
      "parents": [
        "508d270886e90fac23ce51f81864d009307f13ae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 13:26:14 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 20 13:26:14 2019 -0800"
      },
      "message": "Stop using the __ANDROID_API_x__ constants.\n\nHistorically we\u0027ve made a few mistakes where they haven\u0027t matched the\nright number. And most non-Googlers are much more familiar with the\nnumbers, so it seems to make sense to rely more on them. Especially in\nheader files, which we actually expect real people to have to read from\ntime to time.\n\nTest: treehugger\nChange-Id: I0d4a97454ee108de1d32f21df285315c5488d886\n"
    },
    {
      "commit": "9584fa46e9dd7071f8ad870341e7a0ab5ab918e8",
      "tree": "69b5e82e39efc53887aa45ae288ff600ae2e49b7",
      "parents": [
        "27a8c60f045f939ab1cb7157313778966ed29404"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 09 15:36:13 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 12 14:59:25 2019 -0800"
      },
      "message": "Update to android-mainline kernel headers v5.4.\n\nUpdate generate_uapi_headers.sh to checkout the android mainline\nkernel. Also, add a small modification to look for the kernel directory\nin common not linux-stable.\n\nRemove deprecated android headers from android/uapi/linux. Also,\nremove f_accessory.h since it\u0027s in the android mainline kernel.\n\nTest: Builds and runs on walleye.\nChange-Id: Ia371305e19f56e6bcc2db6d5b4d299819f07ffc6\n"
    },
    {
      "commit": "8a0cdb15a1f6bbce41dcb185237f8723e6b101fd",
      "tree": "7db1fcdfcc891d33d32c8add93efdb6d6131420b",
      "parents": [
        "2a8bca749533dcefabff497d4f7346a35601a702"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Oct 21 13:27:57 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Nov 19 14:20:26 2019 -0800"
      },
      "message": "fortify: allow diagnostics without run-time checks (attempt #2)\n\nIn configs like ASAN, we can\u0027t use _chk functions. This CL builds off of\nprevious work to allow us to still emit diagnostics in conditions like\nthese.\n\nWasn\u0027t 100% sure what a good test story would look like here. Opinions\nappreciated.\n\nBug: 141267932\nTest: checkbuild on internal-master. TreeHugger for x86_64.\nChange-Id: I65da9ecc9903d51a09f740e38ab413b9beaeed88\n"
    },
    {
      "commit": "f38e8ca149b54e17632c61b7ed5b729f16abb9f9",
      "tree": "c6770932ea6f7350c57d082bfe471e346965368c",
      "parents": [
        "31600e84249769cc51dda49c78400887fab64f7e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 08 13:51:12 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 08 13:51:12 2019 -0800"
      },
      "message": "Stop using `__out` as a name.\n\nlibc++ poisons `__out` because it\u0027s #defined on Windows. Rather than\nhack libc++, let\u0027s just avoid that name. \"src\" and \"dst\" are far more\nwidely used than \"in\" and \"out\" for this purpose anyway.\n\nTest: treehugger\nChange-Id: I0db9997fd5f06f626dbf0ee967b52145395466b4\n"
    },
    {
      "commit": "2fead5fd89d47dd73df1de21e11d8e562372aa1a",
      "tree": "ffa492d39c4627cd565f50e4b78b3e5569b66f95",
      "parents": [
        "03aa94c9a997aeeeb90bdd8990b9c8f59a844267",
        "f359548bf1cf41e1f5390276e84e259cbbf30667"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Nov 07 07:10:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 07 07:10:38 2019 +0000"
      },
      "message": "Merge \"Revert \"fortify: allow diagnostics without run-time checks\"\""
    },
    {
      "commit": "f359548bf1cf41e1f5390276e84e259cbbf30667",
      "tree": "a840aea69c0f9c489dcfbccd7cc8d09988684d2a",
      "parents": [
        "d7e11b88531665de59de466bbc9ee6c480b00a4f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Nov 07 07:07:38 2019 +0000"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Nov 07 07:07:38 2019 +0000"
      },
      "message": "Revert \"fortify: allow diagnostics without run-time checks\"\n\nThis reverts commit d7e11b88531665de59de466bbc9ee6c480b00a4f.\n\nReason for revert: Breaks aosp_x86_64-eng. Will look into it and\nunbreak when it\u0027s not almost midnight. :)\n\nChange-Id: I21f76efe4d19c70d0b14630e441376d359a45b49\n"
    },
    {
      "commit": "d1dcb72882547cb506168815e6e2705825168bd3",
      "tree": "08c7e874bd080435683fd94acea30dcaf270cea5",
      "parents": [
        "7a3a5d8cd7e687fec74f091be3f8a27ab1b7f0e7",
        "d7e11b88531665de59de466bbc9ee6c480b00a4f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 07 01:34:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 07 01:34:11 2019 +0000"
      },
      "message": "Merge \"fortify: allow diagnostics without run-time checks\""
    },
    {
      "commit": "a468123fa424240fc753745a42204272de678037",
      "tree": "dd204d6f26f6770a3f9d5243be8bdd274453911c",
      "parents": [
        "590bdbe6e938e1bc53b09674b7eedde440863f11"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 04 13:59:12 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 04 13:59:12 2019 -0800"
      },
      "message": "search.h: add doc comments.\n\nAlso remove the __INTRODUCED_IN(16)s, since we don\u0027t support anything\nlower than 16.\n\nTest: treehugger\nChange-Id: I2cbd023d211a0f0ddf27251071caa29839c671a8\n"
    },
    {
      "commit": "b361e68d34f405805a30f2336169823021161ba8",
      "tree": "f5dd24c6b3d95ae0dc2b6cb8bc3415f9277574e1",
      "parents": [
        "6540ff4e174033da1fe10ff697d21d34ed66e3b7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 01 16:47:46 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 01 16:47:46 2019 -0700"
      },
      "message": "Header improvements.\n\nRemove some __INTRODUCED_IN(16)s, since we don\u0027t support anything lower\nthan 16, so that\u0027s a no-op. And add the missing doc comments to those\nheaders while we\u0027re there.\n\nTest: treehugger\nChange-Id: I0328c530675564f0f1124bd483da05ad06df3507\n"
    },
    {
      "commit": "d7e11b88531665de59de466bbc9ee6c480b00a4f",
      "tree": "a116d542b1ed00e4b12d72a30814d0c0df95e529",
      "parents": [
        "c430451205f78579c4f795b4339a81692a97f4d8"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Oct 21 13:27:57 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Nov 01 16:25:55 2019 -0700"
      },
      "message": "fortify: allow diagnostics without run-time checks\n\nIn configs like ASAN, we can\u0027t use _chk functions. This CL builds off of\nprevious work to allow us to still emit diagnostics in conditions like\nthese.\n\nWasn\u0027t 100% sure what a good test story would look like here. Opinions\nappreciated.\n\nBug: 141267932\nTest: checkbuild on internal-master\nChange-Id: I8d4f77d7b086a8128a18a0a0389243d7fa05b00f\n"
    },
    {
      "commit": "e949195f6489653ee3771535951ed06973246c3e",
      "tree": "204c6f7112e6524c0380cf683f2954753471fd26",
      "parents": [
        "9615e0ddacafcc728ff432fce61eaa0a1049880e"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 28 10:57:26 2019 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Oct 28 20:20:29 2019 -0700"
      },
      "message": "Adopt GNU calling convention for ifunc resolvers.\n\nIn order for an ifunc resolver to detect the presence of certain CPU features,\naccess to getauxval(AT_HWCAP) or getauxval(AT_HWCAP2) may be required. In order\nfor getauxval() to work, it needs to access the pointer to the auxiliary vector\nstored by the linker in the libc shared globals data structure. Accessing the\nshared globals requires libc to call the __libc_shared_globals() function\nexported by the linker. However, in order to call this function, libc must\nbe fully relocated, which is not guaranteed to be the case at the point when\nifunc resolvers are called.\n\nglibc solves this problem by passing the values of getauxval(AT_HWCAP)\n(and getauxval(AT_HWCAP2) on aarch64) as arguments to the ifunc resolver.\nSince this seems to be not only the most straightforward way to solve the\nproblem but also improves our compatibility with glibc, we adopt their\ncalling convention.\n\nThis change is ABI compatible with old resolvers because the arguments are\npassed in registers, so the old resolvers will simply ignore the new arguments.\n\nBug: 135772972\nChange-Id: Ie65bd6e7067f0c878df3d348c815fda61dc12de2\n"
    },
    {
      "commit": "80e9f65c040873c2aa016bfb0db5984e9db46f18",
      "tree": "4999055583e9f535e4f514d1534834d7c47d074c",
      "parents": [
        "95712059371aa522c80f1cab3cc3eb5431cc7f71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 14 12:19:29 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 13:30:12 2019 -0700"
      },
      "message": "Remove __ANDROID_NDK__ from bionic, and document our #defines.\n\n__ANDROID_NDK__ is moving into the NDK\u0027s \u003candroid/ndk-version.h\u003e\ninstead.\n\nTest: treehugger\nChange-Id: I192016165a929547009d15dbcc30e8f6dad1ac88\n"
    },
    {
      "commit": "e9ff7627895b09ddb105f43be9e3565c684292b6",
      "tree": "24a913a9fd3280733747887b21015dd44c749aee",
      "parents": [
        "ee155850298bd3c294177f9fa06e625b1017b9c8",
        "a4959aa6f819df0efdab6995e5de530655734389"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 15:09:45 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 15:09:45 2019 +0000"
      },
      "message": "Merge \"Reimplement the \u003cctype.h\u003e is* functions.\""
    },
    {
      "commit": "ee155850298bd3c294177f9fa06e625b1017b9c8",
      "tree": "773d5e3500cc083151aa06c8229d0d784000c29c",
      "parents": [
        "57f01b91d7812d7432bce4f8167953d72b613e64",
        "9823c926b2d3938b4645d347f570ff516fb8dc98"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 15:09:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 15:09:35 2019 +0000"
      },
      "message": "Merge \"Restore __ANDROID_NDK__.\""
    },
    {
      "commit": "9823c926b2d3938b4645d347f570ff516fb8dc98",
      "tree": "72d3eee47f4e4a02d561fa253c9f0ba25f205f51",
      "parents": [
        "29ec2881a0a87ccda75c77fd967934d863d53cc1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 07 20:51:00 2019 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 12:36:22 2019 -0700"
      },
      "message": "Restore __ANDROID_NDK__.\n\nAt heart a revert of \"Don\u0027t #define __ANDROID_NDK__ for the platform build!\",\nwhich was commit eb6143037423a241ba8035304936149b300f7a5d.\n\nThe original change was insufficiently motivated, and meant that the\nNDK -- not just the platform -- no longer defines __ANDROID_NDK__. Which\nthen broke at least building toybox with NDK r19.\n\nChange-Id: Ic616688e4d17d25714a9ef381269d7431deac9b0\n"
    },
    {
      "commit": "a4959aa6f819df0efdab6995e5de530655734389",
      "tree": "7f2ceae2b6c167bbfd20d1e9bbc9c1d52ff6fa7e",
      "parents": [
        "29ec2881a0a87ccda75c77fd967934d863d53cc1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 12:04:09 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 12:04:09 2019 -0700"
      },
      "message": "Reimplement the \u003cctype.h\u003e is* functions.\n\nFollowing on from the towlower()/towupper() changes, add benchmarks for\nmost of \u003cctype.h\u003e, rewrite the tests to cover the entire defined range\nfor all of these functions, and then reimplement most of the functions.\n\nThe old table-based implementation is mostly a bad idea on modern\nhardware, with only ispunct() showing a significant benefit compared to\nany other way I could think of writing it, and isalnum() a marginal but\nstill convincingly genuine benefit.\n\nMy new benchmarks make an effort to test an example from each relevant\nrange of characters to avoid, say, accidentally optimizing the behavior\nof `isalnum(\u00270\u0027)` at the expense of `isalnum(\u0027z\u0027)`.\n\nInterestingly, clang is able to generate what I believe to be the\noptimal implementations from the most readable code, which is\nimpressive. It certainly matched or beat all my attempts to be clever!\n\nThe BSD table-based implementations made a special case of EOF despite\nhaving a `_ctype_` table that\u0027s offset by 1 to include EOF at index 0.\nI\u0027m not sure why they didn\u0027t take advantage of that, but removing the\nexplicit check for EOF measurably improves the generated code on arm and\narm64, so even the two functions that still use the table benefit from\nthis rewrite.\n\nHere are the benchmark results:\n\narm64 before:\n  BM_ctype_isalnum_n                 3.73 ns         3.73 ns    183727137\n  BM_ctype_isalnum_y1                3.82 ns         3.81 ns    186383058\n  BM_ctype_isalnum_y2                3.73 ns         3.72 ns    187809830\n  BM_ctype_isalnum_y3                3.78 ns         3.77 ns    181383055\n  BM_ctype_isalpha_n                 3.75 ns         3.75 ns    189453927\n  BM_ctype_isalpha_y1                3.76 ns         3.75 ns    184854043\n  BM_ctype_isalpha_y2                4.32 ns         3.78 ns    186326931\n  BM_ctype_isascii_n                 2.49 ns         2.48 ns    275583822\n  BM_ctype_isascii_y                 2.51 ns         2.51 ns    282123915\n  BM_ctype_isblank_n                 3.11 ns         3.10 ns    220472044\n  BM_ctype_isblank_y1                3.20 ns         3.19 ns    226088868\n  BM_ctype_isblank_y2                3.11 ns         3.11 ns    220809122\n  BM_ctype_iscntrl_n                 3.79 ns         3.78 ns    188719938\n  BM_ctype_iscntrl_y1                3.72 ns         3.71 ns    186209237\n  BM_ctype_iscntrl_y2                3.80 ns         3.80 ns    184315749\n  BM_ctype_isdigit_n                 3.76 ns         3.74 ns    188334682\n  BM_ctype_isdigit_y                 3.78 ns         3.77 ns    186249335\n  BM_ctype_isgraph_n                 3.99 ns         3.98 ns    177814143\n  BM_ctype_isgraph_y1                3.98 ns         3.95 ns    175140090\n  BM_ctype_isgraph_y2                4.01 ns         4.00 ns    178320453\n  BM_ctype_isgraph_y3                3.96 ns         3.95 ns    175412814\n  BM_ctype_isgraph_y4                4.01 ns         4.00 ns    175711174\n  BM_ctype_islower_n                 3.75 ns         3.74 ns    188604818\n  BM_ctype_islower_y                 3.79 ns         3.78 ns    154738238\n  BM_ctype_isprint_n                 3.96 ns         3.95 ns    177607734\n  BM_ctype_isprint_y1                3.94 ns         3.93 ns    174877244\n  BM_ctype_isprint_y2                4.02 ns         4.01 ns    178206135\n  BM_ctype_isprint_y3                3.94 ns         3.93 ns    175959069\n  BM_ctype_isprint_y4                4.03 ns         4.02 ns    176158314\n  BM_ctype_isprint_y5                3.95 ns         3.94 ns    178745462\n  BM_ctype_ispunct_n                 3.78 ns         3.77 ns    184727184\n  BM_ctype_ispunct_y                 3.76 ns         3.75 ns    187947503\n  BM_ctype_isspace_n                 3.74 ns         3.74 ns    185300285\n  BM_ctype_isspace_y1                3.77 ns         3.76 ns    187202066\n  BM_ctype_isspace_y2                3.73 ns         3.73 ns    184105959\n  BM_ctype_isupper_n                 3.81 ns         3.80 ns    185038761\n  BM_ctype_isupper_y                 3.71 ns         3.71 ns    185885793\n  BM_ctype_isxdigit_n                3.79 ns         3.79 ns    184965673\n  BM_ctype_isxdigit_y1               3.76 ns         3.75 ns    188251672\n  BM_ctype_isxdigit_y2               3.79 ns         3.78 ns    184187481\n  BM_ctype_isxdigit_y3               3.77 ns         3.76 ns    187635540\n\narm64 after:\n  BM_ctype_isalnum_n                 3.37 ns         3.37 ns    205613810\n  BM_ctype_isalnum_y1                3.40 ns         3.39 ns    204806361\n  BM_ctype_isalnum_y2                3.43 ns         3.43 ns    205066077\n  BM_ctype_isalnum_y3                3.50 ns         3.50 ns    200057128\n  BM_ctype_isalpha_n                 2.97 ns         2.97 ns    236084076\n  BM_ctype_isalpha_y1                2.97 ns         2.97 ns    236083626\n  BM_ctype_isalpha_y2                2.97 ns         2.97 ns    236084246\n  BM_ctype_isascii_n                 2.55 ns         2.55 ns    272879994\n  BM_ctype_isascii_y                 2.46 ns         2.45 ns    286522323\n  BM_ctype_isblank_n                 3.18 ns         3.18 ns    220431175\n  BM_ctype_isblank_y1                3.18 ns         3.18 ns    220345602\n  BM_ctype_isblank_y2                3.18 ns         3.18 ns    220308509\n  BM_ctype_iscntrl_n                 3.10 ns         3.10 ns    220344270\n  BM_ctype_iscntrl_y1                3.10 ns         3.07 ns    228973615\n  BM_ctype_iscntrl_y2                3.07 ns         3.07 ns    229192626\n  BM_ctype_isdigit_n                 3.07 ns         3.07 ns    228925676\n  BM_ctype_isdigit_y                 3.07 ns         3.07 ns    229182934\n  BM_ctype_isgraph_n                 2.66 ns         2.66 ns    264268737\n  BM_ctype_isgraph_y1                2.66 ns         2.66 ns    264445277\n  BM_ctype_isgraph_y2                2.66 ns         2.66 ns    264327427\n  BM_ctype_isgraph_y3                2.66 ns         2.66 ns    264427480\n  BM_ctype_isgraph_y4                2.66 ns         2.66 ns    264155250\n  BM_ctype_islower_n                 2.66 ns         2.66 ns    264421600\n  BM_ctype_islower_y                 2.66 ns         2.66 ns    264341148\n  BM_ctype_isprint_n                 2.66 ns         2.66 ns    264415198\n  BM_ctype_isprint_y1                2.66 ns         2.66 ns    264268793\n  BM_ctype_isprint_y2                2.66 ns         2.66 ns    264419205\n  BM_ctype_isprint_y3                2.66 ns         2.66 ns    264205886\n  BM_ctype_isprint_y4                2.66 ns         2.66 ns    264440797\n  BM_ctype_isprint_y5                2.72 ns         2.72 ns    264333293\n  BM_ctype_ispunct_n                 3.52 ns         3.51 ns    198956572\n  BM_ctype_ispunct_y                 3.38 ns         3.38 ns    201661792\n  BM_ctype_isspace_n                 3.39 ns         3.39 ns    206896620\n  BM_ctype_isspace_y1                3.39 ns         3.39 ns    206569020\n  BM_ctype_isspace_y2                3.39 ns         3.39 ns    206564415\n  BM_ctype_isupper_n                 2.76 ns         2.75 ns    254227134\n  BM_ctype_isupper_y                 2.76 ns         2.75 ns    254235314\n  BM_ctype_isxdigit_n                3.60 ns         3.60 ns    194418653\n  BM_ctype_isxdigit_y1               2.97 ns         2.97 ns    236082424\n  BM_ctype_isxdigit_y2               3.48 ns         3.48 ns    200390011\n  BM_ctype_isxdigit_y3               3.48 ns         3.48 ns    202255815\n\narm32 before:\n  BM_ctype_isalnum_n                 4.77 ns         4.76 ns    129230464\n  BM_ctype_isalnum_y1                4.88 ns         4.87 ns    147939321\n  BM_ctype_isalnum_y2                4.74 ns         4.73 ns    145508054\n  BM_ctype_isalnum_y3                4.81 ns         4.80 ns    144968914\n  BM_ctype_isalpha_n                 4.80 ns         4.79 ns    148262579\n  BM_ctype_isalpha_y1                4.74 ns         4.73 ns    145061326\n  BM_ctype_isalpha_y2                4.83 ns         4.82 ns    147642546\n  BM_ctype_isascii_n                 3.74 ns         3.72 ns    186711139\n  BM_ctype_isascii_y                 3.79 ns         3.78 ns    183654780\n  BM_ctype_isblank_n                 4.20 ns         4.19 ns    169733252\n  BM_ctype_isblank_y1                4.19 ns         4.18 ns    165713363\n  BM_ctype_isblank_y2                4.22 ns         4.21 ns    168776265\n  BM_ctype_iscntrl_n                 4.75 ns         4.74 ns    145417484\n  BM_ctype_iscntrl_y1                4.82 ns         4.81 ns    146283250\n  BM_ctype_iscntrl_y2                4.79 ns         4.78 ns    148662453\n  BM_ctype_isdigit_n                 4.77 ns         4.76 ns    145789210\n  BM_ctype_isdigit_y                 4.84 ns         4.84 ns    146909458\n  BM_ctype_isgraph_n                 4.72 ns         4.71 ns    145874663\n  BM_ctype_isgraph_y1                4.86 ns         4.85 ns    142037606\n  BM_ctype_isgraph_y2                4.79 ns         4.78 ns    145109612\n  BM_ctype_isgraph_y3                4.75 ns         4.75 ns    144829039\n  BM_ctype_isgraph_y4                4.86 ns         4.85 ns    146769899\n  BM_ctype_islower_n                 4.76 ns         4.75 ns    147537637\n  BM_ctype_islower_y                 4.79 ns         4.78 ns    145648017\n  BM_ctype_isprint_n                 4.82 ns         4.81 ns    147154780\n  BM_ctype_isprint_y1                4.76 ns         4.76 ns    145117604\n  BM_ctype_isprint_y2                4.87 ns         4.86 ns    145801406\n  BM_ctype_isprint_y3                4.79 ns         4.78 ns    148043446\n  BM_ctype_isprint_y4                4.77 ns         4.76 ns    145157619\n  BM_ctype_isprint_y5                4.91 ns         4.90 ns    147810800\n  BM_ctype_ispunct_n                 4.74 ns         4.73 ns    145588611\n  BM_ctype_ispunct_y                 4.82 ns         4.81 ns    144065436\n  BM_ctype_isspace_n                 4.78 ns         4.77 ns    147153712\n  BM_ctype_isspace_y1                4.73 ns         4.72 ns    145252863\n  BM_ctype_isspace_y2                4.84 ns         4.83 ns    148615797\n  BM_ctype_isupper_n                 4.75 ns         4.74 ns    148276631\n  BM_ctype_isupper_y                 4.80 ns         4.79 ns    145529893\n  BM_ctype_isxdigit_n                4.78 ns         4.77 ns    147271646\n  BM_ctype_isxdigit_y1               4.74 ns         4.74 ns    145142209\n  BM_ctype_isxdigit_y2               4.83 ns         4.82 ns    146398497\n  BM_ctype_isxdigit_y3               4.78 ns         4.77 ns    147617686\n\narm32 after:\n  BM_ctype_isalnum_n                 4.35 ns         4.35 ns    161086146\n  BM_ctype_isalnum_y1                4.36 ns         4.35 ns    160961111\n  BM_ctype_isalnum_y2                4.36 ns         4.36 ns    160733210\n  BM_ctype_isalnum_y3                4.35 ns         4.35 ns    160897524\n  BM_ctype_isalpha_n                 3.67 ns         3.67 ns    189377208\n  BM_ctype_isalpha_y1                3.68 ns         3.67 ns    189438146\n  BM_ctype_isalpha_y2                3.75 ns         3.69 ns    190971186\n  BM_ctype_isascii_n                 3.69 ns         3.68 ns    191029191\n  BM_ctype_isascii_y                 3.68 ns         3.68 ns    191011817\n  BM_ctype_isblank_n                 4.09 ns         4.09 ns    171887541\n  BM_ctype_isblank_y1                4.09 ns         4.09 ns    171829345\n  BM_ctype_isblank_y2                4.08 ns         4.07 ns    170585590\n  BM_ctype_iscntrl_n                 4.08 ns         4.07 ns    170614383\n  BM_ctype_iscntrl_y1                4.13 ns         4.11 ns    171495899\n  BM_ctype_iscntrl_y2                4.19 ns         4.18 ns    165255578\n  BM_ctype_isdigit_n                 4.25 ns         4.24 ns    165237008\n  BM_ctype_isdigit_y                 4.24 ns         4.24 ns    165256149\n  BM_ctype_isgraph_n                 3.82 ns         3.81 ns    183610114\n  BM_ctype_isgraph_y1                3.82 ns         3.81 ns    183614131\n  BM_ctype_isgraph_y2                3.82 ns         3.81 ns    183616840\n  BM_ctype_isgraph_y3                3.79 ns         3.79 ns    183620182\n  BM_ctype_isgraph_y4                3.82 ns         3.81 ns    185740009\n  BM_ctype_islower_n                 3.75 ns         3.74 ns    183619502\n  BM_ctype_islower_y                 3.68 ns         3.68 ns    190999901\n  BM_ctype_isprint_n                 3.69 ns         3.68 ns    190899544\n  BM_ctype_isprint_y1                3.68 ns         3.67 ns    190192384\n  BM_ctype_isprint_y2                3.67 ns         3.67 ns    189351466\n  BM_ctype_isprint_y3                3.67 ns         3.67 ns    189430348\n  BM_ctype_isprint_y4                3.68 ns         3.68 ns    189430161\n  BM_ctype_isprint_y5                3.69 ns         3.68 ns    190962419\n  BM_ctype_ispunct_n                 4.14 ns         4.14 ns    171034861\n  BM_ctype_ispunct_y                 4.19 ns         4.19 ns    168308152\n  BM_ctype_isspace_n                 4.50 ns         4.50 ns    156250887\n  BM_ctype_isspace_y1                4.48 ns         4.48 ns    155124476\n  BM_ctype_isspace_y2                4.50 ns         4.50 ns    155077504\n  BM_ctype_isupper_n                 3.68 ns         3.68 ns    191020583\n  BM_ctype_isupper_y                 3.68 ns         3.68 ns    191015669\n  BM_ctype_isxdigit_n                4.50 ns         4.50 ns    156276745\n  BM_ctype_isxdigit_y1               3.28 ns         3.27 ns    214729725\n  BM_ctype_isxdigit_y2               4.48 ns         4.48 ns    155265129\n  BM_ctype_isxdigit_y3               4.48 ns         4.48 ns    155216846\n\nI\u0027ve also corrected a small mistake in the documentation for isxdigit().\n\nTest: tests and benchmarks\nChange-Id: I4a77859f826c3fc8f0e327e847886882f29ec4a3\n"
    },
    {
      "commit": "3aedee98286f2551742ec7b1ecb550ae334ebe50",
      "tree": "2ca994f5635dddaabc24468e7f0108c009664c48",
      "parents": [
        "fd1ff4b2c851fe3cb0f945273bdae751555c3875"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Sep 24 11:46:22 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Oct 07 16:18:44 2019 -0700"
      },
      "message": "fortify: remove last uses of __bos_trivially_not*\n\nSince we\u0027re using the gt/ge ones a lot now, having `not` versions\nprobably just adds to confusion. Swap out their remaining uses and\ndelete them.\n\nBug: 141267932\nTest: m checkbuild on internal-master\nChange-Id: I2107ae65007a4995e4fa23371fefe4db7547f43b\n"
    },
    {
      "commit": "fd1ff4b2c851fe3cb0f945273bdae751555c3875",
      "tree": "becdc39f95be350faefdd7ebb1d0f3215c3d3e0a",
      "parents": [
        "9349b9e51b41d12fd054b925802b626ca2db0afb"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Sep 18 17:29:55 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Oct 07 16:18:44 2019 -0700"
      },
      "message": "fortify(string): emit diagnostics regardless of API level\n\nBug: 141267932\nTest: m checkbuild on internal-master\n\nChange-Id: I7dc10b56b667f8f2f2cd360b008d834af92a72e4\n"
    },
    {
      "commit": "9349b9e51b41d12fd054b925802b626ca2db0afb",
      "tree": "66ac269fe590d42d8ade9332328a5d5d9ed5f45e",
      "parents": [
        "67ff8b5f9cb1af1a633e96a771e386d3305c6799"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Sep 18 17:16:01 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Oct 07 16:18:41 2019 -0700"
      },
      "message": "fortify(fcntl): emit diagnostics regardless of API level\n\nBug: 141267932\nTest: m checkbuild on internal-master\n\nChange-Id: I2037548cc2061e46c379931588194c21dfe234b4\n"
    },
    {
      "commit": "3e565bd7eebeab285cb2edfb6cc5fd3a32cf78a5",
      "tree": "05064de9afb956dcbe8907b0ec7137bf95c62f9a",
      "parents": [
        "cfa2e8a66770d60f83badb6e7dd01d92fd1fbf1b",
        "da8d30f357d7afa449db00758254f2b858897e30"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 04 06:36:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 04 06:36:54 2019 +0000"
      },
      "message": "Merge \"fortify(unistd): emit diagnostics regardless of API level\""
    },
    {
      "commit": "0e14c5a869bfaf4fd03dde4aca041fc7aef36b9c",
      "tree": "2f275042163fba74d9103948e415c1b06b75164d",
      "parents": [
        "3398552aa68b79c026eeeeaac4b10119bccf7d9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 20:35:38 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 20:35:38 2019 -0700"
      },
      "message": "\u003cunistd.h\u003e __INTRODUCED_IN cleaup.\n\nThe NDK doesn\u0027t support anything older than API level 16, so remove some\nmore clutter.\n\nTest: builds\nChange-Id: If257a27841396af001b089b7ae0fbd8c3e0128e4\n"
    },
    {
      "commit": "da8d30f357d7afa449db00758254f2b858897e30",
      "tree": "46dd52f8a66076a341511565c16f57415cdf5b5f",
      "parents": [
        "3398552aa68b79c026eeeeaac4b10119bccf7d9b"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Sep 18 17:09:43 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 03 20:30:02 2019 -0700"
      },
      "message": "fortify(unistd): emit diagnostics regardless of API level\n\nBug: 141267932\nTest: m checkbuild on internal-master\n\nChange-Id: I17ad1283cbedaec2ab070134320e1c5401d3e6a4\n"
    },
    {
      "commit": "3398552aa68b79c026eeeeaac4b10119bccf7d9b",
      "tree": "da0e2632e41ac86591ea04856f2a25b2e9238db8",
      "parents": [
        "bdb16cf8b8d0c46a146dc7d64c6607046abff232",
        "f106a391d3912a542e7f99a27d8860af5a69fdc4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 04 01:47:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 04 01:47:03 2019 +0000"
      },
      "message": "Merge \"Remove __INTRODUCED_IN for obsolete API levels.\""
    },
    {
      "commit": "f106a391d3912a542e7f99a27d8860af5a69fdc4",
      "tree": "f8b3aa468e462e1f1a87ae46d07cf232e9ae5545",
      "parents": [
        "b29454794c48faed61987df172993855201343e6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 16:09:04 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 16:09:04 2019 -0700"
      },
      "message": "Remove __INTRODUCED_IN for obsolete API levels.\n\nThe NDK only supports \u003e\u003d 16, so remove anything older than that to avoid\ngiving the misleading impression that such old targets are still\nsupported.\n\n(This change doesn\u0027t touch \u003cunistd.h\u003e. I\u0027ll follow up with that once the\noutstanding FORTIFY changes to that file are in.)\n\nTest: builds\nChange-Id: I6cc6ecdb99fe228a4afa71f78e5fd45309ba9786\n"
    },
    {
      "commit": "b8a95e21865efd16bf821333d34e005b8f0a8d3a",
      "tree": "d6a9a56d4499b2e01ebea72bf920f828a6c740c1",
      "parents": [
        "b29454794c48faed61987df172993855201343e6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 02 18:29:20 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 03 10:59:32 2019 -0700"
      },
      "message": "Update to kernel headers v5.3.2.\n\nTest: Builds and run unit tests on taimen/cuttlefish.\nChange-Id: I6ebd8f179d159ac974555e8edca588083e8081b3\n"
    },
    {
      "commit": "3d6cf766be5111196d942aed051efd8749a167b4",
      "tree": "596e7a96ad123bfb6dfb1567d764c8bfaf75a491",
      "parents": [
        "40ef00f039b2a53f017ed0daf2adb71ea070ae85",
        "cfac8d0074e26ef1b65e374892521754cf42aa76"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 03 00:47:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 03 00:47:25 2019 +0000"
      },
      "message": "Merge \"\u003csys/select.h\u003e: add docs, and a warning against using select().\""
    },
    {
      "commit": "cfac8d0074e26ef1b65e374892521754cf42aa76",
      "tree": "3f06ee373a89d837a9b6eb7bbbf5722f04f3e3e2",
      "parents": [
        "822beaeeacc36f368c12aa93133aeed2f59e737b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 02 14:12:31 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 02 14:13:54 2019 -0700"
      },
      "message": "\u003csys/select.h\u003e: add docs, and a warning against using select().\n\nTest: N/A\nChange-Id: I596d63f2c8039434e2b8023eefb944da5c4bbb40\n"
    },
    {
      "commit": "113d6fa14e6daf1ba291e90f8402e8b71771b2d7",
      "tree": "b289300f41c89c3fb38fd1be195b6c956e3484eb",
      "parents": [
        "db876075248bccb84ce3c036107ba5fbb32c197d"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Sep 18 17:06:14 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Sep 30 13:00:36 2019 -0700"
      },
      "message": "fortify(stdio): emit diagnostics regardless of API level\n\nBug: 141267932\nTest: m checkbuild on internal-master\n\nChange-Id: I875a072c74f578d4404576c5bb42fd8ea30ff68d\n"
    },
    {
      "commit": "db876075248bccb84ce3c036107ba5fbb32c197d",
      "tree": "e8848886aa4932570e67ff9ed050271257d5ff6d",
      "parents": [
        "bc37c5a8ce8e4131d98e4afb9800a98c1f929a60"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Sep 18 17:03:22 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Sep 30 13:00:36 2019 -0700"
      },
      "message": "fortify(poll): emit diagnostics regardless of API level\n\nBug: 141267932\nTest: m checkbuild on internal-master\n\nChange-Id: I5e147d28ec606c104b5905fd3d0c3fc197f0e4b8\n"
    },
    {
      "commit": "bc37c5a8ce8e4131d98e4afb9800a98c1f929a60",
      "tree": "b94fe730ae94339db1ee570c51d3a671f8e0197c",
      "parents": [
        "d0a0f72852d45db213886db606692e7b204207bc"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Sep 18 17:01:31 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Sep 30 13:00:35 2019 -0700"
      },
      "message": "fortify(strings): emit diagnostics regardless of API level\n\nBug: 141267932\nTest: m checkbuild on internal-master\n\nChange-Id: Ief185320f93ec31f4d0a8035c450a7ab7b4e02b4\n"
    },
    {
      "commit": "d0a0f72852d45db213886db606692e7b204207bc",
      "tree": "ff5c8932db010e582788a7d78d47f3d1df8be618",
      "parents": [
        "82ee3a08e213d9b4ef98189a7d869048c7b48817"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Sep 18 16:53:57 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Sep 30 13:00:35 2019 -0700"
      },
      "message": "fortify(socket/stat): emit diagnostics regardless of API level\n\nBug: 141267932\nTest: m checkbuild on internal-master\n\nChange-Id: I7fe29184290e19ec080b204aa98d513ce59bc66b\n"
    },
    {
      "commit": "36926f4ca8183375e96c81db879a6f185ef92dff",
      "tree": "2b22fd43d22e35b49298fbea3216e63c0aeaf371",
      "parents": [
        "1ffee0cfc1e3a7fddf4cbe633694be91e72265a1"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Sun Sep 15 16:57:00 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Sep 16 12:48:04 2019 -0700"
      },
      "message": "fortify: account for new clang diagnostics\n\nClang recently grew its own diagnostics for memcpy and such. These are\ngenerally higher-quality than what we can do with diagnose_if, since\nclang is happy to include e.g., sizes of things per-callsite. Move to\nthose instead where applicable.\n\nBug: 131861088, 123644155\nTest: blueline internal-master checkbuild; treehugger\nChange-Id: I701f5a8b247ba2948ca47fdc60ff5198b564c03e\n"
    },
    {
      "commit": "2fb9a03b9cfcb6dffdf0c4728bb8947509e083c6",
      "tree": "9df3d4fd03272e9ce62d8f9eea64128d3a34e70c",
      "parents": [
        "37ff081e886f29c10a5f549094a53c8d547c6565",
        "b33952c777dc3068dbcdafcc14a58ed91064bd2d"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Sep 03 23:12:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 03 23:12:43 2019 +0000"
      },
      "message": "Merge \"versioner: Fix bzero/bcopy fortify\""
    },
    {
      "commit": "37ff081e886f29c10a5f549094a53c8d547c6565",
      "tree": "97e870e34ec701d1fe38d5eceed3c887db9c5285",
      "parents": [
        "add3a4ae70e712d8b47d40ff127038a3d2e9fc2f",
        "261bd745eeee4accb56084401b48947c98c8107c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 03 22:28:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 03 22:28:36 2019 +0000"
      },
      "message": "Merge \"Support statvfs on API levels before 19.\""
    },
    {
      "commit": "add3a4ae70e712d8b47d40ff127038a3d2e9fc2f",
      "tree": "5aae5609710c0a79024f534551f19a0c18e64f6d",
      "parents": [
        "8292d04da5941e25e6d6f01e267ce8dc69d0a3f5",
        "2c4cb0d760c095ce9db556f91abb0c63480ccc04"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 19:16:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 03 19:16:55 2019 +0000"
      },
      "message": "Merge \"Add EFD_SEMAPHORE flag for eventfd.\""
    },
    {
      "commit": "2c4cb0d760c095ce9db556f91abb0c63480ccc04",
      "tree": "87391fff9c7189bb75990e19d53edeae47b40412",
      "parents": [
        "c238330720d2c9708857d12e38085a3b536d2f8c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 09:16:42 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 09:35:51 2019 -0700"
      },
      "message": "Add EFD_SEMAPHORE flag for eventfd.\n\nAdd a test for the new flag and add a test for the EFD_CLOEXEC flag.\n\nTest: New unit tests pass on glibc and target.\nChange-Id: Ib7a6ea4aadbd67ba8a523b6114a49fb8d6a43f12\n"
    },
    {
      "commit": "8292d04da5941e25e6d6f01e267ce8dc69d0a3f5",
      "tree": "2a284b4fac0a2b3a8c52c787e2b1244b1b38d84d",
      "parents": [
        "c238330720d2c9708857d12e38085a3b536d2f8c",
        "235aad1981cf06525b35c9a3bbcbc9fbca6a8e60"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Sep 03 16:22:02 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 03 16:22:02 2019 +0000"
      },
      "message": "Merge \"versioner: Fix C11 threads.h\""
    },
    {
      "commit": "b33952c777dc3068dbcdafcc14a58ed91064bd2d",
      "tree": "7e4752b7a80e548e1d7b161f6477ba5fb622e53b",
      "parents": [
        "235aad1981cf06525b35c9a3bbcbc9fbca6a8e60"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Aug 27 20:50:24 2019 -0700"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Aug 30 10:17:36 2019 -0700"
      },
      "message": "versioner: Fix bzero/bcopy fortify\n\nThis commit replaces `bzero` with `__bionic_bzero` and `bcopy` with\n`__bionic_bcopy` because `bzero` and `bcopy` are partially defined in\n`libc.map.txt`.  Bionic versioner raises errors because versioner treats\nstatic inline functions as exported function definitions then it\ncompares the availability with the information specified in\n`libc.map.txt`.\n\nThis commit fixes the problem by replacing static inline functions into\n`__bionic_{bzero,bcopy}` and defining aliases for source-level\ncompatibility.\n\nTest: PATH\u003d$(pwd)/prebuilts/clang-tools/linux-x86/bin:$PATH \\\n      bionic/tools/versioner/run_tests.py\nBug: 140110040\n\nChange-Id: I97f2f0dc0abccd0a9fcfe5bb02f4e918362d35cc\n"
    },
    {
      "commit": "261bd745eeee4accb56084401b48947c98c8107c",
      "tree": "6e68559b52d875c551a524d18041cf274bde9c35",
      "parents": [
        "9e544d3077fc392ce40e87a34a622bd327f09c7d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 29 20:45:14 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 29 21:57:58 2019 -0700"
      },
      "message": "Support statvfs on API levels before 19.\n\nSplit statfs and statvfs. The former has been available forever, and the\nlatter is implemented in terms of the former. The implementation has\nbeen moved into headers so that it can be used at low API levels.\n\nThere\u0027s no reason for any Android or Linux code to use statvfs rather\nthan statfs, but code that needs to build on Darwin too will want to use\nstatvfs because Darwin\u0027s statfs is very spartan.\n\nBug: https://github.com/android-ndk/ndk/issues/609\nTest: treehugger\nChange-Id: Icf3d5723a260099fddb2d9f902e3047b0f041647\n"
    },
    {
      "commit": "235aad1981cf06525b35c9a3bbcbc9fbca6a8e60",
      "tree": "b0d166a016d04fed32872bc1358190fe07a73a66",
      "parents": [
        "2acd0c34a929614b047ed4b9edf516e83f24f200"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Aug 27 20:29:29 2019 -0700"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Aug 29 16:40:34 2019 -0700"
      },
      "message": "versioner: Fix C11 threads.h\n\nThis commit annotates C11 Thread APIs so that bionic versioner won\u0027t\nreport errors.\n\nThis commit also adds a guard before `mtx_timedlock` because\n`pthread_mutex_timedlock` was introduced in Android L.\n\nTest: PATH\u003d$(pwd)/prebuilts/clang-tools/linux-x86/bin:$PATH \\\n      bionic/tools/versioner/run_tests.py\nBug: 140110040\n\nChange-Id: I3c6ce0831f613ffd3a7bf1c1972fd3548195cc56\n"
    },
    {
      "commit": "6d5277dbaa34f67635e9b685ca9d5cf3db15d713",
      "tree": "87ae5227a4a428e6095003cb01e024645cdcf97a",
      "parents": [
        "2acd0c34a929614b047ed4b9edf516e83f24f200"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jul 05 22:38:07 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Aug 29 18:07:50 2019 +0100"
      },
      "message": "Update references to the new com.android.art APEX.\n\nTest: Flash \u0026 boot\nTest: atest CtsJniTestCases CtsBionicTestCases\nBug: 135753770\nExempt-From-Owner-Approval: Approved internally\nChange-Id: I1c16a798edc494e75b9d703990de08e60686a3ea\nMerged-In: I1c16a798edc494e75b9d703990de08e60686a3ea\n"
    },
    {
      "commit": "665e98edf76b2c4465e64df7beee0bbbbf0758ca",
      "tree": "da149761182d1d4738dbc767f26fa3bceb3f9868",
      "parents": [
        "65dcf788f85283f82144baf856a5600fb4f6750b",
        "a2e83ab34845759f0999d0ec88f4cdf558c0a9f5"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Aug 23 20:45:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 23 20:45:54 2019 +0000"
      },
      "message": "Merge \"Add additional dl_phdr_info fields\""
    },
    {
      "commit": "a2e83ab34845759f0999d0ec88f4cdf558c0a9f5",
      "tree": "94c0adb62490e467936aae54b501c0fb577a122e",
      "parents": [
        "3952113d90dd91adc67ce60899d4997bb5f63d0d"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Aug 16 17:25:43 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Aug 22 12:43:17 2019 -0700"
      },
      "message": "Add additional dl_phdr_info fields\n\nPreviously, Bionic\u0027s dl_phdr_info only included the first four\ndl_iterate_phdr fields. Several other libc\u0027s have these additional fields:\n\n    unsigned long long dlpi_adds -- incremented when a library is loaded\n    unsigned long long dlpi_subs -- incremented when a library is unloaded\n    size_t dlpi_tls_modid -- TLS module ID\n    void* dlpi_tls_data -- pointer to current thread\u0027s TLS block or NULL\n\nThese extra fields are also exposed by glibc, musl, and FreeBSD. The\nunwinder in libgcc.a, linked into shipping Android DSOs, has a\nPC-\u003eeh_frame cache that activates if dl_phdr_info has the dlpi_adds and\ndlpi_subs fields (indicated at run-time by a sufficiently-large size\nargument to the callback).\n\nBug: https://github.com/android-ndk/ndk/issues/1062\nTest: bionic unit tests\nChange-Id: I6f0bab548cf8c828af2ddab9eb01c5c6d70cd81f\n"
    },
    {
      "commit": "28cf07f93daeea92faddaa3e71fd5ff2095fd407",
      "tree": "7c567fefd122cee87f268ddf19b7a489e9ca86fd",
      "parents": [
        "d4e1db56b824efb048b7c5684200967eb02bb371",
        "6a5101372865eab449c876a0ff4933185ed263a2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 21 07:57:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 21 07:57:28 2019 +0000"
      },
      "message": "Merge \"Reland \"fdsan: make fatal by default.\"\""
    },
    {
      "commit": "6a5101372865eab449c876a0ff4933185ed263a2",
      "tree": "2244bc1a869d7f024e0ee943283956b5ec1a7cd4",
      "parents": [
        "1491521a6824e80e8499d706707a9a58f138dd04"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 20 17:59:14 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 20 17:59:14 2019 -0700"
      },
      "message": "Reland \"fdsan: make fatal by default.\"\n\nThe two tests known to be failing (installd_dexopt_test and BpfMapTest)\nhave been fixed, so let\u0027s try this again.\n\nThis reverts commit 76351e3e3fbbd386c059251dbc6b1081a8f77088.\n\nBug: http://b/137788030\nBug: http://b/139092341\nBug: http://b/139175951\nTest: treehugger\n"
    },
    {
      "commit": "f69d852f27da349c211aae473d21fa358f8b6238",
      "tree": "57000f800aa89dc0460df600ab38076fcc06abb7",
      "parents": [
        "3952113d90dd91adc67ce60899d4997bb5f63d0d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 20 13:18:57 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 20 13:18:57 2019 -0700"
      },
      "message": "Automatically include \u003candroid/ndk-version.h\u003e from every header.\n\n(Via \u003csys/cdefs.h\u003e, which is where we get \u003candroid/api-level.h\u003e from.)\n\nNot super helpful today, but when NDK r21 is the oldest NDK anyone cares\nabout, they\u0027ll be able to stop worrying about this specific header as\nlong as they\u0027ve included _something_.\n\nTest: builds\nChange-Id: Ia5bc42f89b7025d8e3963e4fd590f0e3723157be\n"
    },
    {
      "commit": "a960142fe3bbfe2777c9175ccc398994f9ced8fa",
      "tree": "c593a3bef9d0d6bffafbc247d47bb69020c6fbb6",
      "parents": [
        "c6c17ac1e8c7072d6744a6476f4cedb95be8d2ea"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Aug 12 13:34:03 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Aug 12 13:34:03 2019 -0700"
      },
      "message": "Fix timespec.h documentation\n\nThere are 1,000,000,000 nanoseconds in a second.\n\nTest: n/a\nChange-Id: I8ce622ce3c60d7d5b06a056cfd0e6bea976b5aab\n"
    },
    {
      "commit": "c6c17ac1e8c7072d6744a6476f4cedb95be8d2ea",
      "tree": "82aeaa842125c5a7db667203ce9304e9a98afe14",
      "parents": [
        "639ad55176c78bfd70c3786a92a05dd3d2299953",
        "76351e3e3fbbd386c059251dbc6b1081a8f77088"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Fri Aug 09 11:29:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 09 11:29:36 2019 +0000"
      },
      "message": "Merge \"Revert \"fdsan: make fatal by default.\"\""
    },
    {
      "commit": "76351e3e3fbbd386c059251dbc6b1081a8f77088",
      "tree": "e0d113ebe7e518c6edb6b09196b76ae26340f0c3",
      "parents": [
        "66b5e3ca1941a118bbb8ea41bfe98f9725ee8d5d"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Fri Aug 09 11:15:40 2019 +0000"
      },
      "committer": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Fri Aug 09 11:18:39 2019 +0000"
      },
      "message": "Revert \"fdsan: make fatal by default.\"\n\nThis reverts commit 66b5e3ca1941a118bbb8ea41bfe98f9725ee8d5d.\n\nReason for revert: Causes installd_dexopt_test to fail. Presumably there is an existing issue which this change is turning into a hard fail, so that needs to be fixed before this can be rolled forwards. See b/139092341.\n\nBug: 139092341\nBug: 137788030\nChange-Id: I1beccddff64c86541bc003b9b009f4046ec9cbf1\n"
    },
    {
      "commit": "592b5f52fd5f027817516b4d0945c2b4537518e4",
      "tree": "cef876a1e3eeed52d663847c89e4d6e28af2b83d",
      "parents": [
        "a08626af27eb685a3407fca51eb751b955503a57",
        "66b5e3ca1941a118bbb8ea41bfe98f9725ee8d5d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Aug 07 19:53:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 07 19:53:40 2019 +0000"
      },
      "message": "Merge \"fdsan: make fatal by default.\""
    },
    {
      "commit": "66b5e3ca1941a118bbb8ea41bfe98f9725ee8d5d",
      "tree": "240146cb784a44baf8f06e08628c4e5689b10871",
      "parents": [
        "c2a722f5d77911afd199f452b03d9c15fbe645f8"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 06 19:23:45 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Aug 07 19:53:14 2019 +0000"
      },
      "message": "fdsan: make fatal by default.\n\nMake fdsan fatal by default on native processes, and Java processes that\ntarget R or later.\n\nBug: http://b/137788030\nTest: manual\nChange-Id: I5900efc606fc0d47b69223574ad7dca89afe4eda\n"
    },
    {
      "commit": "3d24d2b0883ea828443fd7c36d1b262410618aca",
      "tree": "90ddca40aa1d86f1c182462d5b3386a4375dcc3f",
      "parents": [
        "a5c9c7c56542b6471575148b8a3654078b180940"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 13:53:01 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 16:31:08 2019 -0700"
      },
      "message": "Add memfd_create(2) and mlock2(2).\n\nThese are old enough now that the latest devices will have kernels that\nsupport them.\n\nAlso add basic doc comments to \u003csys/mman.h\u003e.\n\nTest: treehugger\nChange-Id: I1b5ff5db0b6270f5c374287cac1d6a751a0259f5\n"
    },
    {
      "commit": "05b675e8bfec6e33138fd2e1b2e0e16afe745b37",
      "tree": "2de2c98f748581531eaa6b0bb92adbe30f891f36",
      "parents": [
        "c2a722f5d77911afd199f452b03d9c15fbe645f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 13:01:06 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 09:09:59 2019 -0700"
      },
      "message": "Add renameat2.\n\nBug: http://b/127675384\nTest: new tests\nChange-Id: Ia2e3d5679180391ca98e62fa429fa11cbf167507\n"
    },
    {
      "commit": "6d601458de0b6485743bc23732f200d91b999537",
      "tree": "20780394ee652a73c1e793a267b115af00cdf554",
      "parents": [
        "c16468b66178fd1e2ea9469298db05f5bf43b20b"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 30 16:30:46 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 30 16:30:46 2019 -0700"
      },
      "message": "Renumber arm64 TLS to match GNU values\n\nThe AArch64 ELF specification originally specified these relocations:\n\n  R_AARCH64_TLS_DTPREL64          1028\n  R_AARCH64_TLS_DTPMOD64          1029\n\nHowever, the GNU toolchain implemented them as:\n\n  R_AARCH64_TLS_DTPMOD64          1028\n  R_AARCH64_TLS_DTPREL64          1029\n\nThe AArch64 ELF specification has been updated to replace the relocations\nwith R_AARCH64_TLS_IMPDEF1 and with R_AARCH64_TLS_IMPDEF2, where each\nimplementation can choose which interpretation it implements, but with a\nsuggestion to follow the GNU behavior.\n\nAlso: remove the 64 suffixes from the TLS relocations. The newest version\nof the AArch64 ELF specification (version f) also omits the suffixes, as\ndo the glibc headers.\n\nBug: http://b/123385182\nBug: https://bugs.llvm.org/show_bug.cgi?id\u003d40507\nTest: build device, it boots\nChange-Id: Ie98b7624752982973f0ac969d646454a86784cab\n"
    },
    {
      "commit": "6883b0807b46074f6fe231df9f2d5d597f83d2bb",
      "tree": "cfcbd3b6164bc44efcdbf75b0fa38081f544341e",
      "parents": [
        "6b2532e19a76e9b809d2e52e677b1f2004159443"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Mon Jul 22 13:54:32 2019 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 23 16:38:00 2019 +0100"
      },
      "message": "Reserve signal for java heap dumps.\n\nWe will put instrumentation in ART to write out Java heap memory\ninformation on receipt of this signal.\n\nBug: 136210868\nTest: Flash blueline-userdebug and boot\n\nChange-Id: I63173a4051c46b8569faaf3064e1db1dbd0ea3fe\n"
    },
    {
      "commit": "76e2b15ad42bba62b8f9ac98885e5465f866de11",
      "tree": "2dc22703a65099f5a48a18e2d342cda5b89f1f74",
      "parents": [
        "9cf76012aa5edc11050920ab1b65817c1be1a112"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 18 13:15:47 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 18 13:57:39 2019 -0700"
      },
      "message": "Change stdatomic.h check from defined(_USING_LIBCXX) to __has_include(\u003catomic\u003e)\n\nThe previous check was causing some problems with platform builds\nusing the NDK.  The new check is more accurate.\n\nMove the C definitions from stdatomic.h to bits/stdatomic.h since\nwith the new check, we no longer can use the #undef trick to test\nthem.\n\nTest: build platform NDK with stdatomic.h in pthread.h header\nTest: stdatomic bionic-unit-tests\nChange-Id: Ia0bc3cc8344f2ba4e6e55a52248fb6efee799d1d\n"
    },
    {
      "commit": "69010802d037dbc10377416bd9cc696fa34b9384",
      "tree": "cfe3d6b0d956daf3e68ee542bb8d855604d433c7",
      "parents": [
        "c80af7f146df928dadee254467d6f0fc4401585f"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue May 07 20:33:05 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Jul 15 09:06:19 2019 -0700"
      },
      "message": "Implement new clock wait functions\n\npthread_cond_clockwait\npthread_mutex_clocklock\npthread_rwlock_clockrdlock\npthread_rwlock_clockwrlock\nsem_clockwait\n\nBug: 35756266\nTest: new unit tests\nChange-Id: I71bd25eeec6476134b368d5bdf2f729d0bba595e\n"
    },
    {
      "commit": "aeddbcfb2cbd118b5f97c0e586bcf19862ad5247",
      "tree": "3d6892bde9527578ed8cd3a6eabb539ffed7dd4b",
      "parents": [
        "7b85fb0d393c3119501779176b532b37182b0584"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 08 12:45:46 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 08 13:54:11 2019 -0700"
      },
      "message": "Update to kernel headers v5.2.\n\nTest: Booted a taimen, ran unit bionic unit tests.\nChange-Id: I3522c59793bbcef98ea515996a481d92f14b8816\n"
    },
    {
      "commit": "261b7f4867f623f3f31609e7574411df43c409e2",
      "tree": "8eeaa7fbbcf467c6bf7f5ce4e595faeb54946beb",
      "parents": [
        "849c0b9f51b65da9f3ac7a3222da9ae00893acfd"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 10 16:32:07 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 20 13:05:23 2019 -0700"
      },
      "message": "fortify: replace bzero/bcmp defines\n\n__builtin_*_chk will emit warnings when things are trivially broken.\nEmitting errors instead is probably better (and we can be a bit smarter\nabout how we emit code for trivially safe cases.)\n\nBug: 131861088\nTest: checkbuild + bionic-unit-tests on blueline\nChange-Id: I33957ad419922d0760304758ecb9bc8ad33e0b64\n"
    },
    {
      "commit": "849c0b9f51b65da9f3ac7a3222da9ae00893acfd",
      "tree": "1b118a1406ebeddc7786d35a4f06ebfa5b38b42e",
      "parents": [
        "74519e7aa58a19c0ed352b660f2e732148ae2f8a"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 10 16:22:09 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jun 13 23:29:37 2019 -0700"
      },
      "message": "fortify: add __mempcpy_chk\n\nBug: 131861088\nTest: mma + bionic-unit-tests on blueline\nChange-Id: I02f8f87d5db0ba5fecec410da32f6ffa2c98ef57\n"
    }
  ],
  "next": "74519e7aa58a19c0ed352b660f2e732148ae2f8a"
}
