)]}'
{
  "log": [
    {
      "commit": "9ce28844db7cf80ee8cf7c88dab23b666eaab739",
      "tree": "a6dc35217992637cf0102c4beba99c6fdcd1ffdc",
      "parents": [
        "e898a17e8f2bf30506642be8106b1f8a6de61151"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 25 12:11:39 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 30 09:21:16 2018 -0700"
      },
      "message": "Update to v4.19 kernel headers.\n\nTest: Builds and boots.\nChange-Id: I99a9ed79666e143b47f02ca4e59eed94f69b7e4a\n(cherry picked from commit a981e2e52e2e95a65fa9c9b6fb16dcb4c83dd576)\n"
    },
    {
      "commit": "82ab481123c171d2029bb0a7767d649b576ee2f8",
      "tree": "3227b9e82293bb449edfb52e1c753a45e044a4fd",
      "parents": [
        "773c697f815d43182adf1eb430f4899255088d6b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 13:56:06 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 13:56:06 2018 -0700"
      },
      "message": "Add _SC_UIO_MAXIOV as a synonym for _SC_IOV_MAX.\n\nglibc and musl both have these as synonyms for one another, so we may\nas well do the same and get backwards compatibility on old OS releases.\n\nBug: N/A\nTest: ran tests\nChange-Id: I6bf38ea446560e1b11022ff539f07eb67c157049\n"
    },
    {
      "commit": "dd6763a6c677687ad06727af037ed9a7b018c773",
      "tree": "51170c743639731a7e5a1a7540eb3f68870cb893",
      "parents": [
        "9df26193c8adc43a7ac1ba807e70d0b0772712c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 04 16:35:13 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 04 16:35:13 2018 -0700"
      },
      "message": "Another round of documentation.\n\nBug: N/A\nTest: N/A\nChange-Id: I1b818fbb36ddd6d084dee56828290c2717a0c9b0\n"
    },
    {
      "commit": "ce934e3d9be9700946ba51a39ba966faf3867a93",
      "tree": "0db870d9253699cf6084818dabbe8f0a46bec6fc",
      "parents": [
        "74934aaf10d629de477095f0b92c467849f89638"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 13:26:08 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 14:19:46 2018 -0700"
      },
      "message": "Add android_get_device_api_level.\n\nBug: http://b/113615412\nTest: ran tests\nChange-Id: I0a7ae336c96c9ed6543b6935cbc242d14d4a4a67\n"
    },
    {
      "commit": "222ce95c8ab6bb01ced9652c904536adf72d9dc4",
      "tree": "a1b07a272b4d3604abe87cc5ee8ee930cd41af8c",
      "parents": [
        "003521af4760215c9c3b8ba80c88dd3b3c87ab67"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 09:26:43 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 09:26:43 2018 -0700"
      },
      "message": "Remove ARM/MIPS fenv duplication.\n\nBug: http://b/32709207\nTest: ran tests\nChange-Id: I58d354e9f8b1e6023427ba271bf39e4e24b7f8ab\n"
    },
    {
      "commit": "b7b2884a2130c32b3ca7228891a0a9aa934a9be7",
      "tree": "0a84ca3f68ee988c501c776e0d957000aa1bf747",
      "parents": [
        "f2fb3b11c611536b19d4ce8949dffe7f151854b5",
        "0d1a8a5b0b78e0109c55b8f7a142488150b60cd6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 08 15:26:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 15:26:37 2018 +0000"
      },
      "message": "Merge \"Reland \"Retire GCC FORTIFY.\"\""
    },
    {
      "commit": "c1c8a188b26be9a8b9c48e6b21af4035226f9d1f",
      "tree": "a15bef933c4ca1e363e48b6124f49b7be5baa3f3",
      "parents": [
        "3bf897e12d73f5c038aeef85f91ccce1c35fe326"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Apr 24 18:43:19 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Jul 30 23:49:19 2018 -0700"
      },
      "message": "Fix arm32/64 dynamic TLS relocations\n\narm32: Add a relocation for TLS descriptors (e.g. gcc\u0027s\n-mtls-dialect\u003dgnu2).\n\narm64: Add all the dynamic TLS relocations.\n\nTwo of the relocations here are obsolete:\n\n - ARM documents R_ARM_SWI24 as an obsolete static relocation without\n   saying what it did. It\u0027s been replaced by R_ARM_TLS_DESC, a dynamic\n   relocation. We could probably remove it, but I left it because arm32\n   is old, and I see the macro in other libc\u0027s. It\u0027s probably analogous\n   to R_ARM_THM_SWI8, which is also an obsolete relocation reserved for\n   a future dynamic relocation.\n\n - I couldn\u0027t find any ARM documentation at all for\n   R_AARCH64_TLS_DTPREL32. It seems to have been part of three\n   relocations:\n\n    - R_AARCH64_TLS_DTPREL32 1031\n    - R_AARCH64_TLS_DTPMOD32 1032\n    - R_AARCH64_TLS_TPREL32 1033\n\nBug: b/78026329\nTest: run bionic unit tests\nChange-Id: I5e7432f6e3e906152dc489be5e812fd8defcbafd\n"
    },
    {
      "commit": "0d1a8a5b0b78e0109c55b8f7a142488150b60cd6",
      "tree": "48a51876da8e0a43c2c46393d03a599f016dceae",
      "parents": [
        "4dbe8fc22f96868d3e5164653a6387b86b163673"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 19:36:51 2018 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 19:36:51 2018 +0000"
      },
      "message": "Reland \"Retire GCC FORTIFY.\"\n\nThis reverts commit 4dbe8fc22f96868d3e5164653a6387b86b163673.\n\nThe angler/bullhead builds are now dead, so this can go in.\n\nBug: https://issuetracker.google.com/74404306\nChange-Id: I130cdcd6375b6125cb8a1e63a4a540b0dbe41ceb\n"
    },
    {
      "commit": "4dbe8fc22f96868d3e5164653a6387b86b163673",
      "tree": "068475a0a85f6ed4919d4443fb39e7027e8485ed",
      "parents": [
        "067bdc9546557a1a107f2617d7d15b864ff493f1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 18:54:16 2018 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 18:54:16 2018 +0000"
      },
      "message": "Revert \"Retire GCC FORTIFY.\"\n\nThis reverts commit 067bdc9546557a1a107f2617d7d15b864ff493f1.\n\nThe angler/bullhead builds still use GCC, so I\u0027ll wait until they\u0027re turned down.\n\nBug: https://issuetracker.google.com/74404306\nChange-Id: I777b08dd6ab5250d532b4b5cc56e9a790c13db20\n"
    },
    {
      "commit": "067bdc9546557a1a107f2617d7d15b864ff493f1",
      "tree": "48a51876da8e0a43c2c46393d03a599f016dceae",
      "parents": [
        "94ab04c17a0e9f412b7de079f2ef35f39c7f06fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 23 16:53:12 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 23 17:22:58 2018 -0700"
      },
      "message": "Retire GCC FORTIFY.\n\nNDK r18 (which removes GCC) is about to ship. We don\u0027t need this any more.\n\nThe immediate motivation for removing this right now is that the test\nfails whenever we add Clang-only flags to the build system.\n\nWhile we\u0027re here, clean up \u003cstdatomic.h\u003e too.\n\nBug: https://issuetracker.google.com/74404306\nTest: ran tests\nChange-Id: Iaad5d634d1ba76f0b6f19ad32cc27b2533771a4a\n"
    },
    {
      "commit": "76a1d45599fb287742bfe645dea117039fca7949",
      "tree": "ea764b786629b81444fb42469cfdbb100ef29112",
      "parents": [
        "6747bd1631c24f76684278020056ee0d41cbb402"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 27 14:12:29 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 27 14:12:29 2018 -0700"
      },
      "message": "Update to v4.17.3 kernel headers.\n\nTest: Builds, boots on a walleye.\nChange-Id: I389d8b61ec00ea309e38d1b1a2e0dace48c21edb\n"
    },
    {
      "commit": "90234e57487642076e91a827d9f0cba9ad64faac",
      "tree": "3d59c7e5626b58b409f7c5144db1a0cf961632f0",
      "parents": [
        "1315e3ef852eafb3377a73212242bbe6b5247800",
        "b83bf14a352269135d3e2fe783414c3b6e1d0ac5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 23:49:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 22 23:49:40 2018 +0000"
      },
      "message": "Merge \"Fortify ppoll64.\""
    },
    {
      "commit": "b83bf14a352269135d3e2fe783414c3b6e1d0ac5",
      "tree": "3e3b5604f28445915e5011af96bacf8e6021f1aa",
      "parents": [
        "1423bb849879f3f126cb1e6dcb279da5360ef5fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 11:01:25 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 22 13:59:02 2018 -0700"
      },
      "message": "Fortify ppoll64.\n\nI\u0027ve deliberately not bothered with the GCC implementation because we\u0027ll\nhave removed GCC from the NDK before anyone gets to use this.\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: Icfc2a3b214739ab53aa41bacacc11b5c67498fb4\n"
    },
    {
      "commit": "de45dcbbab9c36054172637231ba32bef86a73a6",
      "tree": "4750706cdbb27c13e467c2801060988040894321",
      "parents": [
        "6655ba1c321e8af27b1e8c0676e4a619227d8395"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Mar 16 14:15:01 2018 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Mar 20 15:59:46 2018 -0700"
      },
      "message": "libc: silence unsigned-\u003esigned warnings with ioctl\n\nThis also tweaks cdefs to make __overloadable usable outside of\nFORTIFY. It had to be FORTIFY-only before we had unmarked overload\nsupport in clang+Bionic.\n\nBug: https://github.com/android-ndk/ndk/issues/402\nTest: Internal master builds + `mma`. `mma` in Bionic fails if the\nchange to ioctl is undone.\n\nChange-Id: Ib386b1786e1dca625e6d5a18682005adc734d9c1\n"
    },
    {
      "commit": "23415fc60d18b41b1a1ff9591176ce98b6f84485",
      "tree": "bb79fd7cf82c54ad730c8c268b68e02f29997e69",
      "parents": [
        "3374d0cabb973ff2b73ad8cd909389bdeed18658"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 19:09:04 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 19:09:04 2018 -0800"
      },
      "message": "Add uc_sigmask64.\n\nAdded to each ucontext_t for source compatibility between platforms where\nsigset_t and sigset64_t differ (arm, x86) and where they\u0027re the same\n(all the rest).\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: I65a37bfa177933701bbe6c2350448885fd0f9c43\n"
    },
    {
      "commit": "f81abef14852f2738043998e2f420d97ba59c286",
      "tree": "6dd2d8846f0a34993159a8576a35a2a20411f972",
      "parents": [
        "4a2407b3a1ad7b71bbc617ffdee961e416b121e4"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jan 25 15:30:27 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jan 25 17:54:50 2018 -0800"
      },
      "message": "Use __BIONIC_FORTIFY_VARIADIC for variadic functions.\n\n* Variadic functions usually cannot be inlined.\n* Do not use misleading __always_inline attribute,\n  and also avoid early clang 7.0 compiler bug.\n\nBug: 72412382\nTest: build and boot aosp*-eng in emulator\nChange-Id: I7490976166581abc626f397ad408581ada0ed308\n"
    },
    {
      "commit": "59a6ee963f96eedf01df7db1e57397ff71852b15",
      "tree": "d070eb160521ea7a969982a09d403c44e8f75a44",
      "parents": [
        "6651b3d2e6761d586cae660b68bba625b47f7bdf",
        "5da96467a99254c963aef44e75167661d3e02278"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 15 01:32:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 15 01:32:03 2017 +0000"
      },
      "message": "Merge \"Add trivial termios tests.\""
    },
    {
      "commit": "64f355ffbd715a3c8b467c3b37701ad404b566b4",
      "tree": "04e1e9ddac688de976ae427ece327ee1c68afeb5",
      "parents": [
        "3ba327198a42eecd2fbc2556d7d0fa41f8d6b17b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 30 16:10:24 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 14 10:07:27 2017 -0800"
      },
      "message": "Use in_addr in ip_mreq_source and ip_msfilter.\n\nThis adds a new mechanism to say \"replace struct S with #include \u003cbits/S.h\u003e\".\n\nAlso switch epoll_event over to the new mechanism.\n\nAlso use the kernel\u0027s struct sockaddr_storage directly rather than behind\nan unnecessary #define.\n\nThis patch also removes some dead code in the header scrubber. This code\nstill needs rewriting completely. I learned that a \"block\" isn\u0027t necessarily\na single struct definition, say; it might be a run of them. It seems like\na block is a run of preprocessor directives or a run of regular code.\n\nBug: https://issuetracker.google.com/36987220\nTest: new test\nChange-Id: Ic6a5c09559766a4babe3cd4c3ea538b885e07308\n"
    },
    {
      "commit": "5da96467a99254c963aef44e75167661d3e02278",
      "tree": "a0255adf4a9eab4c575e651f6478e294abd0553e",
      "parents": [
        "3ba327198a42eecd2fbc2556d7d0fa41f8d6b17b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 14 09:43:59 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 14 09:46:50 2017 -0800"
      },
      "message": "Add trivial termios tests.\n\n...and fix the bugs.\n\nAlso explain why we can\u0027t support separate input and output speeds\nwithout an ABI change. Luckily no-one is likely to need that anyway,\nand they can always work around it by using `struct termios2` directly\nthemselves.\n\nBug: http://b/69816452\nTest: ran tests\nChange-Id: Ie08499a198bb6a20d7e5e2f5ff74a60bd53e97e1\n"
    },
    {
      "commit": "21b56ebbd49362d293e1f56c4b3265c227bbbbae",
      "tree": "5f86bae235f84b48c20d66d9973118133e945892",
      "parents": [
        "eb7347aedbc61ba45555aef3e6e863f0d90b407b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 20 17:57:17 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 13 09:01:35 2017 -0800"
      },
      "message": "Test POSIX 1003.1 2016 chapter 13 \"Headers\".\n\nAnd fix one thing that this found: apparently \u003cstdlib.h\u003e should also\nmake the various *WAIT* macros available.\n\nBug: N/A\nTest: builds\nChange-Id: Id879bf3c1bddd1170261a809e7280150a74d6b3d\n"
    },
    {
      "commit": "b6c7f6e5950e609a2ede7990d2be0a1d1b55304f",
      "tree": "3c68573b1d47c41b8a5e2102ec8295ff3f88f29c",
      "parents": [
        "b06bb71672094d18d928c19ddc631af07931431f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 03 16:46:32 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 03 16:46:32 2017 -0700"
      },
      "message": "Fix arm/arm64 \u003cfenv.h\u003e to match current reality.\n\nARM stopped supporting enabling of FP exceptions years ago.\n\nBug: http://b/68832485\nTest: ran tests\nChange-Id: I8450baa78e04d994c352180975b0a1ecd5a9f662\n"
    },
    {
      "commit": "c8a2612ffc13a31aaedec26a45cdceb6fa8199cb",
      "tree": "8c12929cde798f3a49dfe0d9a59085d8b205f0b6",
      "parents": [
        "048e18045d6e7bcaf0870d8bb7cb671214c9ad50",
        "8aecba7aa6b7f7b92f69c0d3febef59fdb135f87"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 26 16:12:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 16:12:04 2017 +0000"
      },
      "message": "Merge \"Implement pthread_attr_getinheritsched/pthread_attr_setinheritsched.\""
    },
    {
      "commit": "8aecba7aa6b7f7b92f69c0d3febef59fdb135f87",
      "tree": "fd3d9743a0e282dcbb2a8b2b51906f7da3a84468",
      "parents": [
        "435e6384de8f9e35b8878b1ccda5bb5686c15207"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 17 15:34:41 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 25 14:28:42 2017 -0700"
      },
      "message": "Implement pthread_attr_getinheritsched/pthread_attr_setinheritsched.\n\nHistorically, Android defaulted to EXPLICIT but with a special case\nbecause SCHED_NORMAL/priority 0 was awkward. Because the code couldn\u0027t\nactually tell whether SCHED_NORMAL/priority 0 was a genuine attempt to\nexplicitly set those attributes (because the parent thread is SCHED_FIFO,\nsay) or just because the pthread_attr_t was left at its defaults.\n\nNow we support INHERIT, we could call sched_getscheduler to see whether\nwe actually need to call sched_setscheduler, but since the major cost\nis the fixed syscall overhead, we may as well just conservatively\ncall sched_setscheduler and let the kernel decide whether it\u0027s a\nno-op. (Especially because we\u0027d then have to add both sched_getscheduler\nand sched_setscheduler to any seccomp filter.)\n\nPlatform code (or app code that only needs to support \u003e\u003d P) can actually\nadd a call to pthread_attr_setinheritsched to say that they just want\nto inherit (if they know that none of their threads actually mess with\nscheduler attributes at all), which will save them a sched_setscheduler\ncall except in the doubly-special case of SCHED_RESET_ON_FORK (which we\ndo handle).\n\nAn alternative would be \"make pthread_attr_setschedparams and\npthread_attr_setschedprio set EXPLICIT and change the platform default\nto INHERIT\", but even though I can only think of weird pathological\nexamples where anyone would notice that change, that behavior -- of\npthread_attr_setschedparams/pthread_attr_setschedprio overriding an\nearlier call to pthread_attr_setinheritsched -- isn\u0027t allowed by POSIX\n(whereas defaulting to EXPLICIT is).\n\nIf we have a lot of trouble with this change in the app compatibility\ntesting phase, though, we\u0027ll want to reconsider this decision!\n\n -*-\n\nThis change also removes a comment about setting the scheduler attributes\nin main_thread because we\u0027d have to actually keep them up to date,\nand it\u0027s not clear that doing so would be worth the trouble.\n\nAlso make async_safe_format_log preserve errno so we don\u0027t have to be\nso careful around it.\n\nBug: http://b/67471710\nTest: ran tests\nChange-Id: Idd026c4ce78a536656adcb57aa2e7b2c616eeddf\n"
    },
    {
      "commit": "19d768598205d915a856ec8f8bf6f996dc6fa83a",
      "tree": "8463238af2bc21651e86e9e44973e9b3ba99eb52",
      "parents": [
        "435e6384de8f9e35b8878b1ccda5bb5686c15207"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:27:01 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:27:01 2017 -0700"
      },
      "message": "More \u003climits.h\u003e fixes.\n\nWent through the POSIX spec for the _POSIX* and _XOPEN* constants.\n\nBug: http://b/32776472\nTest: ran tests\nChange-Id: I389100dbc7de354eae9056e44b0a7fa8c37374e3\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "00fedf5879176d580aa7e9c4fdc820a6f9655033",
      "tree": "4924ca943550aff0904589800ab34b8ae9993b55",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 15:23:50 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 10 19:52:18 2017 +0000"
      },
      "message": "Undo recent _FILE_OFFSET_BITS\u003d64 changes.\n\nWe had several bugs filed saying \"if I set _FILE_OFFSET_BITS\u003d64 when\ntargeting an API \u003c L, various functions are missing\". Instead of\nsaying \"yes, they are\", we quietly just modified the header files to\nexpose the non-64-bit variants. This makes no sense. We can\u0027t just say\n\"oh, yeah, we don\u0027t have a version of this function that agrees with\nyour calling code about how large off_t is, but here\u0027s a version that\ndoesn\u0027t: I\u0027m sure it\u0027ll be fine\".\n\n_FILE_OFFSET_BITS\u003d64 on Android LP32 has always been a game of chance,\nbut that game should be \"are all the functions my code needs available\nat compile time?\", not \"will my code actually work at run time?\".\n\nBug: https://github.com/android-ndk/ndk/issues/449\nBug: https://github.com/android-ndk/ndk/issues/442\nBug: https://github.com/android-ndk/ndk/issues/333\nBug: https://github.com/android-ndk/ndk/issues/332\nBug: https://github.com/android-ndk/ndk/issues/324\nTest: builds\nChange-Id: Ib095251d3e21e77ed50cc3575388107fecec4ecd\n"
    },
    {
      "commit": "1449974d27473399a1fe25c2d28253908a57e382",
      "tree": "99ab00407ff51e8db4318365f31eabc9feb942af",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 12:00:29 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 12:00:29 2017 -0700"
      },
      "message": "Make inline tcsetattr definition match constants.\n\nBefore this change we have the old NDK inline termios functions with the\nmodern constants. Unfortunately the old NDK inline functions relied on\nhacking the constants. Fix things by sharing the implementation between\nthe platform and the NDK headers.\n\nBug: https://github.com/android-ndk/ndk/issues/441\nTest: ran tests\nChange-Id: I2773634059530bc954167f29c4783413a2294d5a\n"
    },
    {
      "commit": "468c8086e6f28b9342d3f89ed89f185ab5bb775a",
      "tree": "e04a6353962ea85f199c283e21b28b4caf4325ee",
      "parents": [
        "f06535035ef6e48aeacc37819ea7182416275216"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat May 20 12:47:14 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat May 20 13:11:14 2017 -0700"
      },
      "message": "Fix _POSIX_THREAD_PROCESS_SHARED.\n\nWe\u0027ve had pthread_*_setpshared for long enough that there are no\n__INTRODUCED_IN guards.\n\nFound because fio\u0027s configure script was confused by this.\n\nBug: N/A\nTest: ran tests\nChange-Id: I07b4d937741e4dcd7e615f2371b17c827341917a\n"
    },
    {
      "commit": "2e8e5e60b6ecbcfe2110242e41b9ec5340b11cf5",
      "tree": "8810a00e508e0dd698d23f513432fff2e513e87e",
      "parents": [
        "ee1c45f88f5fcd1b1d43c325e0de366cc3d0ce36"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 20 12:58:31 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 20 16:57:25 2017 -0700"
      },
      "message": "DO NOT MERGE: The future is now.\n\n__INTRODUCED_IN_FUTURE -\u003e __INTRODUCED_IN(26)\n\nBug: http://b/37437368\nTest: treehugger\nChange-Id: I601a23da83b65a0cd582cc840ed3856a9031b673\n(cherry picked from commit cb302f932a3532f1484e1e70894e9b1199384283)\n"
    },
    {
      "commit": "5109bb463d3cce67a68875dec3cba9cb0b861ecd",
      "tree": "d50a0033f667bd8ac49bf964c1c10a5f5152a1b9",
      "parents": [
        "0fc84517abe3082f201a340dafe20403613ddf94"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 19 13:25:27 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 19 13:28:32 2017 -0700"
      },
      "message": "Make all the ELF relocation constants available.\n\nBSD thinks you should only get the relocation constants for your target\narchitecture, but it\u0027s often useful to have them all available at once.\nRearrange the headers to enable that.\n\nAlso update the (modified) NetBSD files to CVS HEAD.\n\nAlso remove the unused BSDism R_TYPE.\n\nBug: N/A\nTest: builds\nChange-Id: Iad5ef29192a732696e2b36af35144a9ca116aa46\n"
    },
    {
      "commit": "0446c8c095044d47217a59a9fd707fc8ed23b6fc",
      "tree": "0a18640e14b7a0aab407cb6e0bc60d83ec8cf045",
      "parents": [
        "791989d250a507e3fc5634eccbf1341d980f2916"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 19 10:20:25 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 19 10:52:35 2017 -0700"
      },
      "message": "Add missing arch-specific AT_ cruft.\n\nAP_FPUCW is referenced by valgrind.\n\nBug: https://bugs.kde.org/show_bug.cgi?id\u003d339945\nTest: valgrind builds with one less hack\nChange-Id: I7146f3709286662108cc82ba3c55ce935375a1f1\n"
    },
    {
      "commit": "8ebfc0d3a3285a595cd44d477ebe76fdaa39afcf",
      "tree": "995b8984775e39d6c896a78fd46e1428d7a0c8ea",
      "parents": [
        "72b6f4fae22477a2d35c2cf6b9de4053ec0b731f",
        "06d7f2c78968d1f3e72eb96a5e2472c22c08cd19"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 21 20:11:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 21 20:11:37 2017 +0000"
      },
      "message": "Merge \"POSIX support varies by API level.\""
    },
    {
      "commit": "06d7f2c78968d1f3e72eb96a5e2472c22c08cd19",
      "tree": "77f98a3292f307e5360c3a372b89b1a956dc8d51",
      "parents": [
        "9cb82a2c6b9001f7c50cbb3465f4aabc5d7cd055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 21 11:24:13 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 21 11:24:13 2017 -0700"
      },
      "message": "POSIX support varies by API level.\n\nBug: https://github.com/android-ndk/ndk/issues/332\nTest: builds\nChange-Id: I249c214d34244a1149ba6b1160e8eafc2cdbcdea\n"
    },
    {
      "commit": "468a5d2d83a3d719f7493d041abc69587756d8fa",
      "tree": "dee5d5ba9409f295326e0387507fb92783a8bbe7",
      "parents": [
        "9cb82a2c6b9001f7c50cbb3465f4aabc5d7cd055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 21 09:39:56 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 21 09:55:32 2017 -0700"
      },
      "message": "pthread barrier and spinlock types should only appear at API level 24.\n\nBug: https://github.com/android-ndk/ndk/issues/336\nTest: builds\nChange-Id: I938d9d7ea879d1dbc355f14e100f1ea31a51a1f0\n"
    },
    {
      "commit": "6a9755d20a995756487bb1aafb7e954f4fd868a7",
      "tree": "0278ddd8ea343a9b9d7038ad907450ec7eca6130",
      "parents": [
        "18c009ca96a432b35c76aeb9f62687b2db5153c0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 13 14:09:31 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 25 16:23:56 2017 -0800"
      },
      "message": "Update to kernel headers v4.9.3.\n\nTest: Built arm, arm64, x86, x86_64 targets.\nTest: Booted on angler, and ran bionic unit tests (32 bit and 64 bit).\n\nChange-Id: I14a8dcbea11b41f83431eabed6590cd25af07b1d\n"
    },
    {
      "commit": "edecce3ac20ba4bdacda9e85e7fab30162549438",
      "tree": "89d75638cab5253bd7f3b524acef62b2bc5e0c0a",
      "parents": [
        "6901ca2799b6514b6513f4b4c2ef22e571191a94",
        "3037ea43fccf5ec64537c3ee024bc726ee723c01"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 20 19:34:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 20 19:34:56 2016 +0000"
      },
      "message": "Merge \"Fix stdin/stdout/stderr for pre-M.\""
    },
    {
      "commit": "3037ea43fccf5ec64537c3ee024bc726ee723c01",
      "tree": "830fda3221eb1207bb837f78298032be2d2c1706",
      "parents": [
        "d8244214751f9b48e60e69910c4e7175f8fab1ac"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 06 15:46:45 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 20 10:10:45 2016 -0700"
      },
      "message": "Fix stdin/stdout/stderr for pre-M.\n\nThis wasn\u0027t an array of pointers, it was an array of structs.\nUnfortunately we need a complete type to index into the struct for\nstdin/stdout/stderr, so add a phony struct that matches the size and\nalignment of `struct __sFILE`. This property is guaranteed by the\nstatic_asserts in libc/bionic/struct_file_test.cpp.\n\nTest: mma\nBug: http://b/30465923\nChange-Id: I8ce851dd64a261703bb44f9b5cd23b7caff4dd68\n"
    },
    {
      "commit": "73c44a4738fdb615eaede1d0ab21fc3de59105ab",
      "tree": "af209ee2d4f9f17e8aa253681f553c6ef7bac383",
      "parents": [
        "d8244214751f9b48e60e69910c4e7175f8fab1ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 09:27:02 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 09:28:21 2016 -0700"
      },
      "message": "Fix our _POSIX_* macros to declare barriers and spin locks.\n\nWe have these now.\n\nTest: ran tests\nChange-Id: Ie7b479061ecec19c8b35ea81e04debfd8323d94a\n"
    },
    {
      "commit": "95fa061678400315ee757758bf5f9146176d47a0",
      "tree": "0b3428e9d7d274e79809471c1d7ae3896a10ff03",
      "parents": [
        "1d20532f5c5f8c1638735eb04586be82a7d0379c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 28 12:29:52 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 28 12:36:38 2016 -0700"
      },
      "message": "Rename __pure, __pure2, and __purefunc.\n\nThese names were pretty misleading (aka \"backwards\"), so switch to the\nsame obvious names glibc uses.\n\nTest: build.\nChange-Id: Ia98c9dbbccd0820386116562347654e84669034a\n"
    },
    {
      "commit": "cb0b14385b21ec6b7a6e12bc1a9bb6d68f8a839c",
      "tree": "254669c0c2e6569f9785f31639eb3302771fa8ff",
      "parents": [
        "69b26542de22a0eca05d3b9863d196f3edd7949c"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 06 16:51:00 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Sep 08 16:13:28 2016 -0700"
      },
      "message": "Provide fake definitions for libstdc++.\n\nlibstdc++ needs to be able to `using ::foo` these in the various C++\nwrapper headers for the C library. The NDK long ago added fake\ndefinitions. We need to keep the same.\n\nTest: make checkbuild\nBug: http://b/30465923\nChange-Id: Id513b72a59eafcc823080631e07b21290d5e3b24\n"
    },
    {
      "commit": "106b3a8a7dc03c19a45e322de425ac56aafac358",
      "tree": "e82b7f75fa5bca64b5aeb45ab20abff23e16de4b",
      "parents": [
        "0b1a2826508ee5b191650d1d8b1f6b028e970f3b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 24 12:15:38 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 29 12:07:13 2016 -0700"
      },
      "message": "Update to kernel headers v4.7.2.\n\nModify the kernel header update script to rename C++ keyword\nstruct members to something else. This fixes problems when including\nthese kernel files in C++ code.\n\nAlso, make a manual change to linux/fib_rules.h and comment out the\nvalue FRA_PAD since it conflicts with a special android kernel value\nFRA_UID_START that has not been upstreamed yet.\n\nTest: Built aosp_angler, aosp_x86_64, aosp_mips (bionic only)\nTest: Booted on angler and ran bionic unit tests\nTest: Built these changes in internal master\n\nChange-Id: Ia22b7e3ca409404696dba76311f49157f4a9ceed\n"
    },
    {
      "commit": "280236537e06c7accaffabf8fb407f93dd1c834f",
      "tree": "a00be2fd73851a7a7e09b56e52c173662297641e",
      "parents": [
        "cea5c8a6099cff4f3ceccb3309a522bb1cf377b4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 13:18:32 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 13:18:32 2016 -0700"
      },
      "message": "POSIX says \u003csys/types.h\u003e should make all the pthread_* types available.\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html\n\nChange-Id: I606194e15ceaa3129f266a9a460c358eaa8bf686\n"
    },
    {
      "commit": "fd936ae0257dd3db5ec5fcff46188993bec7a65d",
      "tree": "20ce6e21b87dfa819ba79354344b4310ad94b8cc",
      "parents": [
        "166f875eabdd2b7c508fc4ed1789a0d37fb1bdce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:16:34 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:16:34 2016 -0700"
      },
      "message": "POSIX says \u003cfcntl.h\u003e makes SEEK_* visible.\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html\n\nWe already had two copies of these constants, so time to factor them out\ninto bits/.\n\nChange-Id: I213c0d2372e41463593f878d338002b8eaa918cd\n"
    },
    {
      "commit": "7292725bcd291bda814554fcb9d7c026619c0e49",
      "tree": "a41f6ea4be5ac695f087a387c12fd468e03713a6",
      "parents": [
        "931be5a64d71d09334f963e7ba7efd1d6049e648"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 27 14:05:10 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 27 14:05:10 2016 -0700"
      },
      "message": "Admit that we don\u0027t actually support thread priority inheritance.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d218323\nChange-Id: I6c69b0fbb8414e7cc2deeb8be50b6af4830ed55e\n"
    },
    {
      "commit": "0fe88858f018e74921b8412acacda83870f742ed",
      "tree": "00741dc7cadccae615686c13a5c86f70bff86a49",
      "parents": [
        "61bd7cb6e975c48450350ba5c49862310c2f4762"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 27 10:45:05 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 27 10:45:05 2016 -0700"
      },
      "message": "Clean up \u003cuchar.h\u003e and \u003cwctype.h\u003e transitive includes.\n\nBug: http://b/30367366\nChange-Id: I63212a34c54ca07223a15aa5be4da3bdc6aa38a8\n"
    },
    {
      "commit": "3b2096a9d6edd74622b94cacc76b77100f919b84",
      "tree": "1e5db3202e110172e7db1ced6d87cf8ceca7ed0b",
      "parents": [
        "7101c48f20f2f19dd1d314d23251fb52995a0870"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 18:57:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 18:57:12 2016 -0700"
      },
      "message": "Remove unnecessary \u0027extern\u0027s.\n\nChange-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03\n"
    },
    {
      "commit": "203e13d97de840e01eded6a267fef9f245cf3a15",
      "tree": "83517885755d8c28f7f6934bff67f7ad36addf39",
      "parents": [
        "767e8147d7f38bd9a23100ec9fa07b6a14a8b680"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 14:56:18 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 17:01:54 2016 -0700"
      },
      "message": "Always include \u003csys/cdefs.h\u003e.\n\nI made a mistake caught by code review earlier, so let\u0027s try to be\nsafer by default.\n\nThis patch also moves all our \"forwarding\" headers to the guardless\njust-include-the-other-thing style that we usually use. (Where we\nhave a comment explaining where the header comes from, I\u0027ve kept\nthat.)\n\nChange-Id: I37342cf5e2563c6a269b2ba61a697069b1c7913b\n"
    },
    {
      "commit": "508d292f8deb2933914b0ceef56908cdd4ee589f",
      "tree": "e740e08d5709b42c3198d9345771dfc2f9903fd5",
      "parents": [
        "91f33cd5ae3f09b7d2e614f5d0809037c1708db1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 21 16:38:43 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 21 16:38:43 2016 -0700"
      },
      "message": "Only define sa_family_t once.\n\nChange-Id: Icf700910c836d22c8a27ad026ec8af11697edd5a\n"
    },
    {
      "commit": "d2f725eaedc9c98c353885f20c0ff7ef13e3477f",
      "tree": "201e7973c24424b8a11bedcd123f01fdf119837f",
      "parents": [
        "098d8ef5b224841d93960f1cd02c73d853b6344c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 15 15:47:47 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 18 12:48:39 2016 -0700"
      },
      "message": "Don\u0027t declare SYS_* constants for unavailable __NR_* constants.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d215853\nChange-Id: Iaaa3ce888deb8d032208bf636b7badaed6a72d30\n"
    },
    {
      "commit": "3338ee52576632fd96bc131c6e943fa6f9a62139",
      "tree": "81b83477cfd89c07849a1c4f8c7a1179f2ca80a6",
      "parents": [
        "3fb1b37bbae91652f2fe93fde1284e80f2d57937",
        "8aabbd7f63286e87fe95b672fad814b4625efa85"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 02 22:41:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 02 22:41:34 2016 +0000"
      },
      "message": "Merge \"Move glibc-syscalls.h into bits/.\""
    },
    {
      "commit": "8aabbd7f63286e87fe95b672fad814b4625efa85",
      "tree": "28fc8fbc4a8b65da2383b811f57e1466cd640282",
      "parents": [
        "ec4671928c39b14f7f22c12ffef0e0bcdd58edfe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 02 12:47:58 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 02 12:47:58 2016 -0700"
      },
      "message": "Move glibc-syscalls.h into bits/.\n\nBug: http://b/28519060\nChange-Id: I0de1ba16b16eb7b780de89954d3fa45cca2f5295\n"
    },
    {
      "commit": "34c599a8b0b04f66b065c4d84b809f74dd44382d",
      "tree": "3f7e5541c600bb4f6f3f733f68d6ae697076ca86",
      "parents": [
        "14adff1cfa06a3d4d3281a9bf7848b556d84c20d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 13:45:25 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add __INTRODUCED_IN_FUTURE for unreleased APIs.\n\nFuture API levels aren\u0027t known (e.g. 25 could be a maintenance release\nof N that doesn\u0027t contain any bionic updates), so use a placeholder\nmacro that we can find and replace with the actual API level before each\nrelease.\n\nBug: http://b/28178111\nChange-Id: I667fe53ea1ac49b64135170fc30d5dbe9df94e29\n"
    },
    {
      "commit": "14adff1cfa06a3d4d3281a9bf7848b556d84c20d",
      "tree": "ce1fb2867f69e49f57d0bbe8a9099b09beda0c19",
      "parents": [
        "5a3d5cac642f9e58b2c510eab23789fb4fc3a753"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 12:00:55 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add versioning information to symbols.\n\nBug: http://b/28178111\nChange-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c\n"
    },
    {
      "commit": "7ba106c784e0566f4e246c1d814f32eb31467f86",
      "tree": "f4cef7e2b13dce81973908c96e2836d643a1f258",
      "parents": [
        "bd8773d19d96cd8794f944ce5f93f4feb43e386b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 28 18:22:06 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 28 18:22:06 2016 -0700"
      },
      "message": "Fix \u003cwctype.h\u003e.\n\n* Fix the return type of towlower_l/towupper_l.\n* Implement wctrans/wctrans_l/towctrans/towctrans_l.\n* Move declarations that POSIX says are available from both \u003cwchar.h\u003e and\n  \u003cwctype.h\u003e to \u003cbits/wctype.h\u003e and include from both POSIX headers.\n* Write the missing tests.\n\nChange-Id: I3221da5f3d7e8a2fb0a7619dc724de45f7b55398\n"
    },
    {
      "commit": "8c8ef5965d6bc684d78299ff88062e6e87df5b48",
      "tree": "38e073c425c88f08ed7c46219bc7698cc3caf158",
      "parents": [
        "752a82c9ed4339994755f71b52c825f600dc4aa5"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 16:33:30 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 18:02:00 2016 -0700"
      },
      "message": "Move \u003csys/sysconf.h\u003e to \u003cbits/sysconf.h\u003e.\n\nAlso remove unneeded declaration of sysconf in \u003cunistd.h\u003e.\n\nBug: http://b/28067717\nChange-Id: Ife4692e48ca97480e422db0686c61133e1d619aa\n"
    },
    {
      "commit": "7449e599d831f2164cadbb7c317e97b20e7ed5bb",
      "tree": "25b132738d14b21881fc9d2aee7bd5611c1da456",
      "parents": [
        "a6c85467dd1b59cfe36f2e64ac2d0972d46400d4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 16:37:49 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 18:01:59 2016 -0700"
      },
      "message": "Extract getopt and friends to \u003cbits/getopt.h\u003e\n\nBug: http://b/28067717\nChange-Id: If19653d0da8b964c43768aa1051f9c926b3c6acb\n"
    },
    {
      "commit": "98e574c8de29b2427479a427177ff78c1bc2ee34",
      "tree": "933ac42778724a0039c3b86cd4ca4e58b9029962",
      "parents": [
        "ee8d16999706a642bb6e348084fdbb2a35e39770"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 14:19:03 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 18:01:59 2016 -0700"
      },
      "message": "Extract ioctl to \u003cbits/ioctl.h\u003e.\n\nBug: http://b/28067717\nChange-Id: I93625d19fa5a033ab22c650d536e98674f0a8d9d\n"
    },
    {
      "commit": "ee8d16999706a642bb6e348084fdbb2a35e39770",
      "tree": "72fb1cdaefbd9072a0c0f6d474ebb96c9cbbd552",
      "parents": [
        "c3cec27ad75544fdd1a5efc78260404a7de564bf"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 14:16:30 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 18:01:59 2016 -0700"
      },
      "message": "Extract fcntl to \u003cbits/fcntl.h\u003e.\n\nBug: http://b/28067717\nChange-Id: Id8c19056244660a6e0276a5614282af8d41fbe1e\n"
    },
    {
      "commit": "c3cec27ad75544fdd1a5efc78260404a7de564bf",
      "tree": "cb8ea8ee6fe4a6ac2929ffa58261d0a5b57bc3d0",
      "parents": [
        "0d8e14190680b20e8a0fa75c63075ef73a922efd"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 13:39:49 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 18:01:59 2016 -0700"
      },
      "message": "Extract strcasecmp and friends to \u003cbits/strcasecmp.h\u003e.\n\nBug: http://b/28067717\nChange-Id: I76bab098d4c35d07a7a108055c43c820087f9253\n"
    },
    {
      "commit": "0d8e14190680b20e8a0fa75c63075ef73a922efd",
      "tree": "123441747b355352cae41c1d8a355e39c77fb3ce",
      "parents": [
        "2675a9e343fa749aba57b1bfcc8f7f1f5db48c72"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 13:38:48 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Apr 07 18:01:59 2016 -0700"
      },
      "message": "Make \u003cbits/lockf.h\u003e compile standalone.\n\nBug: http://b/28067717\nChange-Id: Ida9f251ff23f9e32dcd0c38eb23b6a3bffea322c\n"
    },
    {
      "commit": "5704c423c81790195161c1757ae79da188590c51",
      "tree": "66ebd378fb496400d35ad38a8c4eb25931ad30f2",
      "parents": [
        "ac67b4eb7c70ea668abb32298b0cb16920a32a66"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 25 18:06:24 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 11:09:44 2016 -0800"
      },
      "message": "Implement POSIX lockf.\n\nThis has been requested a few times over the years. This is basically\na very late rebase of https://android-review.googlesource.com/45470\nwhich was abandoned years ago. One addition is that this version has\n_FILE_OFFSET_BITS\u003d64 support.\n\nPOSIX puts this in \u003cunistd.h\u003e. glibc also has it in \u003cfcntl.h\u003e.\n\nBug: http://b/13077650\nChange-Id: I5862b1dc326e326c01ad92438ecc1578d19ba739\n"
    }
  ]
}
