)]}'
{
  "log": [
    {
      "commit": "f5605374da9605686352300de3e1bf342e72032d",
      "tree": "3476fdc8ee5845bd276cb6b834392e4532feb16d",
      "parents": [
        "dcdd0e37603215320d4fd175792aeef279a80606"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 17 14:05:44 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 17 14:05:44 2017 -0700"
      },
      "message": "Add __RENAME_IF_FILE_OFFSET64.\n\nConvenience macro for __RENAME if __USE_FILE_OFFSET64 mode. Lets us\navoid duplicating all the doxygen comments in frameworks headers.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/459\nChange-Id: Ica44f22b2f1596e484694006c0926d94d16187b5\n"
    },
    {
      "commit": "61fcd39e1720df131e2a7a7c4075f344bb413ca1",
      "tree": "7739695d551d6e87df7c650e47b2ef827ee06ca1",
      "parents": [
        "fc544af6cb538c5a6916f9ebf5b02639383fb1f3",
        "4cae5c374e6432f5fb4e7ec6d7e09228c3426e27"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 11 18:54:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 11 18:54:24 2017 +0000"
      },
      "message": "Merge \"The future passed part of \u003cstdlib.h\u003e by...\""
    },
    {
      "commit": "e76ff925df7d0b9aef84fe230c7497ff6a8fbba4",
      "tree": "9009caad2fd90f30494b915d367977b96867e0f8",
      "parents": [
        "6aaa227f74031ee461c7ce5b7a2a262397e866b2",
        "1449974d27473399a1fe25c2d28253908a57e382"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 10 20:40:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 10 20:40:53 2017 +0000"
      },
      "message": "Merge \"Make inline tcsetattr definition match constants.\""
    },
    {
      "commit": "6aaa227f74031ee461c7ce5b7a2a262397e866b2",
      "tree": "6f08e2d4c0270c6d47601d7cc9fb6421cdf20edc",
      "parents": [
        "c2828b87ec1066dfceb873532ef6cae7b64c2901",
        "00fedf5879176d580aa7e9c4fdc820a6f9655033"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 10 20:20:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 10 20:20:53 2017 +0000"
      },
      "message": "Merge \"Undo recent _FILE_OFFSET_BITS\u003d64 changes.\""
    },
    {
      "commit": "c2828b87ec1066dfceb873532ef6cae7b64c2901",
      "tree": "0402071d3ab858220e409dd781942913800fa861",
      "parents": [
        "ddefae7ba92c40d60f2401e010e7789bee6f260d",
        "8f5608b614b7908f4edde20a5461e46d4b080d9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 10 20:07:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 10 20:07:01 2017 +0000"
      },
      "message": "Merge \"Fix ffs on x86 for old API levels.\""
    },
    {
      "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": "4cae5c374e6432f5fb4e7ec6d7e09228c3426e27",
      "tree": "f7d91a9985e5ab095311a1f319025d6d0a321179",
      "parents": [
        "6c716a155df1c25ddc8e48f8bf29163b9a58441c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 10 11:51:00 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 10 11:51:00 2017 -0700"
      },
      "message": "The future passed part of \u003cstdlib.h\u003e by...\n\nBug: N/A\nTest: builds\nChange-Id: Ibac3c1abd82838dccd360cb70decb7083401c28e\n"
    },
    {
      "commit": "6c716a155df1c25ddc8e48f8bf29163b9a58441c",
      "tree": "28cd6d7e0fd27079ea6d9c91c22e22a1304dc0c6",
      "parents": [
        "1de6d0bb8a003f8d3b30948029a264a28d59fe9d",
        "8d307c9a302c5a8fb985d1ed29862bec77aaf7c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 22:33:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 22:33:42 2017 +0000"
      },
      "message": "Merge \"Support building binutils out of the box for x86/x86-64.\""
    },
    {
      "commit": "1de6d0bb8a003f8d3b30948029a264a28d59fe9d",
      "tree": "99bd6618c8cc9655b19a8aae88bba64c28516a18",
      "parents": [
        "0ff813fb484662feed81d17c2baa21e08f003f31",
        "02fdd0570e6246381adc2d8ff9c9a990f5b79506"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 22:20:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 22:20:34 2017 +0000"
      },
      "message": "Merge \"Make \u003csys/ttydefaults.h\u003e more usable.\""
    },
    {
      "commit": "0ff813fb484662feed81d17c2baa21e08f003f31",
      "tree": "dc477b3b757651e72133c56269a2e08cf97a5943",
      "parents": [
        "4ceefe27e7c6d936595fd447fe0b7b96349c83c2",
        "02a3fe9fc6b5197f5b57487f1f735fb7136347ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 22:15:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 22:15:04 2017 +0000"
      },
      "message": "Merge \"Update \u003carpa/*\u003e from FreeBSD.\""
    },
    {
      "commit": "4ceefe27e7c6d936595fd447fe0b7b96349c83c2",
      "tree": "bce51223d82de3ff7d386781cd017e159028c853",
      "parents": [
        "10c836fe082f0c9196a809816d9c26a90d989f68",
        "964564d2904a7ee31fdbe4302d2d5f9700a9ceb6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 21:22:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 21:22:20 2017 +0000"
      },
      "message": "Merge \"Claim to have a POSIX shell and utilities.\""
    },
    {
      "commit": "10c836fe082f0c9196a809816d9c26a90d989f68",
      "tree": "666a92a40b0a6d9d47c04b70b5c3df45526b887d",
      "parents": [
        "913ae7339568554b6d88061940036a09acc6fbed",
        "9d2507205e705491b6cf278db55c2bfeaf6407a4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 21:21:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 21:21:20 2017 +0000"
      },
      "message": "Merge \"Conditionally expose splice(2) and sync_file_range(2) constants.\""
    },
    {
      "commit": "8d307c9a302c5a8fb985d1ed29862bec77aaf7c8",
      "tree": "90740cabd732429477830313decd9e3b9c5d7058",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 11:04:15 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 11:10:01 2017 -0700"
      },
      "message": "Support building binutils out of the box for x86/x86-64.\n\nx86 needs the \u003csys/user.h\u003e additions, x86-64 the \u003csys/procfs.h\u003e ones.\n\nBug: N/A\nTest: ndkports x86 and x86_64 binutils-2.28\nChange-Id: I2e4738d3f8343d12db0536ca77045e2a0ccc6596\n"
    },
    {
      "commit": "02fdd0570e6246381adc2d8ff9c9a990f5b79506",
      "tree": "6e3ec64e7a3b24062f097f7d9e456e2f070de2a8",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 10:33:15 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 06 10:33:15 2017 -0700"
      },
      "message": "Make \u003csys/ttydefaults.h\u003e more usable.\n\n* TTYDEF_OFLAG referred to the BSD OXTABS constant instead of the Linux XTABS,\n  so references to it wouldn\u0027t compile.\n\n* CEOL was incorrect (compared to `stty -a`).\n\n* ttydefchars wouldn\u0027t compile (removed rather than attempt to fix something\n  of unclear utility).\n\nBug: http://b/63145226\nTest: new test\nChange-Id: I823e5eaab789cafd2eeea03f77ea553346822f74\n"
    },
    {
      "commit": "964564d2904a7ee31fdbe4302d2d5f9700a9ceb6",
      "tree": "557d418cda6b930f3667d63e1695f59f4b4a4a6c",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 16:45:55 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 16:45:55 2017 -0700"
      },
      "message": "Claim to have a POSIX shell and utilities.\n\nWe pretty much do these days. And apparently some GNU tools turn on obsolete\nbackwards-compatible behaviors otherwise.\n\nBug: http://b/63145226\nTest: builds\nChange-Id: I9a8af860768cc2c10548f172d1e8b4fba3e5115b\n"
    },
    {
      "commit": "02a3fe9fc6b5197f5b57487f1f735fb7136347ec",
      "tree": "ad489a68f007065803f2e86112488c1a329eeefa",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 15:51:44 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 16:03:59 2017 -0700"
      },
      "message": "Update \u003carpa/*\u003e from FreeBSD.\n\nWe\u0027ve had \u003carpa/telnet.h\u003e for years, despite being slightly more useless\nthan \u003carpa/ftp.h\u003e and \u003carpa/tftp.h\u003e. The inetutils package expects these\nto be available.\n\nBug: http://b/63145226\nTest: builds\nChange-Id: I1e3c7421779e965b3342d681fefb8dc2561b604d\n"
    },
    {
      "commit": "9d2507205e705491b6cf278db55c2bfeaf6407a4",
      "tree": "65e13797c27dbe164f1e3b57c38506ff848e9710",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 15:59:58 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 15:59:58 2017 -0700"
      },
      "message": "Conditionally expose splice(2) and sync_file_range(2) constants.\n\nAs in other places, only expose the constants at API levels where\nwe\u0027re also exposing the functions (to cope with \"poor man\u0027s configure\"\nwhere an author assumes the presence of the #define to imply the\navailability of the function).\n\nBug: http://b/63145226\nTest: builds\nChange-Id: I524f7288513aa6c35479c550e748a619397929b0\n"
    },
    {
      "commit": "0af3e8febd747827d959aa95501a8db4dbdb9db4",
      "tree": "a5f4caad345e0bd3c4c19c2dadb63b95e41d99f8",
      "parents": [
        "f45bc14d5497c30bd43e22d025e3b88812b2baa4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 12:34:29 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 05 12:34:29 2017 -0700"
      },
      "message": "Fix \u003cdirent.h\u003e d_ino/d_off types.\n\nBug: http://b/63336806\nTest: builds\nChange-Id: I781e7c66c41bcb772d49ce7c23aab185ddd5da1e\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": "f45bc14d5497c30bd43e22d025e3b88812b2baa4",
      "tree": "06dffdb7fb9583075664c19875bf497f086dbfe7",
      "parents": [
        "d09f3b67a38d9431e0d248609b427297a0f6e3f7",
        "79dd9889d1701dda881bb383b212932fcf2ff25f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jul 01 15:48:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 01 15:48:58 2017 +0000"
      },
      "message": "Merge \"Work around missing _Exit in old API levels.\""
    },
    {
      "commit": "8f5608b614b7908f4edde20a5461e46d4b080d9a",
      "tree": "be5a6b6140467c0a9eaf3b7397b5fbac92fe3a64",
      "parents": [
        "e202036e0377a578f2ae9ba3b5610c7763e5ab9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 30 15:57:59 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 30 17:50:44 2017 -0700"
      },
      "message": "Fix ffs on x86 for old API levels.\n\n\u003cstrings.h\u003e\u0027s ffs used to work by accident. In the past, \u003cstrings.h\u003e used\nto incorrectly declare ffs for all platforms at all API levels. In the\nunified headers, there\u0027s no such declaration for x86 before API 18 (which\nmakes sense, because that function was missing on x86 until then).\n\nBut as long as there was a declaration for ffs, the compiler just inlined\n__builtin_ffs. There was no problem at link time because the compiler didn\u0027t\nactually add a reference to the missing ffs symbol.\n\nRestore the old behavior by manually instructing the compiler to inline its\nbuiltin in these cases.\n\nBug: https://github.com/android-ndk/ndk/issues/439\nTest: built new NDK \u0027ffs\u0027 test\nChange-Id: I840e99f237c86f7cb028a0f67aaa8c6ff3eda245\n"
    },
    {
      "commit": "79dd9889d1701dda881bb383b212932fcf2ff25f",
      "tree": "7a62a624475160459be01edcdf301153cb7476be",
      "parents": [
        "e202036e0377a578f2ae9ba3b5610c7763e5ab9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 30 16:39:25 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 30 16:39:25 2017 -0700"
      },
      "message": "Work around missing _Exit in old API levels.\n\nRather than do this in libandroid_support, we may as well just stick it with\nthe other historical stdlib workarounds in bionic itself...\n\nBug: N/A\nTest: built new NDK test\nChange-Id: Ia5cf4010581eb79d4adf924e87d0bc050b9e2839\n"
    },
    {
      "commit": "d09f3b67a38d9431e0d248609b427297a0f6e3f7",
      "tree": "1c170d31fee3926cd45e10cedb0d4c56a0c269a4",
      "parents": [
        "1378c8710d7a819478eb09f080b74f149b0f146f",
        "16d9ba808b64a2af8a10b5710bea7c4b63e989db"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 30 22:33:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 30 22:33:27 2017 +0000"
      },
      "message": "Merge \"Add version info for C++ versions of basename, strchrnul.\""
    },
    {
      "commit": "16d9ba808b64a2af8a10b5710bea7c4b63e989db",
      "tree": "2b4a0a99224c3bcadb1baaf8c5e66181513a4b00",
      "parents": [
        "291e895b37767b71f4e41e455abc7fc7e471bec4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 30 13:20:28 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 30 13:21:25 2017 -0700"
      },
      "message": "Add version info for C++ versions of basename, strchrnul.\n\nThese still won\u0027t get guards added by the preprocessor, because it\ncompiles with C-only.\n\nBug: https://github.com/android-ndk/ndk/issues/440\nTest: treehugger\nChange-Id: I893b345e528ed1b761e0db00700037411bbb8b78\n"
    },
    {
      "commit": "c2ce12046c74613da2c41e1cce876db6ce81d4a9",
      "tree": "7213dde24b5fe04067e665f0e8524f2eb95a887d",
      "parents": [
        "814e3a2b31703400ae5d1ee5fcb96e87013d0794"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 22 12:40:55 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 22 12:52:17 2017 -0700"
      },
      "message": "Put back more legacy pthread APIs.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/423\nBug: https://stackoverflow.com/q/44580542/632035\nChange-Id: Ibf52a969afffbfcdf6793a0bf8b0e10bbdd1f32c\n"
    },
    {
      "commit": "42edca036e5c9ed24017de5fba41d5d1feda61d0",
      "tree": "840e9b6643e13ec18532a92702e041b960af5dce",
      "parents": [
        "fed32937eb0688f2d55ef9885f99e4c35508ec59",
        "a4e774c2bb9b4bddc1dfedf4d6a4db6797f3478f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 16 22:51:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 16 22:52:01 2017 +0000"
      },
      "message": "Merge \"Add sys/stat.h compatibility macros for old NDKs.\""
    },
    {
      "commit": "8ad40936597c94901b6acb0b21bfe0e2a0689224",
      "tree": "d228db0e344a21109b07276e5282c841daa88269",
      "parents": [
        "0bd23e47067126677537a2b5bedd22dce54d92e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 15:12:29 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 15:12:29 2017 -0700"
      },
      "message": "Add #defines for some key enums.\n\nBuilding ruby actually trips over both of these:\n\n* if the RTLD_ constants aren\u0027t #defined, it uses its own incorrect values.\n\n* if the REG_ constants aren\u0027t #defined, it confuses x86 with x86-64.\n\nIn all other places where we have enums in our headers, we already match\nexisting glibc practice.\n\nBug: http://b/62531921\nTest: builds\nChange-Id: I5b3aab25a1a24611bdc58f2eda4104a78e9f841c\n"
    },
    {
      "commit": "e2d4663b27285baceb81f6f68c4721b805512070",
      "tree": "576ac47e0800c6b2d56eaa02effd705911100bab",
      "parents": [
        "a09953e1a8df604d4c2c5f5b3b4c86e5b97694bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 10:36:43 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 10:37:26 2017 -0700"
      },
      "message": "Move a \u003cwchar.h\u003e implementation detail into the implementation.\n\nNo other C library expose these, and I couldn\u0027t find any callers.\n\nBug: http://b/62531921\nTest: builds\nChange-Id: I4a3505bc0897286a4036c48066b98d16665b573a\n"
    },
    {
      "commit": "a09953e1a8df604d4c2c5f5b3b4c86e5b97694bf",
      "tree": "c2d170c83ee156adaf2d31a3ac768186827763bc",
      "parents": [
        "112581a5e0b72845feb6cc9851f28a64d13183ac",
        "8c67f1e617357cad075874598702bf9a9c8e8200"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 15 16:15:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 16:15:24 2017 +0000"
      },
      "message": "Merge \"Expose pthread_mutex_lock_timeout_np to the NDK.\""
    },
    {
      "commit": "112581a5e0b72845feb6cc9851f28a64d13183ac",
      "tree": "111ab7801cbe768549f22f317f0e358c63dc0c51",
      "parents": [
        "67f03e06876c817fa34375ee18111538d8a6b2ec",
        "6fa8df9d3c1d7093778594f4af11faa9b37803e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 15:06:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 15:06:36 2017 +0000"
      },
      "message": "Merge \"Don\u0027t use the overloadable attribute if we\u0027re not fortified.\""
    },
    {
      "commit": "af0c781cf4c2051d81c1edb772679ebd207f7464",
      "tree": "ef369402141cd368d63bae8aa09a3ec8372fa7a4",
      "parents": [
        "7f6bcc478083e25627838cb5de7e8efbc9468a55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 14 17:16:05 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 14 17:16:05 2017 -0700"
      },
      "message": "Add \u003csys/mtio.h\u003e.\n\nIn a similar style to some of our other \"not really, but enough\" headers\nlike \u003csys/vt.h\u003e.\n\nBug: N/A\nTest: build GNU dd or BSD dd with a standalone toolchain\nChange-Id: I8fbd1aac1d97e24b05e7aae8a55666300b5bf1ed\n"
    },
    {
      "commit": "6fa8df9d3c1d7093778594f4af11faa9b37803e8",
      "tree": "1f0ed41bf69d08ccc9618b939c62ddc3e9f666ed",
      "parents": [
        "7f6bcc478083e25627838cb5de7e8efbc9468a55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 14 16:54:32 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 14 16:54:32 2017 -0700"
      },
      "message": "Don\u0027t use the overloadable attribute if we\u0027re not fortified.\n\nSee code comment.\n\nBug: N/A\nTest: building bash and binutils with a standalone toolchain\nChange-Id: I73b5d55716072ca1b03b1b0157d65cb1ceb22841\n"
    },
    {
      "commit": "a4e774c2bb9b4bddc1dfedf4d6a4db6797f3478f",
      "tree": "f519d8feea9edfb35e46816d35b69ff36c0fbe40",
      "parents": [
        "8c67f1e617357cad075874598702bf9a9c8e8200"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 12 14:59:38 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 14 14:03:14 2017 -0700"
      },
      "message": "Add sys/stat.h compatibility macros for old NDKs.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/417\nChange-Id: I04fdb2f31131e87907adab9f3264b783917de542\n"
    },
    {
      "commit": "7f6bcc478083e25627838cb5de7e8efbc9468a55",
      "tree": "cc4895cd8c88e88c8c938f6a8ac7b76480706932",
      "parents": [
        "87d1df9f70016725ce100860fdc847a76322636d",
        "e452cb1ff30b3539dc66a18e9b59fe5e8d337ecc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 14 00:44:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 14 00:44:33 2017 +0000"
      },
      "message": "Merge \"Remove `volatile` from the `__errno` declaration.\""
    },
    {
      "commit": "87d1df9f70016725ce100860fdc847a76322636d",
      "tree": "4107d02f52ec0635cf90b376c04795f98a2c768b",
      "parents": [
        "017ee76b154f795944938c6126708d98bd6c1a78",
        "583ef362c8053e41e491f24ddc076f29fa7fbb92"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 13 23:20:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 13 23:20:40 2017 +0000"
      },
      "message": "Merge \"The bsd_signal declaration shouldn\u0027t be visible if API \u003e 21.\""
    },
    {
      "commit": "e452cb1ff30b3539dc66a18e9b59fe5e8d337ecc",
      "tree": "60593768f5b380f5a3a45caa026ea9cb208876c0",
      "parents": [
        "15eaaddef9fffda1209e9cc576b47b0f6e0cb379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 13 14:43:53 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 13 16:02:07 2017 -0700"
      },
      "message": "Remove `volatile` from the `__errno` declaration.\n\nThis breaks code that declares `errno` itself for whatever crazy reason:\n\n  b.c:22:12: error: conflicting types for \u0027__errno\u0027\n  extern int errno;\n             ^\n  /usr/local/google/ndkports/toolchain/bin/../sysroot/usr/include/errno.h:47:20: note: expanded from macro \u0027errno\u0027\n  #define  errno   (*__errno())\n                     ^\n  /usr/local/google/ndkports/toolchain/bin/../sysroot/usr/include/errno.h:44:15: note: previous declaration is here\n  volatile int* __errno(void) __attribute_const__;\n                ^\n\nBug: N/A\nTest: built various bits of GNU source\nChange-Id: I27c03bf3bde419a001f98f1ea6c267c847f31271\n"
    },
    {
      "commit": "583ef362c8053e41e491f24ddc076f29fa7fbb92",
      "tree": "aed2759ac8d13ff90141f93f017dd6261ffe4d01",
      "parents": [
        "15eaaddef9fffda1209e9cc576b47b0f6e0cb379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 13 14:29:15 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 13 14:29:15 2017 -0700"
      },
      "message": "The bsd_signal declaration shouldn\u0027t be visible if API \u003e 21.\n\nThis causes GNU make to fail to build:\n\n  main.o:main.c:(.text+0x18c): more undefined references to `bsd_signal\u0027 follow\n\nBug: N/A\nTest: built GNU make with a hacked standalone toolchain\nChange-Id: Icdfb4cf674df8abed44f6671454bed9f8d68e74b\n"
    },
    {
      "commit": "8c67f1e617357cad075874598702bf9a9c8e8200",
      "tree": "2550c1ef1797fe002d1456ff57f3bb79b6304730",
      "parents": [
        "4f61181428ec68c2e87610829ea6a06be7eb3a4e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 12 14:17:49 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jun 12 16:46:01 2017 -0700"
      },
      "message": "Expose pthread_mutex_lock_timeout_np to the NDK.\n\nThe proper API for this isn\u0027t available until L, so expose this for\nAPI levels earlier than that.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/420\nChange-Id: I382b8f557be9530f3e13aaae353b4a6e7f9301ab\n"
    },
    {
      "commit": "2eab77e5034444fee63a302c89502c970dd2b0b6",
      "tree": "7d8db3d5a0fffeb638d73e2702b2d30bf2b46e1f",
      "parents": [
        "15eaaddef9fffda1209e9cc576b47b0f6e0cb379"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 01 14:08:58 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 01 14:08:58 2017 -0700"
      },
      "message": "Fix boost build with unified headers.\n\nboost (1.64.0 at least) assumes that if you have POSIX_MADV_NORMAL, you have\nposix_madvise. With unified headers, this isn\u0027t true. Rather than make life\nharder for projects that don\u0027t use configure, just make it so. We already\napplied similar workarounds for epoll_create1 and inotify_init1.\n\nBug: https://github.com/android-ndk/ndk/issues/395\nTest: built boost (long story!)\nChange-Id: I5d2d8de7b30921dde913251d35dcd249a2876f94\n"
    },
    {
      "commit": "8f7a987cd0204706b8a7a2a30171746493b42ffd",
      "tree": "2270ece5b778b2b77f4ead302090429e0e21dbc9",
      "parents": [
        "8f6f70db457e6f6d09a5f3b8be91adcea16b1067",
        "7c08c7910dc7980f0a4d4354aabad60f8c7bd605"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 31 18:15:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 31 18:15:11 2017 +0000"
      },
      "message": "Merge \"Revert \"Make mallopt available in the future.\"\""
    },
    {
      "commit": "7c08c7910dc7980f0a4d4354aabad60f8c7bd605",
      "tree": "8072f6a7fa566cda0ad46664ca5007f7702ee5a7",
      "parents": [
        "083923d96acb7cfe4e1a1c22100047fa87feb347"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 31 00:14:15 2017 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 31 00:15:00 2017 +0000"
      },
      "message": "Revert \"Make mallopt available in the future.\"\n\nThis reverts commit 083923d96acb7cfe4e1a1c22100047fa87feb347.\n\nReason for revert: No longer correct, this will be in API 26.\n\nChange-Id: Iaf82d797405135fcd30455fd750b23fc57e9623a\n"
    },
    {
      "commit": "f58179cda5a905f405efac4f116f5205e3b01611",
      "tree": "d4986fc5db89ae3fdbd0a657fff911717db87bbc",
      "parents": [
        "1143a629772c85b779b0f8249e1e223e27ff7481",
        "8543f923fe46b958e5061dab6d0440c9e2cd7603"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 25 01:43:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 25 01:43:07 2017 +0000"
      },
      "message": "Merge \"Stop including \u003csys/sysmacros.h\u003e from \u003csys/types.h\u003e.\""
    },
    {
      "commit": "1f66c6d078922454a0a0c2f3a2141caf925ed9cf",
      "tree": "67e2896666fb8bcf748879d4e4123e07ac3a3112",
      "parents": [
        "81a5b6f5585c056a5fe6f05fab1e39824c23256b",
        "468c8086e6f28b9342d3f89ed89f185ab5bb775a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 24 07:13:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 24 07:13:36 2017 +0000"
      },
      "message": "Merge \"Fix _POSIX_THREAD_PROCESS_SHARED.\""
    },
    {
      "commit": "8543f923fe46b958e5061dab6d0440c9e2cd7603",
      "tree": "1584013cdea9884316239b3f4a5606066b5b613c",
      "parents": [
        "4767bc4a6cebc2ad4c61cccdf92290e17227a792"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 23 15:53:36 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 23 15:53:36 2017 -0700"
      },
      "message": "Stop including \u003csys/sysmacros.h\u003e from \u003csys/types.h\u003e.\n\n\u003csys/types.h\u003e unconditionally includes \u003csys/sysmacros.h\u003e.\n\n\u003csys/sysmacros.h\u003e defines major, minor, and makedev. In the deprecated NDK\nheaders, these were inline functions. In the unified headers, they are\nfunction-like macros.\n\nThe inline functions would only collide with another function called major,\nminor, or makedev but the macros will replace anything with a function-like\nform such as definitions of class methods called major, minor, or makedev.\nThis causes code which has such definitions to fail to compile when moving\nfrom the deprecated headers to the unified headers.\n\nResolve this by removing the transitive dependency. Folks who want\n\u003csys/sysmacros.h\u003e can ask for it explicitly (it\u0027s been in both bionic and\nglibc for years, though I don\u0027t think macOS has it [as usual]).\n\nBug: https://github.com/android-ndk/ndk/issues/398\nTest: builds\nChange-Id: If2921c7b5d979c3066f199f22c64d4d2f7bf6632\n"
    },
    {
      "commit": "7bbe7cb619c6e3afa557d0665d8082f2a1490064",
      "tree": "40b0d2cc9da2e7113e06c184b8c1894f451bc211",
      "parents": [
        "6e7f14d9f707c295765e119800acfa0621a347cb",
        "5a215d7817baf190a8af76674303b0d50ce67c07"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 23 00:48:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 23 00:48:01 2017 +0000"
      },
      "message": "Merge changes Iefdc1662,I8ee9ce62\n\n* changes:\n  Don\u0027t define IN_CLOEXEC/IN_NONBLOCK for pre-L.\n  Undef EPOLL_CLOEXEC for pre-L.\n"
    },
    {
      "commit": "5a215d7817baf190a8af76674303b0d50ce67c07",
      "tree": "212b863307cf627ce54a8b89cf9f30d76af7da93",
      "parents": [
        "cdfface662306d20cfaa4abe046eb85794201d6c"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 22 12:58:18 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 22 12:58:18 2017 -0700"
      },
      "message": "Don\u0027t define IN_CLOEXEC/IN_NONBLOCK for pre-L.\n\nSome third-party code uses the existence of IN_CLOEXEC/IN_NONBLOCK to\ndetect the availability of inotify_init1. This is not correct, since\n`syscall(__NR_inotify_init1, IN_CLOEXEC)` is still valid even if the C\nlibrary doesn\u0027t have that function, but for the time being we don\u0027t\nwant to harm adoption to the unified headers. We\u0027ll avoid defining\nIN_CLOEXEC and IN_NONBLOCK if we don\u0027t have inotify_init1 for the time\nbeing, and maybe revisit this later.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/394\nChange-Id: Iefdc1662b21045de886c7ad1cbeba6241163d943\n"
    },
    {
      "commit": "cdfface662306d20cfaa4abe046eb85794201d6c",
      "tree": "572aa51504a38f486cddde87d54bf2013e894b98",
      "parents": [
        "f06535035ef6e48aeacc37819ea7182416275216"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 22 12:52:00 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon May 22 12:52:00 2017 -0700"
      },
      "message": "Undef EPOLL_CLOEXEC for pre-L.\n\nSome third-party code uses the existence of EPOLL_CLOEXEC to detect\nthe availability of epoll_create1. This is not correct, since having\nup-to-date UAPI headers says nothing about the C library, but for the\ntime being we don\u0027t want to harm adoption to the unified headers.\nWe\u0027ll undef EPOLL_CLOEXEC if we don\u0027t have epoll_create1 for the time\nbeing, and maybe revisit this later.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/302\nBug: https://github.com/android-ndk/ndk/issues/394\nChange-Id: I8ee9ce62768fb174070ec51d114f477389befc4a\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": "8fbd15a6d0818916a821bc2138208f0251c9754f",
      "tree": "9c80ba145936baaddfa2d7214696adae710db015",
      "parents": [
        "f06535035ef6e48aeacc37819ea7182416275216",
        "497ad30d7d76721adab8830a76e72bcc9a840ba5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 19 18:24:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 19 18:24:09 2017 +0000"
      },
      "message": "Merge \"Make `union semun` usable.\""
    },
    {
      "commit": "497ad30d7d76721adab8830a76e72bcc9a840ba5",
      "tree": "62ec1976efb39168023cc66892c47a1e20b5acf4",
      "parents": [
        "7ff7ed1c7de40059f1f21f59eed338603bec08e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 18 15:05:26 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 18 15:05:26 2017 -0700"
      },
      "message": "Make `union semun` usable.\n\nThis is a bit bogus because it\u0027s been removed from glibc (though not\nthoroughly) and is never useful on Android (because the system calls\nin question are compiled out of Android kernels, and SELinux would\ndisallow them even if you weren\u0027t running an Android kernel). This\nalso means that on glibc you need to include \u003clinux/sem.h\u003e for this\nand on bionic you need \u003csys/sem.h\u003e (and for either if you #include\nthe other file, you won\u0027t get this union).\n\nBug: https://github.com/android-ndk/ndk/issues/400\nTest: added new test\nChange-Id: I47f721da77515531f616d6ad8479bfbc9b60ee47\n"
    },
    {
      "commit": "083923d96acb7cfe4e1a1c22100047fa87feb347",
      "tree": "6df0f5d64cd06912119c1d4f7c293f36739dab23",
      "parents": [
        "6fba793bc3ef89649ce41e70736f0c8a49093360"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 17 14:48:59 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 17 14:48:59 2017 -0700"
      },
      "message": "Make mallopt available in the future.\n\nI made this in 26 but it\u0027s really only available in the future.\n\nTest: Built angler image.\nChange-Id: I9e1179b350103bf1b8774459a9e210b377300d40\n"
    },
    {
      "commit": "a1c0d2fd4ce96e123c4ae6506c9d637d747e1fe2",
      "tree": "b1f89edbd67d6b09b9cbdfb1bf03b65b2dac9ad4",
      "parents": [
        "ac58d33d343eba6a3370f541467f09802c48b24b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 15 15:50:19 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon May 15 16:59:16 2017 -0700"
      },
      "message": "Add support for modifying decay timer.\n\nAdd the mallopt function, and only a single option so far.\n\nBug: 36401135\n\nTest: Built and booted bullhead.\nTest: Ran jemalloc unit tests.\nTest: Ran bionic unit tests.\nTest: Ran a test that allocated and free\u0027d a large piece of memory,\nTest: and verified that after changing the parameter, the PSS\nTest: sticks around (decay timer set to 1), the PSS is purged (decay\nTest: timer set to 0).\nChange-Id: I6927929b0c539c1023d34772d9e26bb6a8a45877\n"
    },
    {
      "commit": "d390df1dbc038843889946555c3ea53548dcab5d",
      "tree": "36b185eec9718f38fc9cba087bce96498fd51f43",
      "parents": [
        "dfe0fa4151eeae806e9eb52c337c449cd028c160"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 30 22:56:10 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 30 22:56:10 2017 -0700"
      },
      "message": "Restore ELF32_ST_INFO/ELF64_ST_INFO.\n\nMistakenly removed years ago, along with its genuinely duplicated companions.\nThis patch also redefines one of those rather than use the Linux uapi header\ndefinition, which leads to signed/unsigned warnings in calling code.\n\nBug: https://github.com/android-ndk/ndk/issues/377\nTest: ran tests\nChange-Id: Ib25b17949f04969f12b945ca88ab87d080677cf9\n"
    },
    {
      "commit": "82f7208ac0b4e31003ddfbad4a4e64e3e0e5550d",
      "tree": "c942821177da1d6afec887fbb5a47489a47a0106",
      "parents": [
        "fd7c2a32e553710ef9dfce398cf756f3df8d774c",
        "06be3459cadb085cbecd0c2f8ce5e78ab6dbc307"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Apr 26 23:00:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 26 23:00:41 2017 +0000"
      },
      "message": "Merge \"Update bionic after Clang rebase\""
    },
    {
      "commit": "7ba2bed0b2597b59dcd3d99414bcfa1b559b0acc",
      "tree": "bc6fa032a1749216ce6008bd316d3097046d8da5",
      "parents": [
        "5deddda68e780aaa26e4777378fee10d543eb719"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 25 15:45:29 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 26 14:34:36 2017 -0700"
      },
      "message": "Make unified headers\u0027 SIGRTMIN/SIGRTMAX usable before API 21.\n\nBug: https://github.com/android-ndk/ndk/issues/352\nTest: built new NDK test\nChange-Id: Iacebe574bbf693701949e038005a40ba6520d592\n"
    },
    {
      "commit": "06be3459cadb085cbecd0c2f8ce5e78ab6dbc307",
      "tree": "d78f996ebc34ebec205b476ee4b4f36a1199277b",
      "parents": [
        "5deddda68e780aaa26e4777378fee10d543eb719"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Apr 20 14:27:28 2017 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Apr 26 10:44:12 2017 -0700"
      },
      "message": "Update bionic after Clang rebase\n\nAfter the new rebase of Clang, we now supports alloc_size attribute, so\nwe can remove the warning about switching to alloc_size once Clang has\nsupport.\n\nCompiler.setInvocation has changed argument type from raw pointer to\nshared pointer. Add version check here so that we can build under either\nold rebase or the new rebase.\n\nTest: build\nBug: 37423073\nChange-Id: I4563eaf93bae6c59a4a19318f8caa92bd361b3ab\n"
    },
    {
      "commit": "e54e64bd605f74936e1b8b6f5bf525b77abba00d",
      "tree": "35734e5c936ec4db8fabba27faceeb684835c4cc",
      "parents": [
        "61e932ee6523f557528f142cbc2cec66094e098d",
        "f2c6ad6338b7ea96fe7b64bffa28d5ed81a2f994"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 21 19:52:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 21 19:52:32 2017 +0000"
      },
      "message": "Merge \"Make the _Unwind_Ptr declaration match clang\u0027s.\""
    },
    {
      "commit": "f2c6ad6338b7ea96fe7b64bffa28d5ed81a2f994",
      "tree": "768871a1c1811fce1fe351c033c6a2174be71bf8",
      "parents": [
        "ee1c45f88f5fcd1b1d43c325e0de366cc3d0ce36"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 21 10:25:56 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 21 19:52:21 2017 +0000"
      },
      "message": "Make the _Unwind_Ptr declaration match clang\u0027s.\n\nBug: https://issuetracker.google.com/37126620\nTest: builds, boots angler\nChange-Id: I7d4a9b998f2e5c4c7b0beed87807d7b76a564c5c\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": "64cdd0c88618e8cd01870a0d300909e9d28aa170",
      "tree": "3573adc3c20c9094a34aa535e7b2c7c8968c0215",
      "parents": [
        "cdf0b1a44c92575c56ad6f054851c7cb2c78d0b1",
        "5109bb463d3cce67a68875dec3cba9cb0b861ecd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 19 22:29:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 22:29:42 2017 +0000"
      },
      "message": "Merge \"Make all the ELF relocation constants available.\""
    },
    {
      "commit": "237c3ee0f849540316823f942de47ad141a19828",
      "tree": "77bbcc6ecc2eaa3ef2671af27a1330497f86257c",
      "parents": [
        "0fc84517abe3082f201a340dafe20403613ddf94",
        "31e5a35f3d403ffa4ffe0215f9664d08fb749ada"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 19 20:31:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 20:31:41 2017 +0000"
      },
      "message": "Merge \"libc: fix typo in __RENAME macro\""
    },
    {
      "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": "31e5a35f3d403ffa4ffe0215f9664d08fb749ada",
      "tree": "3304b1cfa2e6c55c556f908d522be14ddfd76990",
      "parents": [
        "7b37fa9384cb9ca9a95928af45b03b2bc9fe815c"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Apr 18 18:28:19 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Apr 19 18:46:44 2017 +0000"
      },
      "message": "libc: fix typo in __RENAME macro\n\nApparently __strncpy_real redirects to strcpy instead of strncpy for GCC\nbuilds. This is bad, and it confused a project compiled by GCC that uses\nstrcpy.\n\nI audited all of the FORTIFY-related __RENAMEs both manually and with a\nscript I hacked together; they all look correct aside from this one.\n\nFWIW, with the cleaned up clang FORTIFY, lots of the `void foo()\n__RENAME(foo)` will just become `void foo()` if this last thing I\u0027m\nworking on gets through review.\n\nBug: 35329524\nTest: Previously broken project now seems to work. Bullhead and Ryu\nboth build + boot.\n\nChange-Id: Ib18ee3535ae31eb7e8ae846dc012f9b64cac80bf\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": "791989d250a507e3fc5634eccbf1341d980f2916",
      "tree": "ca417d930fbb96bd60f8e8e679e971b8ed09c497",
      "parents": [
        "7b37fa9384cb9ca9a95928af45b03b2bc9fe815c",
        "3914b19bd4a2707ed5274a502fd9fc5538a5d26c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 18 22:46:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 22:47:00 2017 +0000"
      },
      "message": "Merge \"Add PT_ARM_EXIDX.\""
    },
    {
      "commit": "57e7a0d853812ceaa2337a4fc6a0de1eef93977b",
      "tree": "9d3d5052e2d2a973b06e57ad9236967b7cbc1209",
      "parents": [
        "661a2ed9df173f6eb14530a8e4a51753a7df3890",
        "438e01940b90a2b6061a9b9809e08466e1e9faac"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 17 23:45:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 17 23:45:57 2017 +0000"
      },
      "message": "Merge \"Un-deprecated __system_property_find_nth.\""
    },
    {
      "commit": "3914b19bd4a2707ed5274a502fd9fc5538a5d26c",
      "tree": "b1b01e0eb793edbcd1e4aab2cf318df57885f606",
      "parents": [
        "661a2ed9df173f6eb14530a8e4a51753a7df3890"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Apr 17 16:06:59 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Apr 17 16:06:59 2017 -0700"
      },
      "message": "Add PT_ARM_EXIDX.\n\nThe updated LLVM libunwind needs this to be defined.\n\nTest: make checkbuild\nBug: None\nChange-Id: Ia20016a9e3becb37ea6902f1959d1884c1263e51\n"
    },
    {
      "commit": "438e01940b90a2b6061a9b9809e08466e1e9faac",
      "tree": "4889c190b65be3636ee5d638db7822624abcd412",
      "parents": [
        "e4e69a174a0b4980eaff49c55c39b476cbe9b73e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 17 14:53:07 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 17 14:53:07 2017 -0700"
      },
      "message": "Un-deprecated __system_property_find_nth.\n\nNetflix was using this, and looking the header file, although\n__system_property_find_nth has been available since the beginning of time,\n__system_property_foreach only appeared in 16. So anyone who wants to run\non pre-JellyBean devices would want to use __system_property_find_nth.\n\nIt\u0027s pretty much a one-liner in terms of __system_property_foreach anyway,\nso it doesn\u0027t cost us anything to keep it.\n\nAlso restore slightly better tests than we originally removed.\n\nBug: http://b/36566667\nTest: ran tests\nChange-Id: Id268c2c2e848da17bb0a5a5420af234d9dcb829a\n"
    },
    {
      "commit": "ef2b2fe99eb0d348d71a53702bb4981b17d8682e",
      "tree": "4d6ca9b8c53b94fb4bba1e78285f9c40b6167c76",
      "parents": [
        "e4e69a174a0b4980eaff49c55c39b476cbe9b73e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 16 08:50:58 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 16 08:50:58 2017 -0700"
      },
      "message": "Link to the public post about clang FORTIFY.\n\nBug: N/A\nTest: builds\nChange-Id: I1c2040fdd3c3bbe61a8adfc1f414fce50087a1b8\n"
    },
    {
      "commit": "278d31d36e7a1682eef1f80aef204e4ad953c2fc",
      "tree": "002f4245ecbba33301e0c25b0c7aa56d48726b85",
      "parents": [
        "1261f29631397df3c6a6e3a53399ada5ee1ef69f",
        "bd3d2088d99f45babb8a73192b53b6fd91930af3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 05 23:57:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 05 23:57:13 2017 +0000"
      },
      "message": "Merge \"libc: add const-correct string.h overloads\""
    },
    {
      "commit": "19710f761b4134d653936fde88f3c4477ab2128e",
      "tree": "2bd14bdc7f9462bab7c67e241a87e1ea90c52c33",
      "parents": [
        "07807a10a2dfa85a952ee8c06188d0bc9597c184"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Apr 05 13:24:05 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Apr 05 13:30:52 2017 -0700"
      },
      "message": "libc: remove newlines in prototypes in string.h\n\nThis gives more useful diagnostics if clang needs to mention these\nfunctions (or a parameter of them).\n\nBug: 36984245\nTest: m on bullhead completes successfully.\nChange-Id: I17c2b624d08bc9dd3f08185b30029ed0c49ebb08\n"
    },
    {
      "commit": "bd3d2088d99f45babb8a73192b53b6fd91930af3",
      "tree": "0533adb1ea5e0af98272e39ff9dc8e7fd3bdbf83",
      "parents": [
        "07807a10a2dfa85a952ee8c06188d0bc9597c184"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Apr 04 17:34:02 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Apr 05 13:17:07 2017 -0700"
      },
      "message": "libc: add const-correct string.h overloads\n\nlibcxx provides const-correct overloads for a few string.h functions.\nThese overloads use clang\u0027s enable_if attribute, so they\u0027re preferred\nover our FORTIFY\u0027ed equivalents.\n\nThis weakens _FORTIFY_SOURCE\u003d2 when used with some of these functions,\nsince clang needs to see __pass_object_size in order to pass an accurate\nresult for __builtin_object_size(s, 1) at a callsite. Since those\nfunctions don\u0027t have __pass_object_size on their params, clang can\u0027t do\nthat. This makes LLVM lower the __builtin_object_size calls, which means\nwe get the same result as __builtin_object_size(s, 0).\n\nWe have to provide all of the overloads in Bionic, since enable_if is\nonly used to disambiguate overloads with (otherwise) the same type. In\nother words:\n\n// overload 1\nchar *strchr(const char *, int s) __attribute__((enable_if(1, \"\")));\n// overload 2\nchar *strchr(char *, int s);\n\nvoid foo() {\n  char cs[1] \u003d {};\n  strchr(static_cast\u003cconst char *\u003e(cs), \u0027\\0\u0027); // calls overload #1.\n  strchr(cs, \u0027\\0\u0027); // calls overload #2.\n}\n\nBug: 34747525\nTest: m checkbuild on bullhead internal master + AOSP. vts -m\nBionicUnitTests passes on both. Surprisingly, the only code that this\nseems to break is contained in Bionic.\n\nChange-Id: Ie406f42fb3d1c5bf940dc857889876fc39b57c90\n"
    },
    {
      "commit": "bce9a7d51898f73d8e3cef2c4a437bf08698430f",
      "tree": "cb3eaf96756e7c41344e3f1b5465e95a80fb9aa2",
      "parents": [
        "4df5ca1e0254790d41f945352a93f5c783ea8de0"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Apr 03 18:03:36 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Apr 04 11:12:18 2017 -0700"
      },
      "message": "libc: use __bos instead of __bos0 for strchr.\n\nI dunno why I used __bos0 in the first place; clang\u0027s strrchr (and\nGCC\u0027s strchr+strrchr) both use __bos.\n\nBug: 34747525\nTest: m. Device still boots. cts -m BionicUnitTests shows no new\nfailures.\nChange-Id: Ifec0e05a6a1144fa3e3ac70562af3ec57c09c194\n"
    },
    {
      "commit": "284c8f1bafd53777c262ee29f941644747eb4ad9",
      "tree": "9d923e60b2e04a083a2a719b054ea1db2a5a699c",
      "parents": [
        "aa0b5054c52e10a9e4b5d5dd9daa90d707164af0"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Mar 30 16:34:27 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Mar 30 17:18:31 2017 -0700"
      },
      "message": "Revert \"isnan and isinf aren\u0027t functions.\"\n\nWhile this change is correct, GNU libstdc++ 4.9 isn\u0027t able to handle a\nstandard compliant C library. Its \u003ccmath\u003e will `#undef isnan` from\nmath.h and only adds the function overloads to the std namespace,\nmaking it impossible to use both \u003ccmath\u003e (which gets included by a\nlot of other standard headers) and ::isnan.\n\nWe\u0027re going to have to revert this until we can start turning down\nsupport for gnustl.\n\nThis reverts commit e76ee993ff30a639d24c7db6a080c14d1b1a10f2.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d271629\nTest: make checkbuild\nChange-Id: I394f50271430e78ab801d85c3ee4e87019eda6af\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": "72b6f4fae22477a2d35c2cf6b9de4053ec0b731f",
      "tree": "0e7d8da062a953cf6e1c4d7d5f425dd540f22618",
      "parents": [
        "e98d1e68ce37bb9238e3c50ea6b01d1057adb2eb",
        "468a5d2d83a3d719f7493d041abc69587756d8fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 21 19:14:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 21 19:14:05 2017 +0000"
      },
      "message": "Merge \"pthread barrier and spinlock types should only appear at API level 24.\""
    },
    {
      "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": "e36fb9ed9e3a5ad6152f66f9b473221b166f3b5b",
      "tree": "4daef986eb8195a8552d822429ea2dfe5977c027",
      "parents": [
        "8bd97b007ecf6363d8df9e6ed96bed8408c9f87a",
        "785b249df02434764db052507e956a2655fed0bb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 20 21:53:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 20 21:53:41 2017 +0000"
      },
      "message": "Merge \"Only rename mmap to mmap64 if we\u0027re L or newer.\""
    },
    {
      "commit": "8bd97b007ecf6363d8df9e6ed96bed8408c9f87a",
      "tree": "10ab52205c339716fba064ed0808b0eb3dc68b1e",
      "parents": [
        "f12d719b0133d4da9837de4c8cd54bee08f83119",
        "79a3db030475792f8ee355292235d3453f50db65"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 20 20:01:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 20 20:01:16 2017 +0000"
      },
      "message": "Merge \"Only rename fgetpos/fsetpos/fseeko/ftello/funopen if we\u0027re N or newer.\""
    },
    {
      "commit": "785b249df02434764db052507e956a2655fed0bb",
      "tree": "2eed4698abee108ebc71a25c82778a3beb220a96",
      "parents": [
        "616b2d87eabee34559b12a3ddd3e057a1ad49879"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 17 11:47:09 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Mar 20 12:57:13 2017 -0700"
      },
      "message": "Only rename mmap to mmap64 if we\u0027re L or newer.\n\nWithout this, setting `__USE_FILE_OFFSET64` and targeting pre-L made\nmmap entirely unavailable.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/332\nChange-Id: I9f61c44f8d9ab5c7cae845c9f89a7d889c6df365\n"
    },
    {
      "commit": "79a3db030475792f8ee355292235d3453f50db65",
      "tree": "737ec0a93f712f489970fc4bd4737e190c761100",
      "parents": [
        "9cb82a2c6b9001f7c50cbb3465f4aabc5d7cd055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 17 18:56:08 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 17 18:56:08 2017 -0700"
      },
      "message": "Only rename fgetpos/fsetpos/fseeko/ftello/funopen if we\u0027re N or newer.\n\nWithout this, setting __FILE_OFFSET_BITS to 64 and targeting pre-L\nmade these functions entirely unavailable.\n\nBug: https://github.com/android-ndk/ndk/issues/333\nTest: builds\nChange-Id: Id17ae3c070f8b2650a9bc9aa2aa2e92c5fcdf4ad\n"
    },
    {
      "commit": "3645e71a43f57ceac914851998ad27a4ac33c208",
      "tree": "1dfb08f3626c0356e0df0e1562c243607c778a5b",
      "parents": [
        "9cb82a2c6b9001f7c50cbb3465f4aabc5d7cd055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 17 18:50:12 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 17 18:50:12 2017 -0700"
      },
      "message": "Only rename sendfile to sendfile64 if we\u0027re L or newer.\n\nWithout this, setting __FILE_OFFSET_BITS to 64 and targeting pre-L\nmade sendfile entirely unavailable.\n\nBug: https://github.com/android-ndk/ndk/issues/333\nTest: builds\nChange-Id: I82d326ff244473dd5443632ff6c19d726d5e29ee\n"
    },
    {
      "commit": "ca1fda834f22adc061e4568d5a99bb50f238c94f",
      "tree": "74e85e44f3cdbbf7844310c81d8027c6f50fd2d2",
      "parents": [
        "5f41ce25c60df2012b58846940dfac58dce50e59",
        "5c15b8cf43b21528dec09a98ce34b2753e696ba3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 27 22:22:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 22:22:27 2017 +0000"
      },
      "message": "Merge \"Fix pre-L MB_CUR_MAX.\""
    },
    {
      "commit": "5927b04ce7d9d4727a4a644f8af4040b8dab5d0a",
      "tree": "5ec387d3cee1308a0813ac4a1ef4f07a81f63dcb",
      "parents": [
        "5d0c1fcc8b50c040f8828db4b3bb9ba11f8f9447",
        "41a3a6f3cf36d626bb8ae474291bda58fc10aba2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 24 19:11:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 19:11:13 2017 +0000"
      },
      "message": "Merge \"Hide internal __system_property_* functions\""
    },
    {
      "commit": "77463d81e6d75c9c8882f825563c6560864730ac",
      "tree": "a660c1b4131e35fe6b5dc559263d4bc3fbcdd155",
      "parents": [
        "36780784402d42c29eb116b54275d52a9e654efc",
        "893fd97cdcfbb040c938acac42658c885da879ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 16:55:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 16:55:25 2017 +0000"
      },
      "message": "Merge \"Use \u003clinux/eventpoll.h\u003e to implement \u003csys/epoll.h\u003e.\""
    },
    {
      "commit": "893fd97cdcfbb040c938acac42658c885da879ee",
      "tree": "0895bc2463681e35c48805993bbcc95c01b581e9",
      "parents": [
        "c84e8a507cd0384f9124d06ec6cc70807b4c293b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 22 23:22:51 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 17:26:24 2017 -0800"
      },
      "message": "Use \u003clinux/eventpoll.h\u003e to implement \u003csys/epoll.h\u003e.\n\nBug: https://github.com/android-ndk/ndk/issues/302\nTest: builds\nChange-Id: Ia3074326a128c38f2488e342c028cc030801cfd9\n"
    },
    {
      "commit": "41a3a6f3cf36d626bb8ae474291bda58fc10aba2",
      "tree": "d13f02dfa3b359e36980ae015cb190a695c7306c",
      "parents": [
        "7f24a4f5565f5392ade4edbd5583ee0a0b43570e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 16 15:34:21 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 23 14:20:13 2017 -0800"
      },
      "message": "Hide internal __system_property_* functions\n\nBug: http://b/34114501\nTest: bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I1fc57b4ced6aaf841aad64e12e7696d25c2e027b\n"
    },
    {
      "commit": "4473e34acbd9b8f97f04dd52ac7ccd856370e6d1",
      "tree": "2e05afe679d27eaad883e9c2a3bfd11fd2c74f33",
      "parents": [
        "45715b2a88c8daf5a721ce9b28391120f5507764"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 11:09:32 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 23 11:09:32 2017 -0800"
      },
      "message": "Add legacy inlines for more termios stuff.\n\nTest: make checkbuild # with my versioner-in-build patches\nBug: https://github.com/android-ndk/ndk/issues/302\nChange-Id: Ib00b5dadf23592d101486b4f2188285ec03c9e2a\n"
    },
    {
      "commit": "5c15b8cf43b21528dec09a98ce34b2753e696ba3",
      "tree": "de39eb2dad33ef21de00534f38e311415ac73112",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 21 15:54:58 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 21 15:56:37 2017 -0800"
      },
      "message": "Fix pre-L MB_CUR_MAX.\n\nThe default locale is POSIX, not C.UTF-8. POSIX explicitly states\nthat MB_CUR_MAX is 1 for the POSIX locale:\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html\n\nTest: Made change in the NDK, built libc++ against it, ran NDK libc++\n      tests.\nBug: None\n\nChange-Id: Ic2f6f96aa4a7f20d619030f41323831d01002715\n"
    },
    {
      "commit": "40c885a4d18dd1e4480615ddd00c9f035dc08567",
      "tree": "58adbfd0852a7bb1d51122339b6a00e27bb6bcaf",
      "parents": [
        "40854235256c3f51f9ea866f5f8ef03240c00123"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 16 17:13:04 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 14:36:24 2017 -0800"
      },
      "message": "Add timeout support to __system_property_wait.\n\nBug: http://b/35201172\nTest: ran tests\nChange-Id: I3a78813bf3cd50d1b308ecb3c742f923606c0cc4\n"
    },
    {
      "commit": "4c78ca7e3cf3f7fd4bc17001ae7576b6c6722036",
      "tree": "2ebf500f1c18dfcf5d36037fa5394df441a18159",
      "parents": [
        "fec0e015ce0369b3ad710547f3d6af343b2cd5e1"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Feb 17 11:08:53 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Feb 17 11:08:53 2017 -0800"
      },
      "message": "Cleanup now that we don\u0027t need __NDK_FPABI__.\n\nTest: tools/update_headers.sh \u0026\u0026 make checkbuild\nBug: None\nChange-Id: I1b9986c4d7d5da349a8ad394e8fcf64b87c89fdf\n"
    },
    {
      "commit": "606ba2762e6d1062a2cbf4599b7bdb60ce5cc404",
      "tree": "27dd5ef42c128c4c8dca99f48b0f96ac58f0ac44",
      "parents": [
        "c54937b9726b7d7ca797f47bef249a31e306f267",
        "9c2094f3c527301068f2049eefd9e684a7995352"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 15 19:14:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 15 19:14:50 2017 +0000"
      },
      "message": "Merge changes I9d06ea8a,I2d157024\n\n* changes:\n  Fixup API level guards for new fortify functions.\n  Guard the GNU strerror_r with an API check.\n"
    },
    {
      "commit": "c54937b9726b7d7ca797f47bef249a31e306f267",
      "tree": "55bae87a1a408a8a63217cf8a01ede792b54475d",
      "parents": [
        "7b5245408499ef48afc8def662fcfab09683e1c4",
        "95b59c520b24aabcdc63b93a3f1eaf73e57a3afe"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 15 18:26:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 15 18:26:50 2017 +0000"
      },
      "message": "Merge \"add fortified implementations of send/sendto\""
    },
    {
      "commit": "9c2094f3c527301068f2049eefd9e684a7995352",
      "tree": "e5c03a364d9abadd8c2d0cc63e865e81d4cfc4c2",
      "parents": [
        "8b154b1e8233e1d34a6a66b72369f05f8655b653"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 19:28:18 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 22:22:13 2017 -0800"
      },
      "message": "Fixup API level guards for new fortify functions.\n\nTest: tools/update_headers.sh \u0026\u0026 make checkbuild\nBug: None\nChange-Id: I9d06ea8a5ee9dc27d957f59e6e84150651ed1c76\n"
    },
    {
      "commit": "8b154b1e8233e1d34a6a66b72369f05f8655b653",
      "tree": "dd79c943d9db486842c8e4402cbd529ea2066f1d",
      "parents": [
        "9fc52deab1c6bec6a37860242eafe1ae4c205e44"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 16:33:06 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 14 19:29:31 2017 -0800"
      },
      "message": "Guard the GNU strerror_r with an API check.\n\nThe deprecated headers have always had only the POSIX definition\navailable (and it\u0027s always been available). With the unified headers\nas they are now, we actually make it unavailable for C++ users (C++\nimplies _GNU_SOURCE) targeting below M. Adding this guard means that\npre-M users will still at least get the POSIX one.\n\nIt\u0027s not great that moving to M as your target API will actually\nchange the signature of your strerror_r, but I don\u0027t see a better\noption here (not until we have the compatibility library, anyway).\n\nTest: make checkbuild\nBug: None\nChange-Id: I2d15702467533a826c4ec10fd973ee929d2b562a\n"
    },
    {
      "commit": "95b59c520b24aabcdc63b93a3f1eaf73e57a3afe",
      "tree": "76e43d9ec4f387c5774508c9e6c9d728a21c8052",
      "parents": [
        "9fc52deab1c6bec6a37860242eafe1ae4c205e44"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Feb 13 17:27:59 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 14 15:50:28 2017 -0800"
      },
      "message": "add fortified implementations of send/sendto\n\nBug: None\nTest: Bullhead builds+boots; CtsBionicTestCases passes.\nChange-Id: I2f137a100f679f7f2145d84b2f29ddd3e96a36ae\n"
    },
    {
      "commit": "ade3be476fa918ea4e412f584e1e941260a7205c",
      "tree": "7042787c47c8ed0c40361e33b3b5f8ddf9a2542b",
      "parents": [
        "9fc52deab1c6bec6a37860242eafe1ae4c205e44",
        "a0d374d587ec18d437d0dd15ba1332aceaa188af"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 03:48:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 03:48:26 2017 +0000"
      },
      "message": "Merge \"Add __system_property_wait and return the serial in __system_property_read_callback.\""
    },
    {
      "commit": "a0d374d587ec18d437d0dd15ba1332aceaa188af",
      "tree": "a9466c8841140cf70290c54d50354f245ea3a9db",
      "parents": [
        "132768084e24119c337e56fd110b97a23e5593c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 18:13:46 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 13:30:10 2017 -0800"
      },
      "message": "Add __system_property_wait and return the serial in __system_property_read_callback.\n\nIn order to implement android::base::WaitForProperty well, we need a way to\nwait not for *any* property to change (__system_property_wait_any), but to\nspecifically wait for the property represented by a given `prop_info` to\nchange.\n\nThe android::base::WaitForProperty implementation, like attempts to cache\nsystem properties in the past, also needs a way to keep serials and values\nin sync, but the existing functions don\u0027t provide a cheap way to get a\nconsistent snapshot. Change the __system_property_read_callback callback\u0027s\ntype to include the serial corresponding to the given value.\n\nAdd a test, slightly clean up some of the existing tests (and name them to\ninclude the names of the functions they\u0027re testing, in our usual style).\n\nBug: http://b/35201172\nTest: ran tests\nChange-Id: Ibc8ebe2e88eef1e333a1bd3dd7f68135f1ba7fb5\n"
    },
    {
      "commit": "156d5a8ae93c6515919dd6706481991c7c0dc600",
      "tree": "babd491737f6965d7c6910869b435e5e47cf7cdc",
      "parents": [
        "e86a8d605b3df0c396e23ee02933c76d7040a73b"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Feb 10 13:56:22 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Feb 10 18:14:43 2017 -0800"
      },
      "message": "Match __bos0 to __pass_object_size0 in FORTIFY\n\npass_object_size(N) forwards the result of __builtin_object_size(param,\nN) to a function. So, a function that looks like:\n\n  size_t foo(void *const p __pass_object_size) { return __bos0(p); }\n  int bar \u003d foo(baz);\n\nwould effectively be turned into\n\n  size_t foo(void *const p, size_t sz) { return sz; }\n  int bar \u003d foo(baz, __bos(baz)); // note that this is not __bos0\n\nThis is bad, since if we\u0027re using __bos0, we want more relaxed\nobjectsize checks.\n\n__bos0 should be more permissive than __bos in all cases, so this\nchange Should Be Fine™.\n\nThis change also makes GCC and clang share another function\u0027s\nimplementation (recv). I just realized we need to add special\ndiagnostic-related overloads bits for clang to it, but I can do that in\nanother patch.\n\nBug: None\nTest: Bullhead builds and boots; CtsBionicTestCases passes.\nChange-Id: I6818d0041328ab5fd0946a1e57321a977c1e1250\n"
    }
  ],
  "next": "7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd"
}
