)]}'
{
  "log": [
    {
      "commit": "4d215aad85cd9cba3e815eafb8c56eb5218eafb1",
      "tree": "9f987f65dfaa1dd321541189ea63c23b70c70cbc",
      "parents": [
        "ab9dc08bdd60d3709e1bce555625d923b32812be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 15:54:56 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 16:26:17 2017 -0700"
      },
      "message": "Add POSIX fexecve.\n\nI\u0027m skeptical about the usefulness of this, but it\u0027s in POSIX, it\u0027s\nin glibc (but not iOS), and it is used in some internal source (test\nrunners and container code).\n\nBug: N/A\nTest: ran tests\nChange-Id: I92c5398f2a679b21a33fba92bc8e67e3ae2eb76f\n"
    },
    {
      "commit": "dff08ced5685a0d1adb0ef875a15caca99556e1e",
      "tree": "9b84626d5a3f8dec14c36ad7a42221b0e11a6f5a",
      "parents": [
        "bf886f621b7c5fb4f690fe182f42640410a32d5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 16 09:58:45 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 17 09:14:05 2017 -0700"
      },
      "message": "Add pthread_setschedprio.\n\nBug: http://b/26204555\nTest: ran tests\nChange-Id: Ic34062b9b6036a1ce2642a069514bab48a893338\n"
    },
    {
      "commit": "5033918092f27179b0c2bbe3babceaed509d4935",
      "tree": "77f5a0f1eb5fec80dc7bc6a297eed66af83713b9",
      "parents": [
        "a27bfd4131441a24fcfe6b5b3cf1cf9469be6719"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 13 17:52:01 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 15 10:37:51 2017 -0700"
      },
      "message": "Complete \u003cnetdb.h\u003e.\n\nAdd all the missing \u003cnetdb.h\u003e functions.\n\nAlso fix getservbyport to handle a null protocol correctly.\n\nAlso fix getservbyname/getservbyport to not interfere with getservent.\n\nAlso fix endservent to reset getservent iteration.\n\nAlso reduce unnecessary differences from upstream NetBSD sethostent.c.\n\nThe servent implementation is still horrific, and we should\nprobably support protoent too so that debugging tools can use\ngetprotobyname/getprotobynumber.\n\nBug: N/A\nTest: ran tests\nChange-Id: I639108c46df0a768af297cf3bbce857cb1bef9d9\n"
    },
    {
      "commit": "ddd6436df2adef2e195cf45634750a31c3e03bd1",
      "tree": "ae58a01e0582b0a5b19f7545b048e56756993052",
      "parents": [
        "01bb7bf6fb6b5b43c4b1ff00be79b64f01015691",
        "d4ca231ae2891e5c9eccb6e9a2e6af7fabcfc2a5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 12 22:23:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 22:23:58 2017 +0000"
      },
      "message": "Merge \"Unified sysroot: kill arch-specific include dirs.\""
    },
    {
      "commit": "01bb7bf6fb6b5b43c4b1ff00be79b64f01015691",
      "tree": "3142e44a0c79f3c15b1cb2286051ffec9be34f8b",
      "parents": [
        "b49ac81c8e7e4e0c6e931f97551236792e69d2be",
        "14e3ff9f09fdd52db43628ccd6f39a6d3fb41740"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 12 21:02:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 21:02:54 2017 +0000"
      },
      "message": "Merge \"Implement \u003cspawn.h\u003e.\""
    },
    {
      "commit": "d4ca231ae2891e5c9eccb6e9a2e6af7fabcfc2a5",
      "tree": "4ffbf1b6c0d0acb3df88b1ce02d574eeaead3f0a",
      "parents": [
        "36f7b8b7891f0af56eb61e7d32cc8cedb5ded8de"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 11 22:27:45 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 12 13:19:51 2017 -0700"
      },
      "message": "Unified sysroot: kill arch-specific include dirs.\n\n\u003cmachine/asm.h\u003e was internal use only.\n\n\u003cmachine/fenv.h\u003e is quite large, but can live in \u003cbits/...\u003e.\n\n\u003cmachine/regdef.h\u003e is trivially replaced by saying $x instead of x in\nour assembler.\n\n\u003cmachine/setjmp.h\u003e is trivially inlined into \u003csetjmp.h\u003e.\n\n\u003csgidefs.h\u003e is unused.\n\nBug: N/A\nTest: builds\nChange-Id: Id05dbab43a2f9537486efb8f27a5ef167b055815\n"
    },
    {
      "commit": "14e3ff9f09fdd52db43628ccd6f39a6d3fb41740",
      "tree": "8ed0ba1d0744ac95265e2ea634b6e1ff8d72d88c",
      "parents": [
        "e387c2f08841ac0f6578e903ab21b54d01f3266e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 06 16:58:36 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 11 14:57:49 2017 -0700"
      },
      "message": "Implement \u003cspawn.h\u003e.\n\nAs described here:\n\n  http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html\n\nAnd here:\n\n  http://man7.org/linux/man-pages/man3/posix_spawn.3.html\n\nBug: N/A (but mentioned in my inbox since 2013)\nTest: ran tests\nChange-Id: I0b27b2919b660779e3bd8a25fb429527c16dc621\n"
    },
    {
      "commit": "8c2323c697289508e7c9ec15ac802afb0ab9a046",
      "tree": "3999b3d031db052787c2259104187b34c57f9f37",
      "parents": [
        "3dacc4764220fc5e7969e4281f5cfca8f2082241"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 05 16:39:33 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Oct 06 16:01:36 2017 -0700"
      },
      "message": "Fix \"Add a legacy inline for mmap64\".\n\nAutosubmit fired before the CL was actually ready (forgot to hit \"y\"\non the repo upload).\n\nTest: make checkbuild\nTest: copied into the NDK and ran mmap64_fob64 test.\nBug: lots\nChange-Id: I8c0400a703f319e8e230f7ba9178009ed7c88be0\n"
    },
    {
      "commit": "3dacc4764220fc5e7969e4281f5cfca8f2082241",
      "tree": "59cf0da278f1f1c0bdbdd9f8158342ab7359ba9b",
      "parents": [
        "e387c2f08841ac0f6578e903ab21b54d01f3266e",
        "a613d0df5c682617380728a7d151483de05a4f92"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 06 22:20:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 06 22:20:54 2017 +0000"
      },
      "message": "Merge \"Add a legacy inline for mmap64.\""
    },
    {
      "commit": "a613d0df5c682617380728a7d151483de05a4f92",
      "tree": "5a73110db954e5fc92116ad0930ed83495607729",
      "parents": [
        "3e8584d4a7d617289e8a954711ba895415d781c4"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 05 16:39:33 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 05 23:41:47 2017 -0700"
      },
      "message": "Add a legacy inline for mmap64.\n\nWhile this was never an inline, this function alone has caused most of\nthe bug reports related to _FILE_OFFSET_BITS\u003d64. Providing an inline\nfor it should allow a lot more code to build with _FILE_OFFSET_BITS\u003d64\nwhen targeting pre-L.\n\nTest: make checkbuild\nTest: built trivial cc_binary for LP32 against API 14 with\n      _FILE_OFFSET_BITS\u003d64 set\nBug: lots\nChange-Id: I8479d34af4da358c11423bee43d45b59e9d4143e\n"
    },
    {
      "commit": "aaf83e8051abf9a68e9deee589b18f0ecdf1b266",
      "tree": "f3b56813ba81ae68a68e28f73d4de933be22a455",
      "parents": [
        "0a451314b0bb3af51e34659ade322be58c434127"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 15:26:33 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 16:18:10 2017 -0700"
      },
      "message": "More POSIX limits cleanup.\n\nhttp://man7.org/linux/man-pages/man7/posixoptions.7.html is a very useful\nquick reference to what these are supposed to mean.\n\nBug: http://b/32776472\nTest: ran tests\nChange-Id: Icea6812d6075e663885844d7424aa6cf73d6284a\n"
    },
    {
      "commit": "3a8f75d8b052611c08ef17ecf625b8021f4e0229",
      "tree": "a41055f8209868da748f5118a24df528d1f07a9e",
      "parents": [
        "42f3bd0ffc3f0f0e3191c679ea4276f7f1882a00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 10:33:18 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 05 10:33:18 2017 -0700"
      },
      "message": "POSIX clock cleanup.\n\nThe newest of these clocks was added in Linux 2.6.12, so no need for runtime\nchecks.\n\nAdd CTS tests that we can actually use the various clocks.\n\nBug: http://b/67458266\nTest: ran tests\nChange-Id: I3cfd7982043d6f8d4ebdc2b29e8722334f443ce5\n"
    },
    {
      "commit": "a0c7ec8080a7718c5711d9de405e039258d433bf",
      "tree": "44acbb52602f72fc7b8ff0ab4243586e1fe74849",
      "parents": [
        "95f90784eaa0b377d3c6d9101c84e8817cbea494"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 07 11:19:17 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 02 08:14:56 2017 -0700"
      },
      "message": "Add O MR1 define\n\nBug: 64394076\nTest: none\nChange-Id: Ice3991c626dd2cce93c9a571ba529fa5b0129492\n"
    },
    {
      "commit": "b3639adf9ce41f520f7a64a5016e6ffc41ccd009",
      "tree": "c44e7963fa15992bcc5603c9608ec1359c672c87",
      "parents": [
        "bd2754177fc26b255b64af0b50c32f984a274cf9",
        "8465e968a8a92c77d57360837a9e725972a745e6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 29 15:39:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 29 15:39:29 2017 +0000"
      },
      "message": "Merge changes I76dde1e3,I54fec461\n\n* changes:\n  Add \u003csys/random.h\u003e.\n  Run other maintenance scripts as part of the preupload hooks.\n"
    },
    {
      "commit": "8465e968a8a92c77d57360837a9e725972a745e6",
      "tree": "f8bd05e55680224a407ac55afaef58b668868b05",
      "parents": [
        "96510935697c2934427f0c14d0b153244e8cfb2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 27 16:33:35 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 29 05:31:35 2017 +0000"
      },
      "message": "Add \u003csys/random.h\u003e.\n\niOS 10 has \u003csys/random.h\u003e with getentropy, glibc \u003e\u003d 2.25 has\n\u003csys/random.h\u003e with getentropy and getrandom. (glibc also pollutes\n\u003cunistd.h\u003e, but that seems like a bad idea.)\n\nAlso, all supported devices now have kernels with the getrandom system\ncall.\n\nWe\u0027ve had these available internally for a while, but it seems like the\ntime is ripe to expose them.\n\nBug: http://b/67014255\nTest: ran tests\nChange-Id: I76dde1e3a2d0bc82777eea437ac193f96964f138\n"
    },
    {
      "commit": "f1c568d1eac6d2baba62af35e5b9856fb7e98319",
      "tree": "a7840d0a41465e4bc73e766bfc212bee12c6eaa0",
      "parents": [
        "2e01f39c31e042482fbe10df79d8b2837ae79239"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 26 17:09:07 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 26 18:46:09 2017 -0700"
      },
      "message": "Add \u003cglob.h\u003e.\n\nThis is the FreeBSD implementation, plus some tests. The FreeBSD\nimplementation includes the GNU extensions and seems to be what\niOS is using too, which should provide bug compatibility for app\ndevelopers.\n\nThe code unfortunately uses a lot of stack, and uses FreeBSD locale\nimplementation that we don\u0027t have, but it does seem better maintained\nthan the other BSDs.\n\nBug: http://b/29251134\nTest: ran tests\nChange-Id: Ie477b45e42a6df1319b25712098519d2b33adf67\n"
    },
    {
      "commit": "0d9301e1562b3804ed86c0afe3fa2b56eb6ce573",
      "tree": "77885ccabcc3a3d9df15043937a9a2c86d3333d2",
      "parents": [
        "cce6ada00ad055ac52791526e44b1f223bec8ce4",
        "2f94a29d9cf9574e38e87e7c8f760dd7277ab49a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 19 18:34:52 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 18:34:52 2017 +0000"
      },
      "message": "Merge \"Rename _Exit in a way that works with libandroid_support.\""
    },
    {
      "commit": "2f94a29d9cf9574e38e87e7c8f760dd7277ab49a",
      "tree": "0890e98315da47a921bbea2c299deb2fe5239e63",
      "parents": [
        "0c9ea17e0c31540cb2caab7ec2149ae40670b2d2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 18 14:40:01 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 19 18:34:40 2017 +0000"
      },
      "message": "Rename _Exit in a way that works with libandroid_support.\n\nBug: N/A\nTest: builds\nChange-Id: I2aeaf9bafe7d51e91b67f22d68f4e52191df062b\n"
    },
    {
      "commit": "d6541c2a97faa1f6401627f4661175b72b53839a",
      "tree": "d12893c2d831ad7a2f951f28bb2da89141933b75",
      "parents": [
        "0c9ea17e0c31540cb2caab7ec2149ae40670b2d2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 18 16:22:32 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 18 16:22:32 2017 -0700"
      },
      "message": "Make \u003cmath.h\u003e renames compatible with GCC.\n\nGCC is fussy about the order in which attributes and renames occur.\n\nBug: N/A\nTest: builds\nChange-Id: Icee5ec00aa4626ddad0d89d2d7cee5ec6891c368\n"
    },
    {
      "commit": "50cda38f1ddfb0216e986f60cdc877fb9c55ebba",
      "tree": "fb702878229b8b64a5386ece09d32653b7c6a3e4",
      "parents": [
        "3b64f8ecb3db49574cc5b7c6030be98c159be4d4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 14 15:30:08 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 14 16:10:43 2017 -0700"
      },
      "message": "Use __RENAME for long double functions.\n\nWe can cut a lot of stuff out of the NDK\u0027s libandroid_support with this,\nand reduce unnecessary relocations for all LP32 code. LP64 code should\nbe unaffected.\n\nBug: https://issuetracker.google.com/64450768\nBug: https://github.com/android-ndk/ndk/issues/507\nTest: ran tests, plus manual readelf on the _test.o files\nChange-Id: I3de6015921195304ea9c829ef31665cd34664066\n"
    },
    {
      "commit": "40756d61ac05c71a1a00aa686bf5105bda420661",
      "tree": "93b913a53b77e2201df48b2dc4e535027b1e9807",
      "parents": [
        "4c9d528a25a5b605643a13da24afb42d2d5d840c",
        "4c0803d16504079f58c85f88f376c0d3842004c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 11 20:43:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 20:43:36 2017 +0000"
      },
      "message": "Merge \"Cast __builtin_swap64 to uint64_t.\""
    },
    {
      "commit": "4c0803d16504079f58c85f88f376c0d3842004c5",
      "tree": "82867b5f77ff846ec863f388c908898b8c0577ee",
      "parents": [
        "60103831eb96217983e9e98fc4ec88ae9f48a7c6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 08 16:52:59 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 11 13:21:35 2017 -0700"
      },
      "message": "Cast __builtin_swap64 to uint64_t.\n\nstrace 4.19 causes clang to emit a questionable warning:\n\n  external/strace/nlattr.c:254:35: error: format specifies type \u0027unsigned long\u0027 but the argument has type \u0027unsigned long long\u0027 [-Werror,-Wformat]\n                tprintf(\"htobe64(%\" PRIu64 \")\", be64toh(num));\n                                 ~~~            ^~~~~~~~~~~~\n  bionic/libc/include/sys/endian.h:100:20: note: expanded from macro \u0027be64toh\u0027\n  #define be64toh(x) htobe64(x)\n                     ^~~~~~~~~~\n  bionic/libc/include/sys/endian.h:80:17: note: expanded from macro \u0027htobe64\u0027\n  #define htobe64 __swap64\n                  ^\n  bionic/libc/include/sys/endian.h:48:18: note: expanded from macro \u0027__swap64\u0027\n  #define __swap64 __builtin_bswap64\n                   ^\n\nWhat\u0027s happened here is:\n\n* be64toh is __builtin_bswap64\n\n* PRIu64 is \"lu\"\n\n* __builtin_bswap64 is internally declared a \"ULLiULLi\"\n\nAll of which leads to the `unsigned long` !\u003d `unsigned long long` complaint.\n\nIt seems like __builtin_bswap64 should be ULiULi on 64-bit architectures,\nwhere `long` rather than `long long` is the natural way to refer to 64-bit\ntypes, as evidenced by the \"lu\" for PRIu64.\n\nAs long as clang behaves like this, though, we can work around it with a cast.\n\nAlso clean up the other casts in the file, be more consistent about whether\nthese function-like macros are defined with an argument, and remove an\nincorrect comment.\n\nBug: http://b/65495954\nTest: ran tests, built strace 4.19 without warnings\nChange-Id: I8e06d4bf71e95d62f556eab8661033e04d487e0d\n"
    },
    {
      "commit": "5702c6ff454a8a9695fae64597d7692b06fc27b5",
      "tree": "198c64982038daff5603e6c6813089751f62328f",
      "parents": [
        "7f9f1b6f918bec90354f70f2eb3dcf87d85df918"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 31 17:27:05 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 31 17:38:51 2017 -0700"
      },
      "message": "Finish \u003csearch.h\u003e.\n\nI\u0027m unable to find a bug, but we\u0027ve had requests for this internally\nonce or twice (though I pointed those folks at the STL), and there\u0027s\ncode we build for the host or in our bootloaders that would use this,\nand there\u0027s reasonable-looking FreeBSD implementation ready and waiting.\n\nBug: N/A\nTest: ran tests\nChange-Id: I6ddee4b71bea4c22ed015debd31d3eaac4fcdd35\n"
    },
    {
      "commit": "8468a1be012f485c4f6579204704b52f5409cdc2",
      "tree": "867433cc93ba2b446abb475d05908f1af847affc",
      "parents": [
        "6a4c0eff12bef1d0c77b7fa231b090b4bc3445b6",
        "f11aa95ee7f3c7c3a8538deefd084cdab351c01a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 26 00:02:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 26 00:02:50 2017 +0000"
      },
      "message": "Merge \"Pretend the \u003cfts.h\u003e functions didn\u0027t appear until 21.\""
    },
    {
      "commit": "f11aa95ee7f3c7c3a8538deefd084cdab351c01a",
      "tree": "e19fa29f07c507e04a8484ffb60a60401b2d1111",
      "parents": [
        "d615a06068f9d0dd01df840122221d183ba1098e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 25 15:18:33 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 25 15:18:33 2017 -0700"
      },
      "message": "Pretend the \u003cfts.h\u003e functions didn\u0027t appear until 21.\n\nBecause there was an accidental ABI breakage in 21, and we can\u0027t fix\nthe past. It seems more useful to refuse to build code that won\u0027t work\non any current or future device.\n\nBug: https://issuetracker.google.com/37051826\nTest: builds\nChange-Id: I4b5c30f899e2c7307642e2fb20e43a3ca14ae7fe\n"
    },
    {
      "commit": "bda6f3b6af8788b34f435632ae0738c35f49b2ec",
      "tree": "3060628283a10b50ce4bec56e04debbd02d00e17",
      "parents": [
        "d615a06068f9d0dd01df840122221d183ba1098e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 25 15:07:05 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 25 15:07:05 2017 -0700"
      },
      "message": "Improve names for function arguments in \u003cunistd.h\u003e for Studio.\n\nSpotted while adding syncfs(2). I\u0027d previously seen that this file already\nhad names, but apparently not inspected them. A couple were missing, a\ncouple (pipe/pipe2) could usefully have a more specific type, and many\nhadruntogethercstylenames.\n\nBug: http://b/64613623\nTest: builds\nChange-Id: I6b4a131bf51bf04825317ec481bc55e87c88c2b3\n"
    },
    {
      "commit": "a648733cb7398810df9a35528cc6e874edc57b06",
      "tree": "90ff33e6b479b5ccb20b1a8bb0007dacde75bc8d",
      "parents": [
        "571c88823636e3c6f894e806ea7c4dc8131a1ae4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 15 23:16:48 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 25 08:47:41 2017 -0700"
      },
      "message": "Implement \u003ciconv.h\u003e.\n\nBug: http://b/32978596\nTest: ran tests\nChange-Id: I56b6ae3d9c5a3a56d2b4afba33fb8f9e964bf7b9\n"
    },
    {
      "commit": "896362eb0e82bcde71c137c925eae9e0882acb91",
      "tree": "3c4b2fb6e1626a2b377c93bd925f4f0fb4e02a9c",
      "parents": [
        "96c577c48284c376ec065f2b3a2d2987a7eeff5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 24 16:31:49 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 24 16:31:49 2017 -0700"
      },
      "message": "Add syncfs(2).\n\nGMM calls this system call directly at the moment. That\u0027s silly.\n\nBug: http://b/36405699\nTest: ran tests\nChange-Id: I1e14c0e5ce0bc2aa888d884845ac30dc20f13cd5\n"
    },
    {
      "commit": "df9a489b2bfcc224943a12b447e9cf00db81d9e0",
      "tree": "4ab72c37dc663296fedc579b194646b89d8d931c",
      "parents": [
        "57e07a150e536f79d78f8203b0c807087b5c854b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 23 14:34:03 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Aug 23 14:34:40 2017 -0700"
      },
      "message": "Add more const-correct C++ overloads.\n\nlibc++ actually provides overloads for all the standard C library stuff,\nso we just need to handle the POSIX and GNU extensions, of which there\nare just two more: memrchr and strcasestr.\n\nBug: http://b/22768375\nTest: builds\nChange-Id: Ie9ed1fbcc794e14a0c9bba13b5307ad677949613\n"
    },
    {
      "commit": "9b1ca569db3e698c3a901720ae6989c876a9e6ee",
      "tree": "586e7581ad2e2296aa8b24cb4c5bcf598255bfbb",
      "parents": [
        "611d0de62fc7d23dcdd120c2d3698acc85351f9e"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Aug 21 12:17:19 2017 -0700"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Aug 22 10:17:28 2017 -0700"
      },
      "message": "libc: Add support to allow library calls to find appropriate shell executable for a process\n\nLibrary calls like system() and popen() invoke the shell executable\npointed to by \u0027_PATH_BSHELL\u0027 in order to run the command passed into the\nfunction. The _PATH_BSHELL points to /system/bin/sh by default and thus\nbreaks any vendor process trying to use system() / popen(), as they are\ndenied access to system shell by selinux.\n\nThis CL make necessary changes, so the implmentations of system() and popen()\ncan use the appropriate shell (e.g. /vendor/bin/sh for processes running\nout of /vendor partition). Also, changes the implementation of system()\nand popen().\n\nBug: 64832610\nTest: Manual, Using a test program running from /system/bin and\n      /vendor/bin to ensure correct shell is being used.\n\nChange-Id: Ie7168d69decb1ae98284446ae7db34dec930dc33\nMerged-In: Ie7168d69decb1ae98284446ae7db34dec930dc33\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n(cherry picked from commit aa3e32422cc7089b9b15976f2651a58840d95e4f)\n"
    },
    {
      "commit": "611d0de62fc7d23dcdd120c2d3698acc85351f9e",
      "tree": "924929fb0dfc6dbe9994524689a2ead1265df6d8",
      "parents": [
        "f3b92f14857b3947e7f7d1a3906da72b12e8c070",
        "ffde533ed9fb7ecc023cae1dd123a493d2cba859"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 22 16:14:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 22 16:14:26 2017 +0000"
      },
      "message": "Merge \"Name function arguments in libc headers for Studio.\""
    },
    {
      "commit": "ffde533ed9fb7ecc023cae1dd123a493d2cba859",
      "tree": "da6bd771d636488585359f956beb79600704ff5e",
      "parents": [
        "096fa4497c50cffdb56f06d7038adbeb3c1254d6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 21 14:51:59 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 21 14:51:59 2017 -0700"
      },
      "message": "Name function arguments in libc headers for Studio.\n\nFinal batch of headers...\n\nBug: http://b/64613623\nTest: builds\n\nChange-Id: I86578c7c2df446b210fa1bdda3391b21f340e947\n"
    },
    {
      "commit": "f3b92f14857b3947e7f7d1a3906da72b12e8c070",
      "tree": "775516ba3028c396053182cde1b84e0fef34a337",
      "parents": [
        "7ac99d3ff6f246c928e6e6dfe4a374de1c85037f",
        "684c31a2676772ad1fa2005941dcb6f6493b7dfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Aug 19 16:42:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 19 16:42:07 2017 +0000"
      },
      "message": "Merge \"Name function arguments in libc headers for Studio.\""
    },
    {
      "commit": "7ac99d3ff6f246c928e6e6dfe4a374de1c85037f",
      "tree": "4003f1f5ccf26c1fbef3251df3aba56ad18d9758",
      "parents": [
        "cbb09bcbb16d728a0e03de0d5d33fc95d833aedf",
        "d9551db089e01d08db4198d7cef4aaecc878b9ea"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 18 22:52:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 18 22:52:27 2017 +0000"
      },
      "message": "Merge \"Disable FORTIFY on ASAN builds\""
    },
    {
      "commit": "684c31a2676772ad1fa2005941dcb6f6493b7dfc",
      "tree": "219e96cfeaeeb5f1b20b712533313501ab37b766",
      "parents": [
        "096fa4497c50cffdb56f06d7038adbeb3c1254d6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 18 15:07:41 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 18 15:07:41 2017 -0700"
      },
      "message": "Name function arguments in libc headers for Studio.\n\nThird batch of headers...\n\nBug: http://b/64613623\nTest: builds\nChange-Id: I32d8467a0bd22ba94d76476397f4f7dc51003886\n"
    },
    {
      "commit": "d9551db089e01d08db4198d7cef4aaecc878b9ea",
      "tree": "a8cdee1eb37db3533366f8bff3bfffe010e0a9df",
      "parents": [
        "cf3b0c183d9a6910db6384e6f8095c414041ea0c"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Aug 17 18:51:02 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Aug 18 13:33:45 2017 -0700"
      },
      "message": "Disable FORTIFY on ASAN builds\n\nFORTIFY\u0027s *_chk functions mess with ASAN\u0027s library function\ninterceptors, which can apparently result in false-positives.\n\nSince adding even more complexity to every run-time check condition in\nFORTIFY doesn\u0027t seem like a great idea, and the majority of our builds\nwill still use FORTIFY anyway, turning FORTIFY off here seems\nreasonable.\n\nBug: 63104159\nTest: checkbuild on internal master + CtsBionicTestCases. No new\nfailures.\n\nChange-Id: Id32e551e28ee70a9815ad140c3253b86f03de63f\n"
    },
    {
      "commit": "ff26a16c1de7be696719e9001f0707b7c55b52cf",
      "tree": "1f2667df4a1ed2dd79cb53a6231cb88d3d9ade13",
      "parents": [
        "9af9120091ceb96641d7c6c645fabad96db4bc0d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 17 22:34:21 2017 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 18 00:00:38 2017 +0000"
      },
      "message": "Re-submit \"Name function arguments in libc headers for Studio.\"\n\nThis reverts commit 9af9120091ceb96641d7c6c645fabad96db4bc0d (a revert\nof 079bff4fa52b0c3c76057451cc9cdecf1827fce0), now the versioner bug is\nfixed.\n\nBug: http://b/64613623 # header bug\nBug: http://b/64802958 # versioner bug\nChange-Id: I1cb9d7832d4b3aecdc57a9285e2291443e59d02d\n"
    },
    {
      "commit": "9af9120091ceb96641d7c6c645fabad96db4bc0d",
      "tree": "0ac35e33169ae9b07c075a3c623148d2e974d14f",
      "parents": [
        "079bff4fa52b0c3c76057451cc9cdecf1827fce0"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 17 18:29:54 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 17 18:29:54 2017 +0000"
      },
      "message": "Revert \"Name function arguments in libc headers for Studio.\"\n\nThis reverts commit 079bff4fa52b0c3c76057451cc9cdecf1827fce0.\n\nBroke builds with SANITIZE_HOST\u003daddress with an asan failure in versioner.\n\nChange-Id: I22b113fd5405589d1a25e5e137c450aaba1ade5f\n"
    },
    {
      "commit": "079bff4fa52b0c3c76057451cc9cdecf1827fce0",
      "tree": "1f2667df4a1ed2dd79cb53a6231cb88d3d9ade13",
      "parents": [
        "67e7bf137e00a6c9ef79396e40be6b1705a2758c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 16 16:30:54 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 16 16:30:54 2017 -0700"
      },
      "message": "Name function arguments in libc headers for Studio.\n\nSecond batch of headers...\n\nBug: http://b/64613623\nTest: builds\nChange-Id: I8eef043dbf32afee8ff814e9d005f46aee8fa21f\n"
    },
    {
      "commit": "67e7bf137e00a6c9ef79396e40be6b1705a2758c",
      "tree": "0ac35e33169ae9b07c075a3c623148d2e974d14f",
      "parents": [
        "82f28565ce8f6f45ac0b269819d8242a94dad637",
        "1de2e358caf9a22359e38ab8573cc3e5dcc1602f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 16 20:43:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 16 20:43:54 2017 +0000"
      },
      "message": "Merge \"Enable FORTIFY in unoptimized builds\""
    },
    {
      "commit": "1de2e358caf9a22359e38ab8573cc3e5dcc1602f",
      "tree": "4098a9c70235e18fc187e4972c91392a98fdc548",
      "parents": [
        "30438e4cea83628bcacbedff37a35398bb8b40e7"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 15 11:03:07 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 15 21:20:09 2017 -0700"
      },
      "message": "Enable FORTIFY in unoptimized builds\n\nGCC\u0027s FORTIFY required optimizations to be enabled in order to function\nproperly. Clang\u0027s FORTIFY doesn\u0027t have this limitation, so it seems\npointless to keep it disabled due to a GCC-specific limitation.\n\nBug: 12231437\nTest: Checkbuild on bullhead internal master + CtsBionicTestCases. No\nnew failures.\n\nChange-Id: I74aa35f9d3f3d2a6b11a7adfe72a787e3d7f7f36\n"
    },
    {
      "commit": "3f7e65e66e63113d2556df517647c812d21f8817",
      "tree": "96b24b4c60cdec7ddbe4a807b1ab9cc01ca9ec76",
      "parents": [
        "3ce8834e53304b66e5b0d0d56bc0efea1a172e95"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 15 14:42:31 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 15 14:42:31 2017 -0700"
      },
      "message": "Add guards for things the versioner can\u0027t catch.\n\nThe versioner doesn\u0027t handle C++ blocks yet, so these guards won\u0027t be\nadded and it will appear as though the functions are always available\nin C++, but based on API level in C.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/440\nChange-Id: I31a20fa1596d836b280ffc6d7feb863afccca6c7\n"
    },
    {
      "commit": "3ce8834e53304b66e5b0d0d56bc0efea1a172e95",
      "tree": "10164708817ee500bc04f2c19f8ddef81e0654bd",
      "parents": [
        "6beab08440cac666e9c4fd3e810237bf10295f86",
        "faa74342e3dc1fdb8832be9ad3a69c9f8fb749b9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 15 20:30:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 15 20:30:28 2017 +0000"
      },
      "message": "Merge \"Name function arguments in libc headers for Studio.\""
    },
    {
      "commit": "95bd4884b525ad7a898105863c086113556ada29",
      "tree": "81f2d25c6491285b2fa0aade7a8298aeb7b33d7a",
      "parents": [
        "30438e4cea83628bcacbedff37a35398bb8b40e7"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Aug 14 14:48:55 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Aug 14 14:48:55 2017 -0700"
      },
      "message": "libc fortify: error on realpath(NULL, foo)\n\nI\u0027ve half a mind to make this a warning instead, since this sort of\ncall isn\u0027t UB. That said:\n- if the user really wants this (I can\u0027t imagine why they would), they\n  can just put NULL in a non-const variable,\n- we\u0027re slowly moving to -Werror ~everywhere anyway, and\n- it\u0027s presumably easier to change this from an error to a warning than\n  the other way around\n\nBug: 12231437\nTest: m checkbuild on bullhead internal master. No new\nCtsBionicTestCases failures.\n\nChange-Id: Ie8bf5a3455f663686fda4a7450fb35d147fa745e\n"
    },
    {
      "commit": "faa74342e3dc1fdb8832be9ad3a69c9f8fb749b9",
      "tree": "1c7819aa00942949400abca5c21a6e31fd72dec5",
      "parents": [
        "30438e4cea83628bcacbedff37a35398bb8b40e7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 11 17:34:44 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 11 17:45:59 2017 -0700"
      },
      "message": "Name function arguments in libc headers for Studio.\n\nFirst batch of headers...\n\nBug: http://b/64613623\nTest: builds\nChange-Id: I6bc3ad79daa635456b61d03b1f43f06c433ec596\n"
    },
    {
      "commit": "daebd05739d6c29e7126a20aeeab73de530d293e",
      "tree": "5cbf14fc60e0454a46778094f374f586d355079e",
      "parents": [
        "32f719ad1ab232382107b7110e7635fefcbbf868"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Aug 10 11:06:39 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Aug 10 11:11:00 2017 +0200"
      },
      "message": "Fix pattern to account for \u0027_\u0027 prefix in syscalls\n\nBug: http://b/64549471\nTest: make\nChange-Id: I7ba856a2cad29adbb028f150aeaabb9894e84d6e\n"
    },
    {
      "commit": "0cd32c1aba4e5c018b19b51c9c7aebb903da2464",
      "tree": "6795cd83244311820178c71fd72238d5ed27fd60",
      "parents": [
        "88879d19ea9ddd79ea3ba4d0cfaeef6402320eed",
        "cd8828c3469022013ec75f4a6a0e72f995459e0a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 09 23:44:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 09 23:44:41 2017 +0000"
      },
      "message": "Merge \"Put back the _Exit rename for pre-L.\""
    },
    {
      "commit": "8aa387fbee2e741e00d34290945b67ab42bb10ec",
      "tree": "d383498f9fcd345632fcf1b02d0e5e3e19552e59",
      "parents": [
        "906dc0dd485d957e33446ee626090a639db402b6",
        "0138c46794a0fde58cf864a51ad73d77739c074d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 07 23:09:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 07 23:09:42 2017 +0000"
      },
      "message": "Merge \"Remove reference to non-existent __LP32__.\""
    },
    {
      "commit": "cd8828c3469022013ec75f4a6a0e72f995459e0a",
      "tree": "622bdba6e23a556222d6f1c11857c221a60ffab4",
      "parents": [
        "906dc0dd485d957e33446ee626090a639db402b6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 07 14:47:00 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 07 14:47:00 2017 -0700"
      },
      "message": "Put back the _Exit rename for pre-L.\n\nSomehow I accidentally removed this in\nhttps://android-review.googlesource.com/c/445150.\n\nTest: make checkbuild\nBug: None\nChange-Id: Ia6744af6c7b6dc2f149e9eab6e1f39863f96f6ca\n"
    },
    {
      "commit": "0138c46794a0fde58cf864a51ad73d77739c074d",
      "tree": "7c9dcdbac037a573ded9c2b577803b4da03938d0",
      "parents": [
        "cc3639b3eeb30cc4e994714254e8f995e77b30bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 07 09:04:08 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 07 09:04:08 2017 -0700"
      },
      "message": "Remove reference to non-existent __LP32__.\n\nSince there is no 64-bit before 21, there\u0027s no need for us to talk about\nbitness at all.\n\nBug: https://github.com/android-ndk/ndk/issues/481\nTest: builds\nChange-Id: I307466997df35d7f1d0eef7dc7cb35ac3033d25d\n"
    },
    {
      "commit": "2fdefadcee9bdcad11beb971c3e06fbf2cdf79ae",
      "tree": "dfae439c6a87ab60acb111d9f0b21e95f2c08801",
      "parents": [
        "a0ad52b953464d06eff5a5d5393af96ba3d1828f",
        "b115aefbb3a472c605e167e09d14b1a797337e77"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 20:12:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 04 20:12:18 2017 +0000"
      },
      "message": "Merge \"With O_TMPFILE, open(2) takes a mode argument.\""
    },
    {
      "commit": "a0ad52b953464d06eff5a5d5393af96ba3d1828f",
      "tree": "34c45d4063e0aec68dce465facede2db676526c7",
      "parents": [
        "cc3639b3eeb30cc4e994714254e8f995e77b30bf",
        "f51728892446f0f58b1c16f08b533e63b2935726"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 20:11:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 04 20:11:41 2017 +0000"
      },
      "message": "Merge \"Some \u003csyslog.h\u003e fixes.\""
    },
    {
      "commit": "b115aefbb3a472c605e167e09d14b1a797337e77",
      "tree": "4167aea0a211331deb64f66e3dfd6d931d20f246",
      "parents": [
        "cc3639b3eeb30cc4e994714254e8f995e77b30bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 09:34:19 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 10:20:18 2017 -0700"
      },
      "message": "With O_TMPFILE, open(2) takes a mode argument.\n\nStrictly, the mode isn\u0027t really meaningful unless you supply O_EXCL,\nbut the kernel will take it and fstat will return it even if you\nnever give the file a name.\n\nAlso warn for O_TMPFILE without a mode at compile time where possible.\n\nBug: N/A\nTest: ran tests\nChange-Id: I729b6d6e6190676fd017a1190b6200bf9abdbfd8\n"
    },
    {
      "commit": "cc3639b3eeb30cc4e994714254e8f995e77b30bf",
      "tree": "7626535032759e234997eb43f98607bf60dd6707",
      "parents": [
        "488c961ecc146a7c80488bc344f56d5f8d8371bd",
        "4e37d53f2999f683e99a5cf90d2651e2cd9924fc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 04 07:32:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 04 07:32:27 2017 +0000"
      },
      "message": "Merge \"libc fortify: warn on open() with useless mode bits\""
    },
    {
      "commit": "4e37d53f2999f683e99a5cf90d2651e2cd9924fc",
      "tree": "e5d538fe473c698c7adb467b19d4dbe299ce3184",
      "parents": [
        "26c59f708273cdc35d8948dec6429270a3405856"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Aug 03 17:11:35 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Aug 03 22:04:19 2017 -0700"
      },
      "message": "libc fortify: warn on open() with useless mode bits\n\nBug: 64132680\nTest: checkbuild on bullhead internal master; no new CtsBionicTestCases\nfail.\n\nChange-Id: I98762bbee0ecdd7b4ffc21135992f2eed320317f\n"
    },
    {
      "commit": "f51728892446f0f58b1c16f08b533e63b2935726",
      "tree": "fef83205dce37632941f6b9c11296218e7c68dbc",
      "parents": [
        "316a44f33ceb9f81975568b67b8e8deb19cce156"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 03 14:44:13 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 03 14:44:13 2017 -0700"
      },
      "message": "Some \u003csyslog.h\u003e fixes.\n\nThis whole file is bogus, but if we\u0027re going to have it, we may as well\nmake an effort. Add LOG_NFACILITIES. Also stop using octal like it\u0027s 1970,\nand so I can have some confidence that these constants are actually right.\n\nBug: N/A\nTest: built inetutils with a modified standalone toolchain\nChange-Id: Ifd6f661f87845bcc5843d68474cb836afb698058\n"
    },
    {
      "commit": "3aa9bf39cb47db345f1d4f902ae049f54caed3ae",
      "tree": "f75a4060e9f4fd72e6e48035d00c8db333434f10",
      "parents": [
        "b1b125ead1857dd0ffdd28e1ecfb3e1d1fd13882"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 03 11:11:23 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 03 11:11:23 2017 -0700"
      },
      "message": "Fix dprintf/vdprintf fallbacks for GCC.\n\nThe ordering of __attribute__ and __asm__ matters for GCC.\n\nTest: `#include \u003cstdio.h\u003e` with gcc\nBug: https://github.com/android-ndk/ndk/issues/72\nChange-Id: I20bcd7cac2f96d220746e389f0ca467dc95c37c2\n"
    },
    {
      "commit": "b1b125ead1857dd0ffdd28e1ecfb3e1d1fd13882",
      "tree": "35e7bef124f54c923ff32689476ff853d30454c5",
      "parents": [
        "c9fb66209d2ed33505bf729a2c07affae6c43a0e",
        "b6300463a829762841e3fb7126833f77f62f7100"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 03 03:18:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 03 03:18:44 2017 +0000"
      },
      "message": "Merge \"libc fortify: make string.h use diagnose_if\""
    },
    {
      "commit": "26c59f708273cdc35d8948dec6429270a3405856",
      "tree": "1978d00b92e7fcbc94299fc5c4a51b58de32b0ce",
      "parents": [
        "316a44f33ceb9f81975568b67b8e8deb19cce156",
        "2950f13eef106d021e228c0b86d32332e8840580"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 02 19:28:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 02 19:28:38 2017 +0000"
      },
      "message": "Merge \"Add some \u003csched.h\u003e tests.\""
    },
    {
      "commit": "2950f13eef106d021e228c0b86d32332e8840580",
      "tree": "bcf64de9154835836104f6aeba197344330687ae",
      "parents": [
        "aa8f766bf0ead7d87ed1084880f42aa4b2d01fbb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 23:02:48 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 02 09:01:42 2017 -0700"
      },
      "message": "Add some \u003csched.h\u003e tests.\n\nI was intending to change our behavior to match POSIX, but reality convinced\nme otherwise.\n\nAlso add missing argument names to the header file on the assumption they\u0027ll\nbe shown in Studio one day.\n\nBug: http://b/26203902\nTest: ran tests\nChange-Id: I2aaea48a88d408a32925033fc8f17448fb63252e\n"
    },
    {
      "commit": "316a44f33ceb9f81975568b67b8e8deb19cce156",
      "tree": "f9b89366b2c846f75d867a76e34da5b04cc097dc",
      "parents": [
        "5ac5a7c0839a123c2982b37b383a7691fd216e7e",
        "5ba2c21159f0bb4c0f7f1fbdbd4671f381b75816"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 02 15:00:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 02 15:00:38 2017 +0000"
      },
      "message": "Merge \"Finish \u003cstdio_ext.h\u003e.\""
    },
    {
      "commit": "5ac5a7c0839a123c2982b37b383a7691fd216e7e",
      "tree": "dc683efefb43a2e9c4e3019e52e371a39d5734f3",
      "parents": [
        "a821283d2232af06e4543156e863075fdfbb5972",
        "0df4c3787db169429e353ca0b4e5af912ba679b5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 02 08:06:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 02 08:06:20 2017 +0000"
      },
      "message": "Merge \"libc fortify: make fcntl.h use diagnose_if\""
    },
    {
      "commit": "a821283d2232af06e4543156e863075fdfbb5972",
      "tree": "adbe47e0dfbecf64ca42ab5f930ce661ecc5108b",
      "parents": [
        "6e0de9da49d8ca37fe2f5935d1532aba68fb84bf",
        "54f5d8331f28ff4484b6df8ca493b39c34b91af2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 02 07:37:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 02 07:37:46 2017 +0000"
      },
      "message": "Merge \"libc fortify: make socket.h and stdlib.h use diagnose_if\""
    },
    {
      "commit": "6e0de9da49d8ca37fe2f5935d1532aba68fb84bf",
      "tree": "f85dc2e9e5c31b3d195ffe089d34a3792cf37dbe",
      "parents": [
        "cff14d9e3ea2ca071f4d7de8553e685837fa4890",
        "23dbf82132c4563caac091d5b7bb91bbe21d20e0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 02 07:27:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 02 07:27:23 2017 +0000"
      },
      "message": "Merge \"libc fortify: make stdio.h use diagnose_if\""
    },
    {
      "commit": "cff14d9e3ea2ca071f4d7de8553e685837fa4890",
      "tree": "41550afb2686e904caf1a43688d6aebf86132f01",
      "parents": [
        "aa8f766bf0ead7d87ed1084880f42aa4b2d01fbb",
        "52dde5fb1c0a73cdeacc4fa98825b2a14853b5c8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 02 06:44:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 02 06:44:41 2017 +0000"
      },
      "message": "Merge \"libc fortify: make poll.h and stat.h use diagnose_if\""
    },
    {
      "commit": "b6300463a829762841e3fb7126833f77f62f7100",
      "tree": "3d827222033db09af663d069e569087f0f0d944d",
      "parents": [
        "aa8f766bf0ead7d87ed1084880f42aa4b2d01fbb"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 21:29:42 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 01 22:41:11 2017 -0700"
      },
      "message": "libc fortify: make string.h use diagnose_if\n\nThis also has a handful of style fixups, to make this file more\nconsistent. And removes __bionic_zero_size_is_okay_t, since there\u0027s a\nbetter workaround available.\n\nBug: 12231437\nTest: m checkbuild on bionic internal master; CtsBionicTestCases show\nno new failures.\n\nChange-Id: I75a020630dbab0ce828563502900cba14ae992d1\n"
    },
    {
      "commit": "54f5d8331f28ff4484b6df8ca493b39c34b91af2",
      "tree": "1e998e0b7af1ea0bbb8e22a1eda6ffbd4071a591",
      "parents": [
        "aa8f766bf0ead7d87ed1084880f42aa4b2d01fbb"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 21:21:10 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 01 22:32:15 2017 -0700"
      },
      "message": "libc fortify: make socket.h and stdlib.h use diagnose_if\n\nSince realpath no longer needs to be overloaded, we can restore the\nupstream source to purity. We\u0027ll be able to do this with most of the\nother functions when we pull a newer clang in.\n\nBug: 12231437\nTest: m checkbuild on bionic internal master; CtsBionicTestCases show\nno new failures.\n\nChange-Id: I484221bba0b291273fece23d2be2f5f9fd713d2c\n"
    },
    {
      "commit": "23dbf82132c4563caac091d5b7bb91bbe21d20e0",
      "tree": "10c445fda133436cc622289f3578090f869ad1c0",
      "parents": [
        "aa8f766bf0ead7d87ed1084880f42aa4b2d01fbb"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 21:23:34 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 01 22:02:31 2017 -0700"
      },
      "message": "libc fortify: make stdio.h use diagnose_if\n\nThis also throws in some reformatting to match the GCC FORTIFY style in\nthis file (e.g. 4 space standard indent).\n\nPer b/36984245, some function protos are unwrapped beyond 100 chars, as\nwell.\n\nBug: 12231437\nTest: m checkbuild on bionic internal master; CtsBionicTestCases show\nno new failures.\n\nChange-Id: I6dce60ec14d5cd703d9e724699634a197ca11023\n"
    },
    {
      "commit": "52dde5fb1c0a73cdeacc4fa98825b2a14853b5c8",
      "tree": "4d5dfad486c852c89da4d1573ef9068ddc2ff5ef",
      "parents": [
        "c2a10f7f1bc23e81a49bcf4e98989042865261b3"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 21:16:05 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 01 21:32:12 2017 -0700"
      },
      "message": "libc fortify: make poll.h and stat.h use diagnose_if\n\nBug: 12231437\nTest: m checkbuild on bionic internal master; CtsBionicTestCases show\nno new failures.\n\nChange-Id: I7dbdeca12c46d1ee3804f13546b11c3f3b3a7596\n"
    },
    {
      "commit": "0df4c3787db169429e353ca0b4e5af912ba679b5",
      "tree": "cd80aceec529ea1916988c1d208821832bde5e4f",
      "parents": [
        "aa8f766bf0ead7d87ed1084880f42aa4b2d01fbb"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 21:39:33 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 01 19:55:02 2017 -0700"
      },
      "message": "libc fortify: make fcntl.h use diagnose_if\n\nBug: 12231437\nTest: m checkbuild on bionic internal master; CtsBionicTestCases show\nno new failures.\n\nChange-Id: I4a31d9e65ed5820a581261a7e8f63a83e44936c3\n"
    },
    {
      "commit": "0ec52ce15b52430de47258d498008c0e38102060",
      "tree": "1e7dab9e448738d9d43b46c83e9980664aedcfa6",
      "parents": [
        "fe3d58f49f1047b687646e2e957aa2927838f8dc",
        "16c173935fd0a787d90ddb58bdd4ed0d00505e98"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 23:06:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 23:06:09 2017 +0000"
      },
      "message": "Merge \"libc fortify: make unistd.h use diagnose_if\""
    },
    {
      "commit": "5ba2c21159f0bb4c0f7f1fbdbd4671f381b75816",
      "tree": "6e4626b224d4105a66be2dfc265b982badf7ca3f",
      "parents": [
        "1bac61f09f46ac3c0a73387613dfd20023e39772"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 15:16:36 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 15:27:27 2017 -0700"
      },
      "message": "Finish \u003cstdio_ext.h\u003e.\n\nImplement __freading and __fwriting, and clarify the documentation that was\nthe cause of these not being implemented for years.\n\nBug: http://b/17157253\nTest: ran tests\nChange-Id: I89542c8131b13889e2585417a024050ecf2abcb7\n"
    },
    {
      "commit": "16c173935fd0a787d90ddb58bdd4ed0d00505e98",
      "tree": "07586c68a2a25d9f21322b7ad668275005560e92",
      "parents": [
        "c2a10f7f1bc23e81a49bcf4e98989042865261b3"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 21:30:47 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 01 20:55:30 2017 +0000"
      },
      "message": "libc fortify: make unistd.h use diagnose_if\n\nAlso:\n- remove a NULL check. The bug that\u0027s been working around has been\n  fixed since clang r298431, and our compiler is built from r300080, and\n- unwrap some function prototypes, per b/36984245.\n\nIf you\u0027re interested, here\u0027s what a new error versus an old one looks\nlike: https://drive.google.com/file/d/0B-8OBPboNJ_4MVdlYXdJbUFBYUk/view\n\nBug: 12231437\nTest: m checkbuild on bullhead internal master; CtsBionicTestCases show\nno new failures.\n\nChange-Id: Ibafe61198988b4c8bee8391bcdf01bcbc04233de\n"
    },
    {
      "commit": "3f66e74b903905e763e104396aff52a81718cfde",
      "tree": "236c66bbc263af683c3cb1d593fc39e69c184078",
      "parents": [
        "3e523a65620c3840af69a19cbc1e078d07649c7b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 13:24:40 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 13:24:40 2017 -0700"
      },
      "message": "Remove nullability specifications.\n\nBug: http://b/64251432\nTest: builds\nChange-Id: I5b1613484783f7478d30b5e694007f77fa626659\n"
    },
    {
      "commit": "3e523a65620c3840af69a19cbc1e078d07649c7b",
      "tree": "ce4f97968d61ca9a065debb066f10f4d0bb2cc21",
      "parents": [
        "7f86f1dd15c739523417661e8482a9bd91300d92",
        "4a8de0d7caec378f08b3804885620746aac38b3e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 19:51:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 19:51:32 2017 +0000"
      },
      "message": "Merge \"Consistently say va_arg rather than __va_arg.\""
    },
    {
      "commit": "7f86f1dd15c739523417661e8482a9bd91300d92",
      "tree": "59281be6c93f8ea914846a6f4b8cc83efc6a0d09",
      "parents": [
        "6616056f0f89499d4662b646019f2d4a59624985",
        "b15feb70240a4fdf88ae1a7da85e6f87523e00ed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 18:09:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 18:09:02 2017 +0000"
      },
      "message": "Merge \"Clean up some \u003cstdio.h\u003e constants.\""
    },
    {
      "commit": "4a8de0d7caec378f08b3804885620746aac38b3e",
      "tree": "6d15b657e182edb7ec16b74cad33e7a603fec3cb",
      "parents": [
        "6616056f0f89499d4662b646019f2d4a59624985"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 10:48:08 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 10:48:08 2017 -0700"
      },
      "message": "Consistently say va_arg rather than __va_arg.\n\nBug: http://b/64250392\nTest: builds\nChange-Id: I435242f620245d825b8a68365c71c99a60aba625\n"
    },
    {
      "commit": "ec6850d849746ffbafaaf9b993c5dbb74a014b3f",
      "tree": "61861bc94bfe8ebb50cfb263610f7d47d367b769",
      "parents": [
        "c2a10f7f1bc23e81a49bcf4e98989042865261b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 08:28:46 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 08:28:46 2017 -0700"
      },
      "message": "Remove restrict/__restrict.\n\nWe\u0027ve never really used __restrict: only \u003cstring.h\u003e and \u003cstdio.h\u003e (which\nare still very similar to upstream BSD headers) consistently have these\nannotations. Neither clang nor GCC warns for trivial cases, and there\u0027s\nlittle obvious documentation benefit.\n\nBug: http://b/30833514\nTest: builds\nChange-Id: I3e4384281865475d0c55d764b546d8166419ee31\n"
    },
    {
      "commit": "c2a10f7f1bc23e81a49bcf4e98989042865261b3",
      "tree": "2eb189efe875b74becb94b20f2724a3096c68445",
      "parents": [
        "1db06faa3891bd056431a5aa8f27c5bc34ad7988",
        "b97d7dd5a1f8e2941be9c5762ffa4b0b76eadcbc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 02:32:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 02:32:33 2017 +0000"
      },
      "message": "Merge \"libc: Add diagnose_if macros to cdefs.\""
    },
    {
      "commit": "1db06faa3891bd056431a5aa8f27c5bc34ad7988",
      "tree": "34534e0d9ab0152ab0b095145df9d57e7c4d17e4",
      "parents": [
        "4dd33f92d82b9fb77152bfc68f312d2fa5710a28",
        "b97049c0390cb1a11b9cb0b14391972e69398ce5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 02:03:52 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 02:03:52 2017 +0000"
      },
      "message": "Merge \"libc: Split FORTIFY into its own headers\""
    },
    {
      "commit": "b15feb70240a4fdf88ae1a7da85e6f87523e00ed",
      "tree": "5c6e069440a88415b13e1408cf2236fafdc46986",
      "parents": [
        "4dd33f92d82b9fb77152bfc68f312d2fa5710a28"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 31 17:20:18 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 31 17:20:18 2017 -0700"
      },
      "message": "Clean up some \u003cstdio.h\u003e constants.\n\nAnd actually test an assertion rather than just state it in a comment.\n\nBug: N/A\nTest: ran tests\nChange-Id: I07699483aca4aac4e089d8b99123cb5bde9b3c63\n"
    },
    {
      "commit": "b97d7dd5a1f8e2941be9c5762ffa4b0b76eadcbc",
      "tree": "40b103bf6fb951983f157f7a3ea943e0f94c347f",
      "parents": [
        "38bcf2b704eb5038668759d2dd37115aea1dc437"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 16:57:15 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 16:58:43 2017 -0700"
      },
      "message": "libc: Add diagnose_if macros to cdefs.\n\nI plan on having one review per file for the enable_if-\u003ediagnose_if\nFORTIFY migration. Having this in means that no one review is dependent\non another.\n\nBug: 12231437\nTest: m.\nChange-Id: Ic0b07d7f7f6782e371c8792eb1e40cdfa32d3e35\n"
    },
    {
      "commit": "4dd33f92d82b9fb77152bfc68f312d2fa5710a28",
      "tree": "1d7415dc639db60e1160966a752cab0cbb1f5e86",
      "parents": [
        "f94ddd7a0eab6d4959227875e10aa9a949a289bc",
        "5f7135eddd40d290d2bc4d0e819a6276bc4b8a24"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 31 15:57:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 31 15:57:00 2017 +0000"
      },
      "message": "Merge \"Allow calling v?dprintf for any target API level.\""
    },
    {
      "commit": "6c26e9ec6fc07809b3f24150544f4b2b31d98860",
      "tree": "3d8ceb136b85cdd90c102c807e1b6571bcc4677e",
      "parents": [
        "c478c32d2ff5e344b7505852996e7f17e4383b2c",
        "f54fa4e585f8bcb9748992614973e5709ee3bba7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Jul 29 19:03:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 29 19:03:09 2017 +0000"
      },
      "message": "Merge \"Remove workaround in \u003csys/epoll.h\u003e.\""
    },
    {
      "commit": "c478c32d2ff5e344b7505852996e7f17e4383b2c",
      "tree": "d1a800d095e5de6e4c762cb47c5d07bd1b7f8433",
      "parents": [
        "b1bbf2bb24caf85e85bc69ea3ead6bfb54bccfc6",
        "525ce914edf136d2bd02ac8c404d56c52e737f4d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Jul 29 19:03:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 29 19:03:09 2017 +0000"
      },
      "message": "Merge \"Update to kernel headers v4.12.3.\""
    },
    {
      "commit": "b1bbf2bb24caf85e85bc69ea3ead6bfb54bccfc6",
      "tree": "b06875108c5a5fe1b1b71a9a2d3917586669fb9e",
      "parents": [
        "8aa4bc7c558843ab3199792b0fde207195f66a2a",
        "d2ab9ffcb6a29f38cb007875520035fc70376847"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 29 16:36:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 29 16:36:33 2017 +0000"
      },
      "message": "Merge \"versioner: compile with `clang -include foo.h -`.\""
    },
    {
      "commit": "06bd5862b18e0b750a709f7f8a1d277f1f6d0c99",
      "tree": "f6d0db8de8f67383aa97056e6c73fb2c7be1b402",
      "parents": [
        "bafa1985eccaac231ade6f15d340759f44928524"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 28 16:27:49 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 28 16:34:38 2017 -0700"
      },
      "message": "POSIX getlogin_r/LOGIN_NAME_MAX/TTY_NAME_MAX.\n\nBug: N/A\nTest: ran tests\nChange-Id: I97c8ecc82fb09c3fa4bb5e6f000d46f04f3d1702\n"
    },
    {
      "commit": "d2ab9ffcb6a29f38cb007875520035fc70376847",
      "tree": "eb6d6516effe78d4cd5002e703ee1f56bd4a7272",
      "parents": [
        "e76ff925df7d0b9aef84fe230c7497ff6a8fbba4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jul 28 12:53:36 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jul 28 12:57:16 2017 -0700"
      },
      "message": "versioner: compile with `clang -include foo.h -`.\n\nAt least one warning only triggers in files that are included, instead\nof being passed directly. Switch to compiling with -include, and fix\nthe resulting warnings.\n\nBug: https://github.com/android-ndk/ndk/issues/474\nTest: mma -j \u0026\u0026 versioner\nTest: python tools/versioner/run_tests.py\nChange-Id: I784698c18540c9cc30f372f279a1cec1d75721ea\n"
    },
    {
      "commit": "b97049c0390cb1a11b9cb0b14391972e69398ce5",
      "tree": "c331f88d0cb75e427564fdebd15738adf410f501",
      "parents": [
        "38bcf2b704eb5038668759d2dd37115aea1dc437"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 24 15:05:05 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jul 27 17:00:13 2017 -0700"
      },
      "message": "libc: Split FORTIFY into its own headers\n\nThis patch cleans up our standard headers by moving most of the FORTIFY\ncruft out in to its own sandbox. In order to include the *_chk and\n*_real declarations, you can either enable FORTIFY, or `#define\n__BIONIC_DECLARE_FORTIFY_HELPERS`.\n\nBoth sys/select.h and strings.h are explicitly ignored by this patch.\nBoth of these files have very small __BIONIC_FORTIFY blocks, and don\u0027t\ndefine any actual FORTIFY\u0027ed functions (just macros, and 3 *_chk\nfunctions).\n\nThis patch also makes the versioner ignore the FORTIFY implementation\nheaders, since we\u0027re guaranteed to pick the FORTIFY\u0027ed headers up when\nlooking at the regular headers. (...Not to mention that making the\nFORTIFY\u0027ed headers freestanding would be annoying to do and maintain for\n~no benefit).\n\nWe bake the knowledge of where FORTIFY headers live directly into the\nversioner. We could go with a more general approach (e.g. adding an -X\nIGNORED_FILE flag that tells the versioner to ignore\n$HEADER_PATH/$IGNORED_FILE), but we\u0027d then have to repeat that for every\ntest, every manual invocation of the versioner, etc. for no benefit\nthat\u0027s obvious to me.\n\nBug: 12231437\nTest: m checkbuild on bullhead internal master + CtsBionicTestCases. no\nnew errors.\n\nChange-Id: Iffc0cc609009b33d989cdaddde0a809282131a5b\n"
    },
    {
      "commit": "5f7135eddd40d290d2bc4d0e819a6276bc4b8a24",
      "tree": "a082dbb4c6fe86b4f10f67f4f01a1b407fbe50bf",
      "parents": [
        "93068895091ee516c55a7873a4056145a7da3644"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 26 14:09:45 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jul 27 16:32:01 2017 -0700"
      },
      "message": "Allow calling v?dprintf for any target API level.\n\nOld versions of Android called these fdprintf and vfdprintf out of\nfears that the glibc names would collide with user debug printfs.\n\nAllow users to just use dprintf and vfdprintf on any version by\nrenaming those calls to their legacy equivalents if needed.\n\nTest: built trivial NDK module targeting android-14 and using dprintf\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/72\nChange-Id: I90de149278f931380418536abaef47c5cee5c195\n"
    },
    {
      "commit": "525ce914edf136d2bd02ac8c404d56c52e737f4d",
      "tree": "0da29892c385ef568bc67ff2f2814bfb2f7b0412",
      "parents": [
        "4f36cabd8d1b1f3ed6ad4586f86aad5731f4bdaf"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 26 13:12:53 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 27 16:01:39 2017 -0700"
      },
      "message": "Update to kernel headers v4.12.3.\n\nTest: Built angler.\nChange-Id: Icbcf4fac2334de8409b049ed7a3b4c24b4e98ce9\n"
    },
    {
      "commit": "f54fa4e585f8bcb9748992614973e5709ee3bba7",
      "tree": "2b022736bcb9190d716c003425cd8e98bdd9f729",
      "parents": [
        "38bcf2b704eb5038668759d2dd37115aea1dc437"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 27 15:14:52 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 27 15:14:52 2017 -0700"
      },
      "message": "Remove workaround in \u003csys/epoll.h\u003e.\n\nLinux 4.12 has a better fix: https://lkml.org/lkml/2017/2/23/416 and\nhttps://lkml.org/lkml/2017/2/23/417.\n\nBug: N/A\nTest: builds\nChange-Id: I9cbf0c60817332142c48297899062f1a25f2b082\n"
    },
    {
      "commit": "9faa95c9ebdc9eb43522d1699a0aac0abbb46093",
      "tree": "076f9e8d803d8df2fef37771c021b100b2ce14ad",
      "parents": [
        "d3e656abeb1d603eae175b910d5cd1d5d9a1f1ab",
        "bd3f657e56a4846d6526a36badab0f7fe0dc14ab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 27 02:40:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 27 02:40:40 2017 +0000"
      },
      "message": "Merge \"Fix error condition on strtof inline.\""
    },
    {
      "commit": "bd3f657e56a4846d6526a36badab0f7fe0dc14ab",
      "tree": "23281a4620991ca4112d4e859b7ba44babac922a",
      "parents": [
        "4f36cabd8d1b1f3ed6ad4586f86aad5731f4bdaf"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 26 14:59:24 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 26 17:21:47 2017 -0700"
      },
      "message": "Fix error condition on strtof inline.\n\nTest: make checkbuild\nTest: pull into ndk, ./run_tests.py\nBug: https://github.com/android-ndk/ndk/issues/415\nChange-Id: I1575f799c9e849d66456c785208a36709a7b8122\n"
    },
    {
      "commit": "f66fa495a883ee2f6df955e06f7b364907c6fcd9",
      "tree": "3f6f1dedf0cf95185c79dceb3bc4b259417ca047",
      "parents": [
        "93068895091ee516c55a7873a4056145a7da3644"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 26 14:27:43 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 26 14:27:43 2017 -0700"
      },
      "message": "Add __ANDROID_NDK__ to identify using the NDK.\n\nI\u0027ve added some things like __ANDROID_MAJOR__ to an ndk-version.h, but\nthat is only in the NDK itself and so doesn\u0027t help the platform. Add\n__ANDROID_NDK__ to identify that you\u0027re building for the NDK and not\nthe platform.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/407\nChange-Id: I2d1f1c28e3764e4e658cf675b290b7a17253ee33\n"
    },
    {
      "commit": "7c5a85165612641970973d426bad99257db3e149",
      "tree": "957c3b8f9ebf45cd310afd288317b7e11937078f",
      "parents": [
        "0d6485eca47f0e860486795b2da97679948fd5d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 20 10:00:28 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 20 10:00:28 2017 -0700"
      },
      "message": "Use __RENAME_IF_FILE_OFFSET64 where possible.\n\nIt\u0027s not usable for cases where the off_t and off64_t functions became\navailable in different API levels, so it\u0027s not as big an improvement as\nwe\u0027d hoped, but it cleans up several headers and should be usable for\nany future additions (though recent Linux additions have _only_ supported\noff64_t anyway).\n\nBug: N/A\nTest: builds\nChange-Id: I18b00f30666079d9d12d5b9c0ed916076d6c3641\n"
    },
    {
      "commit": "f5605374da9605686352300de3e1bf342e72032d",
      "tree": "3476fdc8ee5845bd276cb6b834392e4532feb16d",
      "parents": [
        "dcdd0e37603215320d4fd175792aeef279a80606"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 17 14:05:44 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 17 14:05:44 2017 -0700"
      },
      "message": "Add __RENAME_IF_FILE_OFFSET64.\n\nConvenience macro for __RENAME if __USE_FILE_OFFSET64 mode. Lets us\navoid duplicating all the doxygen comments in frameworks headers.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/459\nChange-Id: Ica44f22b2f1596e484694006c0926d94d16187b5\n"
    },
    {
      "commit": "61fcd39e1720df131e2a7a7c4075f344bb413ca1",
      "tree": "7739695d551d6e87df7c650e47b2ef827ee06ca1",
      "parents": [
        "fc544af6cb538c5a6916f9ebf5b02639383fb1f3",
        "4cae5c374e6432f5fb4e7ec6d7e09228c3426e27"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 11 18:54:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 11 18:54:24 2017 +0000"
      },
      "message": "Merge \"The future passed part of \u003cstdlib.h\u003e by...\""
    },
    {
      "commit": "e76ff925df7d0b9aef84fe230c7497ff6a8fbba4",
      "tree": "9009caad2fd90f30494b915d367977b96867e0f8",
      "parents": [
        "6aaa227f74031ee461c7ce5b7a2a262397e866b2",
        "1449974d27473399a1fe25c2d28253908a57e382"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 10 20:40:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 10 20:40:53 2017 +0000"
      },
      "message": "Merge \"Make inline tcsetattr definition match constants.\""
    },
    {
      "commit": "6aaa227f74031ee461c7ce5b7a2a262397e866b2",
      "tree": "6f08e2d4c0270c6d47601d7cc9fb6421cdf20edc",
      "parents": [
        "c2828b87ec1066dfceb873532ef6cae7b64c2901",
        "00fedf5879176d580aa7e9c4fdc820a6f9655033"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 10 20:20:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 10 20:20:53 2017 +0000"
      },
      "message": "Merge \"Undo recent _FILE_OFFSET_BITS\u003d64 changes.\""
    }
  ],
  "next": "c2828b87ec1066dfceb873532ef6cae7b64c2901"
}
