)]}'
{
  "log": [
    {
      "commit": "75edf16f4d10d21b606eaee2987b3c7a2ec926a3",
      "tree": "f4f1d3af60a5a5c3203587ab81a3f56c117b8703",
      "parents": [
        "5e85d1b290877201174fdb2f09226b5bd34b80a9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 13 13:55:17 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 13 14:00:56 2019 -0800"
      },
      "message": "Update the native allocator document.\n\nAdd extra information I\u0027ve been using to evaluate scudo.\n\nTest: NA\nChange-Id: Ie7ee65890b1a3804c38ba38de504144d43e410b2\n"
    },
    {
      "commit": "502dc0b9c3c39e5a1def8d074b209395a65ba502",
      "tree": "333dbde6a512f94a5f40b1be5ec0c8b26844db4b",
      "parents": [
        "31600e84249769cc51dda49c78400887fab64f7e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 12 21:06:07 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 12 21:06:07 2019 -0800"
      },
      "message": "Update docs/status.md function counts for recent releases.\n\nTest: N/A\nChange-Id: I99b7227334d0858f19ec7544a255fe47f265d810\n"
    },
    {
      "commit": "51863b36714ea93a6ad792b2ec0cf9be18a8ce91",
      "tree": "5e2498720c1aec97315834d1d392883111bb6f9f",
      "parents": [
        "6e5d06336a4d1e013c921437d59918b66fa5fd6a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 25 15:24:16 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 25 15:27:12 2019 -0700"
      },
      "message": "Add section about libmemunreachable tests.\n\nTest: NA\nChange-Id: I0dcb8bbb7a598c44201281c7d493023e7d25c153\n"
    },
    {
      "commit": "2f5fc3372a2fd0c571546d68b74d52895dd5ced2",
      "tree": "f1c5c7ee1877864ec83faafd03749a77319784f5",
      "parents": [
        "919dc05d66b129ad6f34fad95322efb6de245754"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 17 14:21:03 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 17 15:20:55 2019 -0700"
      },
      "message": "Updated memory_replay description.\n\nThe description of memory_replay talks about unzippping the trace\nfiles, but this is no longer necessary. This language has been\nupdated to reflect this.\n\nTest: NA\nChange-Id: Id808f9bd1286284c8de12b19c08eb8677c76dd53\n"
    },
    {
      "commit": "80e9f65c040873c2aa016bfb0db5984e9db46f18",
      "tree": "4999055583e9f535e4f514d1534834d7c47d074c",
      "parents": [
        "95712059371aa522c80f1cab3cc3eb5431cc7f71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 14 12:19:29 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 13:30:12 2019 -0700"
      },
      "message": "Remove __ANDROID_NDK__ from bionic, and document our #defines.\n\n__ANDROID_NDK__ is moving into the NDK\u0027s \u003candroid/ndk-version.h\u003e\ninstead.\n\nTest: treehugger\nChange-Id: I192016165a929547009d15dbcc30e8f6dad1ac88\n"
    },
    {
      "commit": "5f112cd7564f092c93c877e526d269ec68d47922",
      "tree": "d37d23c086a530131baa455c3a815d2245ea7d73",
      "parents": [
        "1491521a6824e80e8499d706707a9a58f138dd04",
        "8f3f191bf33dbd68d9e03cb24aef50722cc62b0c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 16 02:08:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 16 02:08:22 2019 +0000"
      },
      "message": "Merge \"Link our two main developer-facing docs together.\""
    },
    {
      "commit": "8f3f191bf33dbd68d9e03cb24aef50722cc62b0c",
      "tree": "73a836a6cb7f93ddcc670fc88cb81a5d4536fb35",
      "parents": [
        "639ad55176c78bfd70c3786a92a05dd3d2299953"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 15 08:19:49 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 15 08:19:49 2019 -0700"
      },
      "message": "Link our two main developer-facing docs together.\n\nBug: http://b/139329827\nTest: N/A\nChange-Id: I38e05f1a7eaa8ff31b503541e34f2e362cd4722e\n"
    },
    {
      "commit": "aa22c0cb0c25d6462547bc1557c08a18b176147b",
      "tree": "1cd96da2588ffdd0a55f32c19fe63fbe08b2dde7",
      "parents": [
        "6864fc8d065f647b56297e71d928aab0800d0879"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 14 15:17:26 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 14 15:17:26 2019 -0700"
      },
      "message": "Update location of trace files.\n\nTest: NA\nChange-Id: I27f98b84b7701b8747d22dbdfbfa074083c36bc1\n"
    },
    {
      "commit": "05197f7d032ce70f0a23fdaee2e88a7cc54298a3",
      "tree": "cd355581b669a0e82a454c311ebd060bdba03ef3",
      "parents": [
        "592b5f52fd5f027817516b4d0945c2b4537518e4"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 07 14:27:52 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 07 15:34:11 2019 -0700"
      },
      "message": "Change all references to PSS to RSS.\n\nRSS is the real measurement by which an allocator should be measured\nsince RSS is the real memory consumed by the process. PSS is a shared\nvalue.\n\nFor memory_replay, PSS and RSS should be the same, so this didn\u0027t really\nmatter in practice, but it\u0027s better to use the correct name of RSS.\n\nAlso, add a small section about fragmentation.\n\nBug: 138394907\n\nTest: NA\nChange-Id: Ic6f982f9c4619f452342e7c105818e33b8b85e44\n"
    },
    {
      "commit": "da32ff104b1863b3052f355cce711c92c2cfc950",
      "tree": "f01d032271e5b1261882a5724ed142cf9d0892ed",
      "parents": [
        "5d3ba4ed9dc0b3e37d4979cbea34757e29d60715",
        "3d24d2b0883ea828443fd7c36d1b262410618aca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 06 17:08:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 06 17:08:13 2019 +0000"
      },
      "message": "Merge \"Add memfd_create(2) and mlock2(2).\""
    },
    {
      "commit": "3d24d2b0883ea828443fd7c36d1b262410618aca",
      "tree": "90ddca40aa1d86f1c182462d5b3386a4375dcc3f",
      "parents": [
        "a5c9c7c56542b6471575148b8a3654078b180940"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 13:53:01 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 16:31:08 2019 -0700"
      },
      "message": "Add memfd_create(2) and mlock2(2).\n\nThese are old enough now that the latest devices will have kernels that\nsupport them.\n\nAlso add basic doc comments to \u003csys/mman.h\u003e.\n\nTest: treehugger\nChange-Id: I1b5ff5db0b6270f5c374287cac1d6a751a0259f5\n"
    },
    {
      "commit": "f0d9271fe2b7120d3b14204456e72c939de8256b",
      "tree": "75f0b8effe162648711d1906388030f9c7b17f52",
      "parents": [
        "a5c9c7c56542b6471575148b8a3654078b180940"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Aug 05 14:10:17 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Aug 05 14:13:25 2019 -0700"
      },
      "message": "Update docs for clockwait/clocklock functions\n\nTest: n/a\nChange-Id: Ie4853912c9ed63d29121e62406682896012962ec\n"
    },
    {
      "commit": "05b675e8bfec6e33138fd2e1b2e0e16afe745b37",
      "tree": "2de2c98f748581531eaa6b0bb92adbe30f891f36",
      "parents": [
        "c2a722f5d77911afd199f452b03d9c15fbe645f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 13:01:06 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 09:09:59 2019 -0700"
      },
      "message": "Add renameat2.\n\nBug: http://b/127675384\nTest: new tests\nChange-Id: Ia2e3d5679180391ca98e62fa429fa11cbf167507\n"
    },
    {
      "commit": "afce4e897fdd8ed29bcfacf552216e1e106409c0",
      "tree": "c23d580fd024577d6c6dda50e064d12234668714",
      "parents": [
        "25f0e8ad2d6e5396abf620652d5c33162ecc7068",
        "4316d43f4d45d2e029d9c1a058fd451073ed4e06"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 28 19:55:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 28 19:55:31 2019 +0000"
      },
      "message": "Merge \"Add doc describing native allocator.\""
    },
    {
      "commit": "4316d43f4d45d2e029d9c1a058fd451073ed4e06",
      "tree": "d96aa254548b3d1b431b42708e76f4b103d7fc18",
      "parents": [
        "b2bd7c575eaa91e35ff40450bb4c514a2088a5d7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 27 00:08:23 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 28 10:33:53 2019 -0700"
      },
      "message": "Add doc describing native allocator.\n\nThis includes tests that a native allocator has to pass, and the ways\nto benchmark a native allocator on Android.\n\nTest: NA\nChange-Id: I5e1f4b3eea46ee2240e63a487ca3dfabecff81c0\n"
    },
    {
      "commit": "2671de289604e7fbee9ff2aa89dd78b3ca3382b7",
      "tree": "f0d6e8533f53e2432b0b68c0b84df703bfad858a",
      "parents": [
        "b2bd7c575eaa91e35ff40450bb4c514a2088a5d7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 27 20:42:38 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 27 20:42:38 2019 -0700"
      },
      "message": "Fix usage of () and [].\n\nThe usage was reversed, [] is used for the name and () is used for the\nlink destination.\n\nTest: NA\nChange-Id: I07bf8645a888d5690d6c3d58edc3899b3e287df4\n"
    },
    {
      "commit": "420671135237cdf40c98d2336fb8712b7f0a2861",
      "tree": "c4d85a256eb46c8aa1a00a1675ac31f60498e313",
      "parents": [
        "30bcaae2b6bcdeadd42066fe5b6f5a49bd5b9b07"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 18 14:27:24 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 24 09:12:29 2019 -0700"
      },
      "message": "threads.h: Add C11 thread support.\n\nFreeBSD, glibc, and musl have all implemented C11 threads at this\npoint. POSIX is looking at how to align with it. Probably time to jump\non the bandwagon ourselves...\n\nImplemented in the same style as \u003ctermios.h\u003e so we can provide this\nfunctionality even on older API levels. This does mean that this is\nstrictly more expensive than calling pthread functions directly.\n\nAlthough this isn\u0027t in POSIX yet, assume that it\u0027s going to be basically\nthe same as C11 and add the header test anyway. We should revisit this\nwhen POSIX actually adds \u003cthreads.h\u003e.\n\nTest: new tests\nChange-Id: I8602d67ce71ca7f8ed1529daa0a8ea1feb083dd6\n"
    },
    {
      "commit": "a1fb15bb67bcdf426c012919c096e7235b551f40",
      "tree": "0410e1c0d036b886cb97c315a67ebc828a5b64fb",
      "parents": [
        "e08288465ece24860d61788b975a8267a4594379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 19:07:40 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 26 19:07:40 2019 -0700"
      },
      "message": "strptime: support everything that strftime supports.\n\nOur strptime was missing `%F`, `%G`, `%g`, `%P`, `%u`, `%V`, and\n`%v`. Most of these are already supported upstream (and I\u0027ve just pulled\ntheir current implementation), but some aren\u0027t. We\u0027re horribly out of\nsync anyway, so I\u0027ll upstream the missing pieces and then try to get us\nback in sync later.\n\nTest: new tests, but originally found by toybox trying to use %F\nChange-Id: Ib1a10801a7a3b9c9189440c3b300109bde535fd9\n"
    },
    {
      "commit": "b282a6d4d32b5f88a1042aaab8c208ec4f35235b",
      "tree": "1c91d2e39f6858891dd9c8be7163c2f3b86f043e",
      "parents": [
        "ebdf4c19f9e034d7ec8e0e57539890d5c93eaed1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 20 11:21:46 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 20 11:23:53 2019 -0700"
      },
      "message": "Document various libc behavior changes.\n\nTest: N/A\nChange-Id: I3044c394180058ba500762239b16a4c740caca44\n"
    },
    {
      "commit": "a22f5d5175df5c42ec86d2c2db250edf1f64084c",
      "tree": "66d2980a1b04626c7e4fc1437e96194b958ea8f8",
      "parents": [
        "0771b752f1b955e7ded6ccbbf825b0ae93439eb5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 16:40:59 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 23:56:23 2019 -0800"
      },
      "message": "Make aligned_alloc match the standard.\n\nJemalloc does not verify that the size parameter is a multiple of\nalignment. Fix this since it only went into P.\n\nFix the unit tests, and fix malloc debug/malloc hooks to handle this\nnew restrictive behavior.\n\nBug: 126944692\n\nTest: Ran bionic unit tests.\nTest: Ran bionic unit tests with malloc hooks enabled (no new tests fail).\nTest: Ran bionic unit tests with malloc debug enabled (no new tests fail).\nTest: Ran malloc debug unit tests.\nChange-Id: I4d50785928815679c781ca729f998454d76b9192\n"
    },
    {
      "commit": "9491c54619e254823730c56abeb5ea21e295c624",
      "tree": "8478b6d1f7bf1f8bfd0495e09b32be6852555c3d",
      "parents": [
        "bf925b0580b63f0746303eb234d2684aadc29dc0"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Nov 09 15:18:05 2018 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Nov 09 15:24:16 2018 -0800"
      },
      "message": "Publish the current draft of my ELF TLS doc\n\nI have a script that converts the internal Google Doc to this markdown\nfile.\n\nBug: http://b/78026329\nTest: review document\nChange-Id: I16cfa60f1e480f859eb79cb0e5f0c519f5622cfd\n"
    },
    {
      "commit": "2d0b28bc0da1ade2de2b72093dbdb740028fce7c",
      "tree": "75a1b66144e65f7141e3cf9ddaaae0049b07ca11",
      "parents": [
        "7562f1ab87e4b51042d185345248f1a54885489a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 11:23:00 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 23 11:23:00 2018 -0700"
      },
      "message": "Add getloadavg(3).\n\nLets us build ninja with bionic.\n\nBug: N/A\nTest: ran tests\nChange-Id: I97eef1247d794b58a2b9aee4851551632e5a4e48\n"
    },
    {
      "commit": "b177085ce7219562eecf77f2e8de49f8f2605005",
      "tree": "573947a27714273f7d78e9c6f85c9fd30e63dba9",
      "parents": [
        "e4e3de819d05481422f8bb9925486118924bf4a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 18 12:52:42 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 26 14:24:18 2018 -0700"
      },
      "message": "Add reallocarray(3).\n\nOriginally a BSD extension, now in glibc too. We\u0027ve used it internally\nfor a while.\n\n(cherry-pick of e4b13f7e3ca68edfcc5faedc5e7d4e13c4e8edb9.)\n\nBug: http://b/112163459\nTest: ran tests\nChange-Id: I813c3a62b13ddb91ba41e32a5a853d09207ea6bc\nMerged-In: I813c3a62b13ddb91ba41e32a5a853d09207ea6bc\n"
    },
    {
      "commit": "ce9d653b38868a73260d141acbf3ddd8c5d8e178",
      "tree": "1f1367d6c59031427eb9b7911439f1f1d7ea722b",
      "parents": [
        "a02d631163860c795cac7a0428ad8abb9ed3b747",
        "d747bb8f3f7061786db9ed77430a572361f263af"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 20 19:22:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 20 19:22:03 2018 +0000"
      },
      "message": "Merge changes from topics \"fdsan_ziparchive_type\", \"fdsan_java_socket\"\n\n* changes:\n  fdsan: improve documentation.\n  fdsan: add type for libziparchive\u0027s ZipArchive.\n  fdsan: add types for Java sockets.\n"
    },
    {
      "commit": "d747bb8f3f7061786db9ed77430a572361f263af",
      "tree": "cf4254af7d55bdb17da4cd1d7c58c9fc1fec7c29",
      "parents": [
        "5fa9df8efc96667564cc5289b176592bd7882953"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Sep 18 13:38:31 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Sep 18 13:42:08 2018 -0700"
      },
      "message": "fdsan: improve documentation.\n\nFix a race condition in the example, and add a linearized version to\nmake it more clear what\u0027s going on.\n\nTest: none\nChange-Id: Id9158e4fd407b676ef364e7076985de3ad477457\n"
    },
    {
      "commit": "670ea7aca905c5a93828b7c401ef320d65b8999f",
      "tree": "3e061b8d126557bf12baaafa6ed8062885b98d4a",
      "parents": [
        "4d9814909677805d04d113b7af24b3edf655a712"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 14 17:05:01 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 14 17:05:01 2018 -0700"
      },
      "message": "Explicitly say `pthread_cancel` in the docs.\n\nBug: http://b/33943372\nTest: N/A\nChange-Id: If71691f7ff20c9b8c14de15692543bbd858c9aab\n"
    },
    {
      "commit": "01416ba1120c8ab7697fbe64eb1aa90f4faf10bd",
      "tree": "b7c56d3242bdda64db4802f431d0317d9428658e",
      "parents": [
        "0326f063b5b275bf0721b942b06a04b7ec719e16"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 06 16:23:14 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 06 16:23:38 2018 -0700"
      },
      "message": "Fix mistake in fdsan documentation.\n\nFile descriptors are POSIX, not C.\n\nTest: none\nChange-Id: Idc3c32c60f9c61e8e68aabbc4589a6c68e156e4b\n"
    },
    {
      "commit": "b64196a9bbf7578c1328faa88b6020b0384f6d1c",
      "tree": "4ec18897221f00a68deff9bc3df016e1ae2957ea",
      "parents": [
        "e57399d4a132df84ac62a6539eebdcf10553b170"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Aug 31 00:32:46 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 06 14:55:12 2018 -0700"
      },
      "message": "fdsan: add documentation.\n\nTest: none\nChange-Id: I7dabd8f5420c757b6504254a6414da8e877d475e\n"
    },
    {
      "commit": "86bce192e90c827ffcae2c82d199d7ff27aedb86",
      "tree": "aaac107ea9b57b3bac2bdc819df879a958d844c6",
      "parents": [
        "74934aaf10d629de477095f0b92c467849f89638"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 05 12:00:55 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 05 12:01:15 2018 -0700"
      },
      "message": "Document various post-P bionic changes.\n\nHistorically we haven\u0027t documented many behavioral changes, but it\u0027s\nprobably useful to record that information before it\u0027s lost (even if,\nlong term, it might be more useful in the man pages or the doc comments).\n\nBug: N/A\nTest: N/A\nChange-Id: Iaa4f651fd6576298d848894b61285ef95879deb9\n"
    },
    {
      "commit": "3876ade8420b9e6815d8afbe66618ccc92d04411",
      "tree": "01167c8d08da7d9ed4e10d6b5fb7debcf22723f0",
      "parents": [
        "003521af4760215c9c3b8ba80c88dd3b3c87ab67"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 14:25:32 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 30 14:25:32 2018 -0700"
      },
      "message": "Fill out historical \"what was added when\" information.\n\nBug: N/A\nTest: N/A\nChange-Id: Ifa1807c6bb61dea2a4831785492b13118c66490d\n"
    },
    {
      "commit": "a473be239570817b065dc7acbc6968c3ad402133",
      "tree": "e341a54d393bff19fa792d3a3b6eab0a185a2a78",
      "parents": [
        "782cd01b098f86bef787955d5264e694d0e7e807"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 06 12:18:32 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 06 12:18:32 2018 -0700"
      },
      "message": "Fix libc assembler documentation.\n\nTest: NA\nChange-Id: I71485a3a44a56f2ff7ed590aec171464b57f56f6\n"
    },
    {
      "commit": "782cd01b098f86bef787955d5264e694d0e7e807",
      "tree": "dd054bb651836caedcc20f20d405b3f309217eb7",
      "parents": [
        "ea6aff66fa61f973e5cae0c8ebeed218ab316e19",
        "74866e160dd3b0d31e31befb36f334d4acc6e567"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 06 17:27:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 06 17:27:31 2018 +0000"
      },
      "message": "Merge \"Revert \"Move android-changes-for-ndk-developers.md into docs/.\"\""
    },
    {
      "commit": "74866e160dd3b0d31e31befb36f334d4acc6e567",
      "tree": "d91763e382ec8242dcf293f1ac3f9eb441743666",
      "parents": [
        "1975196c871f20928c20b4ab23e4f3ee6b33390a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 06 15:40:04 2018 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 06 15:40:04 2018 +0000"
      },
      "message": "Revert \"Move android-changes-for-ndk-developers.md into docs/.\"\n\nThis reverts commit 1975196c871f20928c20b4ab23e4f3ee6b33390a.\n\nReason for revert: https://android.googlesource.com/ doesn\u0027t follow symlinks :-(\n\nChange-Id: I58038a03388ab5257d301debb494ce354013acfe\n"
    },
    {
      "commit": "65f82092a17518080178ff7004cc6db362ebfbcd",
      "tree": "33f3d115d6bbec22c89dd3b27b82a9df8149392a",
      "parents": [
        "7fe9001364ede6aece4119059ef8199d39c74159",
        "af455ac83d82cdca5f8a89205735e9e7b4ef15e0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 02 19:27:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 02 19:27:05 2018 +0000"
      },
      "message": "Merge \"Add doc about verifying libc assembler routines.\""
    },
    {
      "commit": "af455ac83d82cdca5f8a89205735e9e7b4ef15e0",
      "tree": "30fade4a0579e03aba43c427cd5532ab63d31dab",
      "parents": [
        "78b4a82d7d62f548b707f92f5dc5f339bb1fadc4"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 01 15:21:16 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 01 20:17:28 2018 -0700"
      },
      "message": "Add doc about verifying libc assembler routines.\n\nTest: NA\nChange-Id: Ic3576f9c063a11d5c3f5fdb093b4d9dd2a1f5dd7\n"
    },
    {
      "commit": "1975196c871f20928c20b4ab23e4f3ee6b33390a",
      "tree": "f1959149eb7f9d0b8a120b4cadbd465802b49cd3",
      "parents": [
        "b0c8a01de1dafc1e47f74895d00ca82429f851b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 01 13:07:17 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 01 13:07:17 2018 -0700"
      },
      "message": "Move android-changes-for-ndk-developers.md into docs/.\n\n(But keep a symbolic link so we don\u0027t break the web.)\n\nBug: N/A\nTest: N/A\nChange-Id: Ib0c8ef80cb4b6836a465d897ffe6d78e11f09f46\n"
    },
    {
      "commit": "a7119af33ef71ae24d809b5ea52c1ba913f97a6c",
      "tree": "085450dbe59e2b07a6d86d7bfe062f93a4d6de9c",
      "parents": [
        "f98d87b831958cc71ef7f6b6fa18a7a2a2d24737"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 17 13:26:14 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 17 13:26:14 2018 -0700"
      },
      "message": "Update libc status documentation.\n\nBug: N/A\nTest: N/A\nChange-Id: Ied9659f0388a4affa65f0948b3e4a58d0dca5605\n"
    },
    {
      "commit": "07f62385b65856552ad8f1019e4261df3badc5cb",
      "tree": "b0b16aa12e470f2e1edcc0f59fd48ec37118551a",
      "parents": [
        "67b5979930ba81477cf5f835b1fe23563ee9c761"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 01 13:13:47 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 01 13:13:47 2018 -0700"
      },
      "message": "Document FORTIFY.\n\nHilariously, our blog post didn\u0027t actually say how to turn it on :-)\n\nBug: N/A\nTest: N/A\nChange-Id: I6e773e88c32a70b0f8b8b6d105fce74d68ebf5cd\n"
    },
    {
      "commit": "61c169e5dba2104c622ae6f253cbd8c6a6278bee",
      "tree": "c5de3b18ecb4e2207530a79105e6fa85e4c92072",
      "parents": [
        "48b688b1b12dce5dab78220ca28a3f5fd94276ef"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 15:43:37 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 15:44:42 2018 -0800"
      },
      "message": "Separate the new P functions from the new P behavior in the docs.\n\nBug: N/A\nTest: N/A\nChange-Id: If3810a1e4d3ab2a5bd5f83a1ab6bbcc1a729f685\n"
    },
    {
      "commit": "48b688b1b12dce5dab78220ca28a3f5fd94276ef",
      "tree": "ccc7ab5522e8b02939aaa32e05c39f44d3650fab",
      "parents": [
        "e09c90dec1a152c6714f7e23c993d29a6bcf8597"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 15:10:19 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 15:10:19 2018 -0800"
      },
      "message": "Document the strptime %s change.\n\nBug: https://issuetracker.google.com/37128336\nTest: N/A\nChange-Id: I9b35c14d84b9f4ec85b9d54af47314d0442ebde2\n"
    },
    {
      "commit": "3e235911c9cf5062adbb73efb53fe5ed712d7c53",
      "tree": "cdd84807bba4a7d0b0fd947555b2edaa2618df95",
      "parents": [
        "b44bd827abf2b870ebf4a0f6b126098a46bf42ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 01 14:21:51 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 01 14:45:15 2018 -0800"
      },
      "message": "Add `struct sigaction64` and `sigaction64`.\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: I47b0560a30aa33a9b1f1978dfb7f84d2e3d389b8\n"
    },
    {
      "commit": "5905d6f8797056ca4178d42bf1220b6692e557a5",
      "tree": "222848ae0ced32fcf2028a2c6502b4a763c83830",
      "parents": [
        "d435d256da57fdf4278b3198720d881f3edcf452"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 30 15:09:51 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 30 18:47:16 2018 -0800"
      },
      "message": "Add `sigset64_t` and accompanying functions.\n\nThis doesn\u0027t address `struct sigaction` and `sigaction`. That will\ncome later.\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: I4134346757ce3a4dac6feae413361cec16223386\n"
    },
    {
      "commit": "13550b8c57c927b0738b8e69785c7e3e1cbb499b",
      "tree": "b54424a34d04bf4da86d4c767958a026a3cf9098",
      "parents": [
        "73871ad09be8a8259171d606c4e3e3cf08d4733c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 25 22:50:09 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 25 22:50:09 2018 -0800"
      },
      "message": "Update our status in light of recent additions.\n\nBug: N/A\nTest: N/A\nChange-Id: Ib0af6ba6bb270b03b3837c7e0fa2f9c02508c924\n"
    },
    {
      "commit": "2237b6b8ecd2ec45648b3dae07b98baa9ae27601",
      "tree": "e44cd92af6ae312b099f6493718e7283accdb2e0",
      "parents": [
        "3ba327198a42eecd2fbc2556d7d0fa41f8d6b17b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 13 15:18:15 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 13 15:25:55 2017 -0800"
      },
      "message": "Mention the POSIX header tests in docs/status.md.\n\nAlso add a couple of comments in the tests for ease of understanding\nwhen grepping for `__BIONIC__`.\n\nBug: N/A\nTest: N/A\nChange-Id: I7833a3ffbcc3badf9cec95f268d11a6d8a5ff9aa\n"
    },
    {
      "commit": "3d98adf9d029fffad2ce49b4bb2191f11244ebd0",
      "tree": "cdefcdc5a7a7bc71db695cdb3f9187acf5dfa3a9",
      "parents": [
        "8b9037a05ec63b4139bb9424086faa397472ee44"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 28 20:01:57 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 29 16:30:37 2017 -0800"
      },
      "message": "Address review comments from the previous change to this file.\n\nBug: N/A\nTest: N/A\nChange-Id: If79f622956c69a6881de237214ca05086dfe8b60\n"
    },
    {
      "commit": "a34817457feee026e8702a1d2dffe9e92b51d7d1",
      "tree": "a1ff7c6193a54bd11121fc34f0fe25a7b00b9ace",
      "parents": [
        "7d5777ef15136e4e12a27c85d7b06d6806b98e70"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 28 14:47:17 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 28 15:47:01 2017 -0800"
      },
      "message": "Improve the _FILE_OFFSET_BITS docs and link to them.\n\nWe\u0027re still seeing lots of confusion. People do seem to look as far as\nthe headers, but stop there. So let\u0027s try a bit harder to point them in\nthe right direction.\n\nAlso explicitly state that removing _FILE_OFFSET_BITS\u003d64 is the\nbehavior-preserving fix for compilation problems when upgrading to NDK\nr15 or later.\n\nBug: N/A\nTest: N/A\nChange-Id: I2d5c65b2fb5cccb9977901e51fea1ad2ccc0fd95\n"
    },
    {
      "commit": "6347acec09eb08cfe48d3eea541f69f408ae1f32",
      "tree": "ed6bd518fd08b260b52a9ab3f0948897b57bc989",
      "parents": [
        "de5f9a1c54eebd1b66a5dfeaffbe3e703e76c86e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 27 17:00:16 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 27 18:12:04 2017 -0800"
      },
      "message": "Document bionic\u0027s targetSdkVersion-specific behavior.\n\nBug: N/A\nTest: N/A\nChange-Id: I367edc592203e585a1d84a10ff3437ea3f2edd91\n"
    },
    {
      "commit": "37ad9597839c70a7ec79578e5072df9c189fc830",
      "tree": "f1f70a143c99b072b040f5592f1b42da464b35f8",
      "parents": [
        "e379a202504911d228ae07d9ba32c5a02274fe1d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 30 17:47:12 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 31 13:23:41 2017 -0700"
      },
      "message": "More missing _unlocked \u003cstdio.h\u003e functions.\n\nAlso simplify trivial one-liners like perror/puts/fputs, and clean up\nfread/fwrite slightly.\n\nFix perror to match POSIX.\n\nAdd basic perror and *_unlocked tests.\n\nBug: N/A\nTest: ran tests\nChange-Id: I63f83c8e0c15c3c4096509d17421ac331b6fc23d\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": "1d01fe8980d332a85f730bf2d2fef9dcf707c041",
      "tree": "41814512a8be716ba9ee7129beed7b1e85a9a23f",
      "parents": [
        "2e998d37ce5be9833c595bc97549793a81459ed4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 23 10:07:55 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 23 10:07:55 2017 -0700"
      },
      "message": "Fix LP32 large pid detection.\n\nBug: http://b/68046352\nTest: ran tests\nChange-Id: I89cb99173ca77e9457e677187430b61cedb55c04\n"
    },
    {
      "commit": "8c73809bf5fea7902c553eb78f9e2bb98b255177",
      "tree": "eed4d5c63a19008f7016ee0f1f6567dee99dd4dc",
      "parents": [
        "9f69fc714aa5dfbe0f711cb41dc7006b8ebbe43e",
        "61c9c8027537b48395dd995ce33f7a92d6f31b92"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 12:34:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 12:34:58 2017 +0000"
      },
      "message": "Merge \"Ignore sockatmark.\""
    },
    {
      "commit": "38bd71bab7fbd96f13e2d6daf3761a1c5658a809",
      "tree": "0f37fdd4f0ae2193d49950f3b8dbd933ddd08216",
      "parents": [
        "ac29d9f3b9636818773d60df18eb17e79783f774",
        "bdb1e89104f0e0f9e4f265b97f514acc30967286"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 19 23:07:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 19 23:07:36 2017 +0000"
      },
      "message": "Merge \"Update docs/status.md now fexecve is implemented.\""
    },
    {
      "commit": "61c9c8027537b48395dd995ce33f7a92d6f31b92",
      "tree": "e17fccbd528acc6b9e2ce5b33c95e8c4f76c37e9",
      "parents": [
        "ac29d9f3b9636818773d60df18eb17e79783f774"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 14:54:05 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 15:37:54 2017 -0700"
      },
      "message": "Ignore sockatmark.\n\nI was unable to find a single use of this anywhere, and the networking\nfolks point out https://tools.ietf.org/html/rfc6093:\n\n    \"\"\"\n    5.  Advice to New Applications Employing TCP\n\n      As a result of the issues discussed in Section 3.2 and Section 3.4,\n      new applications SHOULD NOT employ the TCP urgent mechanism.\n    \"\"\"\n\nApplications that think they want to do these tricksy things should be\nreferred to section 3.4, wherein it\u0027s noted that these semantics are\neffectively dead and it\u0027s middleboxes what killed \u0027em:\n\n    \"\"\"\n    3.4.  Interaction of Middleboxes with TCP Urgent Indications\n\n      As a result of the publication of Network Intrusion Detection System\n      (NIDS) evasion techniques based on TCP urgent indications [phrack],\n      some middleboxes clear the urgent indications by clearing the URG\n      flag and setting the Urgent Pointer to zero.  This causes the \"urgent\n      data\" to become \"in line\" (that is, accessible by the read(2) call or\n      the recv(2) call without the MSG_OOB flag) in the case of those TCP\n      implementations that interpret the TCP urgent mechanism as a facility\n      for delivering \"out-of-band\" data (as described in Section 3.1).  An\n      example of such a middlebox is the Cisco PIX firewall [Cisco-PIX].\n      This should discourage applications from depending on urgent\n      indications for their correct operation, as urgent indications may\n      not be reliable in the current Internet.\n    \"\"\"\n\nBug: N/A\nTest: N/A\nChange-Id: I73280db1d803bb7bd93954c13c653fa0cd3daff9\n"
    },
    {
      "commit": "ac29d9f3b9636818773d60df18eb17e79783f774",
      "tree": "b21bb54cdb9432056d9f83ffc8c80aea317ccdcd",
      "parents": [
        "1b6de8788918f806efd812b743dcc0bbdd232392",
        "fa386e0d1eb52478f11b7232d280919245c1616c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 19 21:49:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 19 21:49:29 2017 +0000"
      },
      "message": "Merge \"Add POSIX swab.\""
    },
    {
      "commit": "bdb1e89104f0e0f9e4f265b97f514acc30967286",
      "tree": "6634407fca03b5dfd257c7d343fe10a2647fd9c8",
      "parents": [
        "1b6de8788918f806efd812b743dcc0bbdd232392"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 14:35:18 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 14:35:18 2017 -0700"
      },
      "message": "Update docs/status.md now fexecve is implemented.\n\nBug: N/A\nTest: N/A\nChange-Id: Id0b9179a073f56e6264774db198b9e89d5e2ff95\n"
    },
    {
      "commit": "01a57d1eb6440f143bb72fb042148bf084d7668e",
      "tree": "beebf06a62cf6fa7b183cc359295819d02633a08",
      "parents": [
        "a1c30b98e99bd4ecd351c0bb0c4a52b39776242e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 14:00:13 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 15:45:04 2017 +0000"
      },
      "message": "Call fmtmsg/getdate/getdate_err useless.\n\nThey\u0027re POSIX, and they\u0027re implemented in iOS and glibc, but they\u0027re\nnot actually used in any codebase I have access to. They\u0027re *defined*\nin several places, and some of those places have a handful of tests,\nbut I couldn\u0027t find a single genuine caller.\n\nBug: N/A\nTest: N/A\nChange-Id: Id3e2c36183fcff323aa5a2e3a3dabaa8378fae56\n"
    },
    {
      "commit": "fa386e0d1eb52478f11b7232d280919245c1616c",
      "tree": "fcfb7d65c39ec91e1b1ec5bedeefe806861d21c4",
      "parents": [
        "ab9dc08bdd60d3709e1bce555625d923b32812be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:34:32 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 18 13:34:32 2017 -0700"
      },
      "message": "Add POSIX swab.\n\nSurprisingly to me, there are actual uses of `swab` in the codebases\nI have available to search, including one with a #ifndef __ANDROID__\naround it.\n\nBug: N/A\nTest: ran tests\nChange-Id: Ic91b78ae22bb65c346cb46dd38916f48d979abe0\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": "62446279f324d0b68aa786ad0caf06663282f1ee",
      "tree": "fad7a8dd42088dabea4bee46c80e9b25b8147b96",
      "parents": [
        "1a5a9b7bbcafbf7b3eab8b769ede3106ecf89d1f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 13 10:21:37 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 13 10:21:37 2017 -0700"
      },
      "message": "Ignore pthread_getconcurrency/pthread_setconcurrency.\n\nThey\u0027re marked obsolescent in POSIX, don\u0027t clearly mean anything, aren\u0027t\nportable because the values don\u0027t mean anything, and are no-ops in other\nC libraries that do \"implement\" them.\n\nBug: N/A\nTest: N/A\nChange-Id: I07342a0a6a5f6616a8432bfea24ed944c7971d27\n"
    },
    {
      "commit": "d036a8dd176ee212dc04d140975d84f941265288",
      "tree": "f6c58d6ebe9bfe0a7d53fa47efe503037b380dea",
      "parents": [
        "ddd6436df2adef2e195cf45634750a31c3e03bd1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 12 20:32:22 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 12 20:32:22 2017 -0700"
      },
      "message": "Ignore endutxent.\n\nWe have no utmp, and we\u0027re ignoring getutxent/setutxent, and endutxent\nbelongs in the same group.\n\nBug: N/A\nTest: N/A\nChange-Id: Ide032960a0f95750f3bb8f2e62a25e5e7d25c7b6\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": "0bfcbaf4d069e005d6e959d97f8d11c77722b70d",
      "tree": "c1c11870e6184884cf8f2dc6cf9cdf250cf5abde",
      "parents": [
        "8468a1be012f485c4f6579204704b52f5409cdc2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 28 09:18:34 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 29 11:07:36 2017 -0700"
      },
      "message": "Add new status document, based on internal wiki.\n\nAlso start breaking up the monolithic top level README.md, pulling the\n32-bit ABI stuff out into its own file, and moving the remaining benchmark\ndocumentation in with the rest of the benchmark documentation.\n\nBug: N/A\nTest: N/A\nChange-Id: Ic1b9995e27b5044199ed34883cc0b8faa894df0e\n"
    }
  ]
}
