)]}'
{
  "log": [
    {
      "commit": "25bcf59cb3f60f84856fca66c854f223f55645d9",
      "tree": "d6fec62968dde66878d994c25e57ba2c69020a9a",
      "parents": [
        "9c123230e22d8fe9f691a72cc74def92d302a021"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Oct 23 21:32:37 2018 +0800"
      },
      "committer": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Oct 25 14:54:44 2018 +0800"
      },
      "message": "libc: Match header annotations to version script\n\nAccording to `libc.map.txt`, `pselect64()` was introduced since API\nlevel 28. This commit adds the annotations to `sys/select.h`.\n\nBug: 113263746\nTest: ./bionic/tools/versioner/run_tests.py\nChange-Id: I70ea4b23cef92857f1654cebb660e0219238fc95\n"
    },
    {
      "commit": "00dda09c08a525db748348ff55e0ad1854605da8",
      "tree": "dd1a33e69ab50ac3a928d57092541ee8ee908dcf",
      "parents": [
        "9ebcb013b192a9f882a2c06f83b39c682be74a64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 05 14:54:48 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 05 14:54:48 2018 -0700"
      },
      "message": "\u003csys/param.h\u003e: pollute the namespace with \u003cendian.h\u003e.\n\nglibc does, and autoconf relies on that for its AC_C_BIGENDIAN test.\n\nBug: N/A\nTest: N/A\nChange-Id: I3acaaf0d7a69e8ed4e64239e4fe7f21c7001e717\n"
    },
    {
      "commit": "dd6763a6c677687ad06727af037ed9a7b018c773",
      "tree": "51170c743639731a7e5a1a7540eb3f68870cb893",
      "parents": [
        "9df26193c8adc43a7ac1ba807e70d0b0772712c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 04 16:35:13 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 04 16:35:13 2018 -0700"
      },
      "message": "Another round of documentation.\n\nBug: N/A\nTest: N/A\nChange-Id: I1b818fbb36ddd6d084dee56828290c2717a0c9b0\n"
    },
    {
      "commit": "cd524ca71f90c1c1beca10c95d6cf1669da0b9fd",
      "tree": "c8275d162a2ca718f30c1dbe2cf3ef7ff3b00eac",
      "parents": [
        "ec247245deaaa9123c65f79f6f594c0a5db0c9d3",
        "be66a06412205baf1077e806eacf0c926e1d87ac"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 28 20:20:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 28 20:20:21 2018 +0000"
      },
      "message": "Merge changes from topic \"fdsan_abort_msg\"\n\n* changes:\n  fdsan: provide abort message in warning tombstones.\n  Implement pthread_sigqueue.\n  Stringify api_level in \u003candroid/versioning.h\u003e.\n  Delete archaic pre-ANSI C support.\n"
    },
    {
      "commit": "f3aa3007e34eb14e114bd86492d8e6b2673e83c6",
      "tree": "8809aa7a61d72a17c1dcf0bcb56a7d3492fa4819",
      "parents": [
        "1dc2503e1a62ae21f32ebaae483cc1f3bf43e33c"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 27 13:59:42 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 27 16:48:17 2018 -0700"
      },
      "message": "Stringify api_level in \u003candroid/versioning.h\u003e.\n\nMake it so that we can use __ANDROID_API_\u003cletter\u003e__ constants in\n__INTRODUCED_IN macros.\n\nTest: treehugger\nChange-Id: I0929c01e23e58f51d12f73200e1daf5ef484ea5d\n"
    },
    {
      "commit": "1dc2503e1a62ae21f32ebaae483cc1f3bf43e33c",
      "tree": "ea25776fecef33bccd2adec20137e209a8c320a9",
      "parents": [
        "c1b4476808702c160595e1ec725a2b0f2fbd13be"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 27 13:57:01 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Aug 27 16:48:15 2018 -0700"
      },
      "message": "Delete archaic pre-ANSI C support.\n\nTest: treehugger\nChange-Id: I02e7887a18d947e657f32760d57e58f8b3295fd8\n"
    },
    {
      "commit": "062eac88b5a997c12444cd74b490c0da202940b0",
      "tree": "f3728fb7e7cc78ff305fa916ffe4e43ae9ea7e59",
      "parents": [
        "4b9379c889ed9958094a8e82b27eb8f5d9167e5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 27 11:27:06 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 27 11:27:06 2018 -0700"
      },
      "message": "\u003csys/socket.h\u003e: add constant for kernel TLS.\n\nBug: N/A\nTest: builds\nChange-Id: I53e8dde1131fec781bee5371c03d4eb54cab9722\n"
    },
    {
      "commit": "4b9379c889ed9958094a8e82b27eb8f5d9167e5f",
      "tree": "22369dd2ec648235f37a8fe67d522c67c32ea830",
      "parents": [
        "f7f86a9669fb0d41b8400443a5cc719de8b8f65e",
        "462e90cf4dde9a0e512749b735ea1441e27ed8c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 24 17:16:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 24 17:16:53 2018 +0000"
      },
      "message": "Merge \"Start documenting libc.\""
    },
    {
      "commit": "462e90cf4dde9a0e512749b735ea1441e27ed8c5",
      "tree": "9b8f2f3a9430814c5670c319b8b1a8722b978aac",
      "parents": [
        "3fd45bba4857fdbf320b6e89d2ae0569d9463bf5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 21 16:10:48 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 23 11:03:17 2018 -0700"
      },
      "message": "Start documenting libc.\n\nBug: N/A\nTest: N/A\nChange-Id: I17345cb72a5ffc3af1688cf5874589cfb1e1fea0\n"
    },
    {
      "commit": "99d54656bda40edb817e6bc6de9a85d88ef4e6b5",
      "tree": "1a176f12c89582f0d06a3376ef66c6281d8af01c",
      "parents": [
        "8f2298e73f4d930b58a8466fd7264e9a88c96d99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 22 10:36:23 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 22 10:36:23 2018 -0700"
      },
      "message": "Add PR_SET_VMA and PR_SET_VMA_ANON_NAME to \u003csys/prctl.h\u003e.\n\nWe\u0027ve copied \u0026 pasted these to too many places. And if we\u0027re going to\nhave another go at upstreaming these, that\u0027s probably yet another reason\nto have the *values* in just one place. (Even if upstream wants different\nnames, we\u0027ll likely keep the legacy names around for a while for source\ncompatibility.)\n\nBug: http://b/111903542\nTest: ran tests\nChange-Id: I8ccc557453d69530e5b74f865cbe0b458c84e3ba\n"
    },
    {
      "commit": "b7b2884a2130c32b3ca7228891a0a9aa934a9be7",
      "tree": "0a84ca3f68ee988c501c776e0d957000aa1bf747",
      "parents": [
        "f2fb3b11c611536b19d4ce8949dffe7f151854b5",
        "0d1a8a5b0b78e0109c55b8f7a142488150b60cd6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 08 15:26:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 15:26:37 2018 +0000"
      },
      "message": "Merge \"Reland \"Retire GCC FORTIFY.\"\""
    },
    {
      "commit": "439bb1d048018c14e858156c1558effe3f626d7c",
      "tree": "9ed547cde8024a1e95e180c03f90cfa51a95789e",
      "parents": [
        "576f5253024ba4b0ff1efd6922c32594f5dac116",
        "0fe22033095dc0805c191c37075eb0c3e9d29334"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 24 23:09:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 24 23:09:57 2018 +0000"
      },
      "message": "Merge \"Fixup an out of date comment.\""
    },
    {
      "commit": "0fe22033095dc0805c191c37075eb0c3e9d29334",
      "tree": "2820e096c3e9115b48830690a78c7755d1e2b850",
      "parents": [
        "ee213170db2b1bb63e8d86f033a137b1a93c4dc8"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jul 24 13:32:41 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jul 24 13:34:34 2018 -0700"
      },
      "message": "Fixup an out of date comment.\n\nTest: n/a\nChange-Id: Ieb5d18d479becb8c92cbf71a8bb7cd67f7c27dba\n"
    },
    {
      "commit": "7763ab4bcb18be44d3c458d194d786b5a3fb5224",
      "tree": "532f3a694ece09e15b4ad9df6c9ab949980190ed",
      "parents": [
        "94ab04c17a0e9f412b7de079f2ef35f39c7f06fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 12:45:58 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 12:45:58 2018 -0700"
      },
      "message": "Use the FreeBSD __CONCAT.\n\nWe had the NetBSD __CONCAT macro, despite the fact that our only callers\nare FreeBSD code. The FreeBSD libm changes in FreeBSD r336665 require\nthe FreeBSD implementation rather than the NetBSD one.\n\nUnfortunately for me, that libm code is built in the NDK build too,\nwhere it\u0027s built against the NDK\u0027s \u003csys/cdefs.h\u003e. So I need to update\n__CONCAT first before I can update the libm code.\n\nBug: http://b/111710419\nTest: ran tests\nChange-Id: I70e76e4caab2929c939bfb7009df9fe79d26806a\n"
    },
    {
      "commit": "0d1a8a5b0b78e0109c55b8f7a142488150b60cd6",
      "tree": "48a51876da8e0a43c2c46393d03a599f016dceae",
      "parents": [
        "4dbe8fc22f96868d3e5164653a6387b86b163673"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 19:36:51 2018 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 19:36:51 2018 +0000"
      },
      "message": "Reland \"Retire GCC FORTIFY.\"\n\nThis reverts commit 4dbe8fc22f96868d3e5164653a6387b86b163673.\n\nThe angler/bullhead builds are now dead, so this can go in.\n\nBug: https://issuetracker.google.com/74404306\nChange-Id: I130cdcd6375b6125cb8a1e63a4a540b0dbe41ceb\n"
    },
    {
      "commit": "4dbe8fc22f96868d3e5164653a6387b86b163673",
      "tree": "068475a0a85f6ed4919d4443fb39e7027e8485ed",
      "parents": [
        "067bdc9546557a1a107f2617d7d15b864ff493f1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 18:54:16 2018 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 24 18:54:16 2018 +0000"
      },
      "message": "Revert \"Retire GCC FORTIFY.\"\n\nThis reverts commit 067bdc9546557a1a107f2617d7d15b864ff493f1.\n\nThe angler/bullhead builds still use GCC, so I\u0027ll wait until they\u0027re turned down.\n\nBug: https://issuetracker.google.com/74404306\nChange-Id: I777b08dd6ab5250d532b4b5cc56e9a790c13db20\n"
    },
    {
      "commit": "067bdc9546557a1a107f2617d7d15b864ff493f1",
      "tree": "48a51876da8e0a43c2c46393d03a599f016dceae",
      "parents": [
        "94ab04c17a0e9f412b7de079f2ef35f39c7f06fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 23 16:53:12 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 23 17:22:58 2018 -0700"
      },
      "message": "Retire GCC FORTIFY.\n\nNDK r18 (which removes GCC) is about to ship. We don\u0027t need this any more.\n\nThe immediate motivation for removing this right now is that the test\nfails whenever we add Clang-only flags to the build system.\n\nWhile we\u0027re here, clean up \u003cstdatomic.h\u003e too.\n\nBug: https://issuetracker.google.com/74404306\nTest: ran tests\nChange-Id: Iaad5d634d1ba76f0b6f19ad32cc27b2533771a4a\n"
    },
    {
      "commit": "e7d185f59e50afb0b1d9105f7d426584167be0f0",
      "tree": "ad2bac24da7280235bfa65bc315c14b58cc86664",
      "parents": [
        "e5a5eec5e588957aba2582ef25795bb3b573669f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 27 13:30:02 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 27 14:08:48 2018 -0700"
      },
      "message": "\u003csys/un.h\u003e: add SUN_LEN.\n\nAlso used by lldb.\n\nBug: N/A\nTest: ran tests\nChange-Id: I4c2aa60e7a3d8c691742c12ebde142d9438bf60f\n"
    },
    {
      "commit": "00a6d5fe0ab034e4d5e87636456cd49ef0ca5b8d",
      "tree": "f01406adcd3b0ae1e42b018e5dd67f5ed464e87a",
      "parents": [
        "48227e66026724f9a94d9ff9cdef0aacae75b3a9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 13 13:52:10 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 13 17:57:21 2018 -0700"
      },
      "message": "Bionic: Always use fortified versions of FD_X macros\n\nWhen compiling on/for at least Lollipop, always use the fortified\nversions of FD_X macros. This works around side-effect issues (which\nare explicitly called out in the specification) and generally\nincreases robustness of code.\n\nBug: 77986327\nTest: mmma bionic\nTest: m\nTest: bionic_unit_tests\nChange-Id: I9096c6872770e46ba5ab64e7375ff83fc0518e07\n"
    },
    {
      "commit": "de45dcbbab9c36054172637231ba32bef86a73a6",
      "tree": "4750706cdbb27c13e467c2801060988040894321",
      "parents": [
        "6655ba1c321e8af27b1e8c0676e4a619227d8395"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Mar 16 14:15:01 2018 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Mar 20 15:59:46 2018 -0700"
      },
      "message": "libc: silence unsigned-\u003esigned warnings with ioctl\n\nThis also tweaks cdefs to make __overloadable usable outside of\nFORTIFY. It had to be FORTIFY-only before we had unmarked overload\nsupport in clang+Bionic.\n\nBug: https://github.com/android-ndk/ndk/issues/402\nTest: Internal master builds + `mma`. `mma` in Bionic fails if the\nchange to ioctl is undone.\n\nChange-Id: Ib386b1786e1dca625e6d5a18682005adc734d9c1\n"
    },
    {
      "commit": "665ce210fab00911321829e6e190405ef18e5032",
      "tree": "69b8621dfae13859842cc9a2f64f409fe16040cd",
      "parents": [
        "38a78728c343f6398763ae8d7e3e8202b927a056",
        "3376c23daceddd603478347c00163f39e7c9e1ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 15 01:26:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 15 01:26:17 2018 +0000"
      },
      "message": "Merge \"Add remaining _l function stubs.\""
    },
    {
      "commit": "3376c23daceddd603478347c00163f39e7c9e1ee",
      "tree": "d8a6f5383a285783630af07f03e11a5a06677b10",
      "parents": [
        "3374d0cabb973ff2b73ad8cd909389bdeed18658"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 23:14:12 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 23:14:12 2018 -0800"
      },
      "message": "Add remaining _l function stubs.\n\nBug: http://b/65595804\nTest: ran tests\nChange-Id: I3bea3af20b354d1f0d3e05fd35421a9045f29020\n"
    },
    {
      "commit": "23415fc60d18b41b1a1ff9591176ce98b6f84485",
      "tree": "bb79fd7cf82c54ad730c8c268b68e02f29997e69",
      "parents": [
        "3374d0cabb973ff2b73ad8cd909389bdeed18658"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 19:09:04 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 19:09:04 2018 -0800"
      },
      "message": "Add uc_sigmask64.\n\nAdded to each ucontext_t for source compatibility between platforms where\nsigset_t and sigset64_t differ (arm, x86) and where they\u0027re the same\n(all the rest).\n\nBug: http://b/72493232\nTest: ran tests\nChange-Id: I65a37bfa177933701bbe6c2350448885fd0f9c43\n"
    },
    {
      "commit": "25f17e48df2e5e9e88b0c5cd2ebeded33c7cedc0",
      "tree": "f117b124c5aa047b3a4d922526040b8c894aef7c",
      "parents": [
        "919dd9dcb4ca547a67079b85494236cd5f680598"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 12 15:48:01 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 12 15:48:01 2018 -0800"
      },
      "message": "Better backwards compatibility for stat64.\n\nCaused problems for some Google source switching to unified headers\nbecause the legacy headers just used #define instead.\n\nBug: http://b/73210428\nTest: builds\nChange-Id: If8a36f284031e57af419903610029a8c34a23d91\n"
    },
    {
      "commit": "90242350053e6fd2c03640d3f9b37864d18c414d",
      "tree": "86bd08eae994cc61618b28520cab3ea1b423493e",
      "parents": [
        "2bf1d3dae262f92dbc964be467060dc6a24787af"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 06 12:51:31 2018 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Feb 06 13:35:56 2018 -0800"
      },
      "message": "Remove __overloadable/__RENAME_CLANG\n\nNow that we have a clang that supports transparent overloads, we can\nkill all of this cruft, and restore our upstream sources to their\nuntouched glory. Woohoo!\n\nBug: 12231437\nTest: Built aosp_marlin; no obvious patch-related aosp_mips issues.\nChange-Id: I520a19d014f12137f80e43f973dccd6711c571cd\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": "cc0fe6e8c0bb2dfb250522872be6facb4d4a0339",
      "tree": "73b9e54a979e9d4b1e2ce50ccc129e58b0484b31",
      "parents": [
        "4cd3550d50cb14efe3d86ab9732ce75def5b85bd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 30 08:54:12 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 30 08:54:12 2018 -0800"
      },
      "message": "The future is now (2018 edition).\n\nBug: N/A\nTest: builds\nChange-Id: Ic638e5b1f4e5901885fe7bc60b2a265817636b21\n"
    },
    {
      "commit": "c6ea39d33b50b54354e4709c4f65d83c87022adf",
      "tree": "bfec4d6262242f04eb5170cc7b2263bd203553af",
      "parents": [
        "4debf20829b152bf3efae79bc85377c44b40eb8a",
        "f81abef14852f2738043998e2f420d97ba59c286"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jan 26 17:08:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 26 17:08:26 2018 +0000"
      },
      "message": "Merge \"Use __BIONIC_FORTIFY_VARIADIC for variadic functions.\""
    },
    {
      "commit": "5f6d1a59a85d28e4ea25e55230179de9ac4d343f",
      "tree": "c003b05858d0cfb9ab861e38b7236061621cc230",
      "parents": [
        "73871ad09be8a8259171d606c4e3e3cf08d4733c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 25 22:21:25 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 25 22:21:25 2018 -0800"
      },
      "message": "\u003csys/ioctl.h\u003e shouldn\u0027t pollute the namespace as much.\n\nThe history has no motivation for \u003casm/termbits.h\u003e, and other C libraries\ndon\u0027t seem to include any of the extra types and constants that gains us.\n\nThis caused problems building FFMPEG, which defines its own B0.\n\nBug: https://github.com/android-ndk/ndk/issues/630\nTest: builds\nChange-Id: If032b9fa7860777c13f7bd8e68fb78ff606dcd94\n"
    },
    {
      "commit": "f81abef14852f2738043998e2f420d97ba59c286",
      "tree": "6dd2d8846f0a34993159a8576a35a2a20411f972",
      "parents": [
        "4a2407b3a1ad7b71bbc617ffdee961e416b121e4"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jan 25 15:30:27 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jan 25 17:54:50 2018 -0800"
      },
      "message": "Use __BIONIC_FORTIFY_VARIADIC for variadic functions.\n\n* Variadic functions usually cannot be inlined.\n* Do not use misleading __always_inline attribute,\n  and also avoid early clang 7.0 compiler bug.\n\nBug: 72412382\nTest: build and boot aosp*-eng in emulator\nChange-Id: I7490976166581abc626f397ad408581ada0ed308\n"
    },
    {
      "commit": "64f355ffbd715a3c8b467c3b37701ad404b566b4",
      "tree": "04e1e9ddac688de976ae427ece327ee1c68afeb5",
      "parents": [
        "3ba327198a42eecd2fbc2556d7d0fa41f8d6b17b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 30 16:10:24 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 14 10:07:27 2017 -0800"
      },
      "message": "Use in_addr in ip_mreq_source and ip_msfilter.\n\nThis adds a new mechanism to say \"replace struct S with #include \u003cbits/S.h\u003e\".\n\nAlso switch epoll_event over to the new mechanism.\n\nAlso use the kernel\u0027s struct sockaddr_storage directly rather than behind\nan unnecessary #define.\n\nThis patch also removes some dead code in the header scrubber. This code\nstill needs rewriting completely. I learned that a \"block\" isn\u0027t necessarily\na single struct definition, say; it might be a run of them. It seems like\na block is a run of preprocessor directives or a run of regular code.\n\nBug: https://issuetracker.google.com/36987220\nTest: new test\nChange-Id: Ic6a5c09559766a4babe3cd4c3ea538b885e07308\n"
    },
    {
      "commit": "21b56ebbd49362d293e1f56c4b3265c227bbbbae",
      "tree": "5f86bae235f84b48c20d66d9973118133e945892",
      "parents": [
        "eb7347aedbc61ba45555aef3e6e863f0d90b407b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 20 17:57:17 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 13 09:01:35 2017 -0800"
      },
      "message": "Test POSIX 1003.1 2016 chapter 13 \"Headers\".\n\nAnd fix one thing that this found: apparently \u003cstdlib.h\u003e should also\nmake the various *WAIT* macros available.\n\nBug: N/A\nTest: builds\nChange-Id: Id879bf3c1bddd1170261a809e7280150a74d6b3d\n"
    },
    {
      "commit": "a6714d106b6dbab6cf994c8a4e1eff601a17d772",
      "tree": "ad5552dd505ed68b35f9aff8d91f3b8d17192872",
      "parents": [
        "fdacec1d4237373354d10c5a400c9c7a3a975285"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 04 14:16:38 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 04 14:16:38 2017 -0800"
      },
      "message": "Make our fortify FD_ISSET const, and expose the fd_mask type.\n\nBug: http://b/70171464\nTest: ran tests\nChange-Id: Ifbee29d9888ce7cf76b99844dd9700128256a486\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": "e5d66eb86a46b8ef1a8d03b322096328b063d3c0",
      "tree": "30d36213904915e77b508318352ebe02611069ab",
      "parents": [
        "82e6ad1242c6a26fb624dc81a42edf6272dd27b7"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Oct 30 21:41:22 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Oct 30 22:30:40 2017 -0700"
      },
      "message": "libc: Disable FORTIFY if we\u0027re using clang-tidy.\n\nHaving FORTIFY enabled for clang-tidy adds no value, and breaks some\nheuristics for recognizing standard library functions (see the bug).\n\nThis also disables FORTIFY for the static analyzer (which we use\nthrough clang-tidy), because it presumably tries to recognize standard\nlibrary functions through similar heuristics.\n\nBug: 36664104\nTest: mma with and without the patch to cdefs. New test breaks without.\nChange-Id: I40c66ff9e638b306878ada006bc2c98f2346e77a\n"
    },
    {
      "commit": "8c2323c697289508e7c9ec15ac802afb0ab9a046",
      "tree": "3999b3d031db052787c2259104187b34c57f9f37",
      "parents": [
        "3dacc4764220fc5e7969e4281f5cfca8f2082241"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 05 16:39:33 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Oct 06 16:01:36 2017 -0700"
      },
      "message": "Fix \"Add a legacy inline for mmap64\".\n\nAutosubmit fired before the CL was actually ready (forgot to hit \"y\"\non the repo upload).\n\nTest: make checkbuild\nTest: copied into the NDK and ran mmap64_fob64 test.\nBug: lots\nChange-Id: I8c0400a703f319e8e230f7ba9178009ed7c88be0\n"
    },
    {
      "commit": "a613d0df5c682617380728a7d151483de05a4f92",
      "tree": "5a73110db954e5fc92116ad0930ed83495607729",
      "parents": [
        "3e8584d4a7d617289e8a954711ba895415d781c4"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 05 16:39:33 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Oct 05 23:41:47 2017 -0700"
      },
      "message": "Add a legacy inline for mmap64.\n\nWhile this was never an inline, this function alone has caused most of\nthe bug reports related to _FILE_OFFSET_BITS\u003d64. Providing an inline\nfor it should allow a lot more code to build with _FILE_OFFSET_BITS\u003d64\nwhen targeting pre-L.\n\nTest: make checkbuild\nTest: built trivial cc_binary for LP32 against API 14 with\n      _FILE_OFFSET_BITS\u003d64 set\nBug: lots\nChange-Id: I8479d34af4da358c11423bee43d45b59e9d4143e\n"
    },
    {
      "commit": "8465e968a8a92c77d57360837a9e725972a745e6",
      "tree": "f8bd05e55680224a407ac55afaef58b668868b05",
      "parents": [
        "96510935697c2934427f0c14d0b153244e8cfb2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 27 16:33:35 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 29 05:31:35 2017 +0000"
      },
      "message": "Add \u003csys/random.h\u003e.\n\niOS 10 has \u003csys/random.h\u003e with getentropy, glibc \u003e\u003d 2.25 has\n\u003csys/random.h\u003e with getentropy and getrandom. (glibc also pollutes\n\u003cunistd.h\u003e, but that seems like a bad idea.)\n\nAlso, all supported devices now have kernels with the getrandom system\ncall.\n\nWe\u0027ve had these available internally for a while, but it seems like the\ntime is ripe to expose them.\n\nBug: http://b/67014255\nTest: ran tests\nChange-Id: I76dde1e3a2d0bc82777eea437ac193f96964f138\n"
    },
    {
      "commit": "50cda38f1ddfb0216e986f60cdc877fb9c55ebba",
      "tree": "fb702878229b8b64a5386ece09d32653b7c6a3e4",
      "parents": [
        "3b64f8ecb3db49574cc5b7c6030be98c159be4d4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 14 15:30:08 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 14 16:10:43 2017 -0700"
      },
      "message": "Use __RENAME for long double functions.\n\nWe can cut a lot of stuff out of the NDK\u0027s libandroid_support with this,\nand reduce unnecessary relocations for all LP32 code. LP64 code should\nbe unaffected.\n\nBug: https://issuetracker.google.com/64450768\nBug: https://github.com/android-ndk/ndk/issues/507\nTest: ran tests, plus manual readelf on the _test.o files\nChange-Id: I3de6015921195304ea9c829ef31665cd34664066\n"
    },
    {
      "commit": "4c0803d16504079f58c85f88f376c0d3842004c5",
      "tree": "82867b5f77ff846ec863f388c908898b8c0577ee",
      "parents": [
        "60103831eb96217983e9e98fc4ec88ae9f48a7c6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 08 16:52:59 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 11 13:21:35 2017 -0700"
      },
      "message": "Cast __builtin_swap64 to uint64_t.\n\nstrace 4.19 causes clang to emit a questionable warning:\n\n  external/strace/nlattr.c:254:35: error: format specifies type \u0027unsigned long\u0027 but the argument has type \u0027unsigned long long\u0027 [-Werror,-Wformat]\n                tprintf(\"htobe64(%\" PRIu64 \")\", be64toh(num));\n                                 ~~~            ^~~~~~~~~~~~\n  bionic/libc/include/sys/endian.h:100:20: note: expanded from macro \u0027be64toh\u0027\n  #define be64toh(x) htobe64(x)\n                     ^~~~~~~~~~\n  bionic/libc/include/sys/endian.h:80:17: note: expanded from macro \u0027htobe64\u0027\n  #define htobe64 __swap64\n                  ^\n  bionic/libc/include/sys/endian.h:48:18: note: expanded from macro \u0027__swap64\u0027\n  #define __swap64 __builtin_bswap64\n                   ^\n\nWhat\u0027s happened here is:\n\n* be64toh is __builtin_bswap64\n\n* PRIu64 is \"lu\"\n\n* __builtin_bswap64 is internally declared a \"ULLiULLi\"\n\nAll of which leads to the `unsigned long` !\u003d `unsigned long long` complaint.\n\nIt seems like __builtin_bswap64 should be ULiULi on 64-bit architectures,\nwhere `long` rather than `long long` is the natural way to refer to 64-bit\ntypes, as evidenced by the \"lu\" for PRIu64.\n\nAs long as clang behaves like this, though, we can work around it with a cast.\n\nAlso clean up the other casts in the file, be more consistent about whether\nthese function-like macros are defined with an argument, and remove an\nincorrect comment.\n\nBug: http://b/65495954\nTest: ran tests, built strace 4.19 without warnings\nChange-Id: I8e06d4bf71e95d62f556eab8661033e04d487e0d\n"
    },
    {
      "commit": "7ac99d3ff6f246c928e6e6dfe4a374de1c85037f",
      "tree": "4003f1f5ccf26c1fbef3251df3aba56ad18d9758",
      "parents": [
        "cbb09bcbb16d728a0e03de0d5d33fc95d833aedf",
        "d9551db089e01d08db4198d7cef4aaecc878b9ea"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 18 22:52:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 18 22:52:27 2017 +0000"
      },
      "message": "Merge \"Disable FORTIFY on ASAN builds\""
    },
    {
      "commit": "d9551db089e01d08db4198d7cef4aaecc878b9ea",
      "tree": "a8cdee1eb37db3533366f8bff3bfffe010e0a9df",
      "parents": [
        "cf3b0c183d9a6910db6384e6f8095c414041ea0c"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Aug 17 18:51:02 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Aug 18 13:33:45 2017 -0700"
      },
      "message": "Disable FORTIFY on ASAN builds\n\nFORTIFY\u0027s *_chk functions mess with ASAN\u0027s library function\ninterceptors, which can apparently result in false-positives.\n\nSince adding even more complexity to every run-time check condition in\nFORTIFY doesn\u0027t seem like a great idea, and the majority of our builds\nwill still use FORTIFY anyway, turning FORTIFY off here seems\nreasonable.\n\nBug: 63104159\nTest: checkbuild on internal master + CtsBionicTestCases. No new\nfailures.\n\nChange-Id: Id32e551e28ee70a9815ad140c3253b86f03de63f\n"
    },
    {
      "commit": "ff26a16c1de7be696719e9001f0707b7c55b52cf",
      "tree": "1f2667df4a1ed2dd79cb53a6231cb88d3d9ade13",
      "parents": [
        "9af9120091ceb96641d7c6c645fabad96db4bc0d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 17 22:34:21 2017 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 18 00:00:38 2017 +0000"
      },
      "message": "Re-submit \"Name function arguments in libc headers for Studio.\"\n\nThis reverts commit 9af9120091ceb96641d7c6c645fabad96db4bc0d (a revert\nof 079bff4fa52b0c3c76057451cc9cdecf1827fce0), now the versioner bug is\nfixed.\n\nBug: http://b/64613623 # header bug\nBug: http://b/64802958 # versioner bug\nChange-Id: I1cb9d7832d4b3aecdc57a9285e2291443e59d02d\n"
    },
    {
      "commit": "9af9120091ceb96641d7c6c645fabad96db4bc0d",
      "tree": "0ac35e33169ae9b07c075a3c623148d2e974d14f",
      "parents": [
        "079bff4fa52b0c3c76057451cc9cdecf1827fce0"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 17 18:29:54 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 17 18:29:54 2017 +0000"
      },
      "message": "Revert \"Name function arguments in libc headers for Studio.\"\n\nThis reverts commit 079bff4fa52b0c3c76057451cc9cdecf1827fce0.\n\nBroke builds with SANITIZE_HOST\u003daddress with an asan failure in versioner.\n\nChange-Id: I22b113fd5405589d1a25e5e137c450aaba1ade5f\n"
    },
    {
      "commit": "079bff4fa52b0c3c76057451cc9cdecf1827fce0",
      "tree": "1f2667df4a1ed2dd79cb53a6231cb88d3d9ade13",
      "parents": [
        "67e7bf137e00a6c9ef79396e40be6b1705a2758c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 16 16:30:54 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 16 16:30:54 2017 -0700"
      },
      "message": "Name function arguments in libc headers for Studio.\n\nSecond batch of headers...\n\nBug: http://b/64613623\nTest: builds\nChange-Id: I8eef043dbf32afee8ff814e9d005f46aee8fa21f\n"
    },
    {
      "commit": "1de2e358caf9a22359e38ab8573cc3e5dcc1602f",
      "tree": "4098a9c70235e18fc187e4972c91392a98fdc548",
      "parents": [
        "30438e4cea83628bcacbedff37a35398bb8b40e7"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 15 11:03:07 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Aug 15 21:20:09 2017 -0700"
      },
      "message": "Enable FORTIFY in unoptimized builds\n\nGCC\u0027s FORTIFY required optimizations to be enabled in order to function\nproperly. Clang\u0027s FORTIFY doesn\u0027t have this limitation, so it seems\npointless to keep it disabled due to a GCC-specific limitation.\n\nBug: 12231437\nTest: Checkbuild on bullhead internal master + CtsBionicTestCases. No\nnew failures.\n\nChange-Id: I74aa35f9d3f3d2a6b11a7adfe72a787e3d7f7f36\n"
    },
    {
      "commit": "3f66e74b903905e763e104396aff52a81718cfde",
      "tree": "236c66bbc263af683c3cb1d593fc39e69c184078",
      "parents": [
        "3e523a65620c3840af69a19cbc1e078d07649c7b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 13:24:40 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 13:24:40 2017 -0700"
      },
      "message": "Remove nullability specifications.\n\nBug: http://b/64251432\nTest: builds\nChange-Id: I5b1613484783f7478d30b5e694007f77fa626659\n"
    },
    {
      "commit": "ec6850d849746ffbafaaf9b993c5dbb74a014b3f",
      "tree": "61861bc94bfe8ebb50cfb263610f7d47d367b769",
      "parents": [
        "c2a10f7f1bc23e81a49bcf4e98989042865261b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 08:28:46 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 01 08:28:46 2017 -0700"
      },
      "message": "Remove restrict/__restrict.\n\nWe\u0027ve never really used __restrict: only \u003cstring.h\u003e and \u003cstdio.h\u003e (which\nare still very similar to upstream BSD headers) consistently have these\nannotations. Neither clang nor GCC warns for trivial cases, and there\u0027s\nlittle obvious documentation benefit.\n\nBug: http://b/30833514\nTest: builds\nChange-Id: I3e4384281865475d0c55d764b546d8166419ee31\n"
    },
    {
      "commit": "c2a10f7f1bc23e81a49bcf4e98989042865261b3",
      "tree": "2eb189efe875b74becb94b20f2724a3096c68445",
      "parents": [
        "1db06faa3891bd056431a5aa8f27c5bc34ad7988",
        "b97d7dd5a1f8e2941be9c5762ffa4b0b76eadcbc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 02:32:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 02:32:33 2017 +0000"
      },
      "message": "Merge \"libc: Add diagnose_if macros to cdefs.\""
    },
    {
      "commit": "1db06faa3891bd056431a5aa8f27c5bc34ad7988",
      "tree": "34534e0d9ab0152ab0b095145df9d57e7c4d17e4",
      "parents": [
        "4dd33f92d82b9fb77152bfc68f312d2fa5710a28",
        "b97049c0390cb1a11b9cb0b14391972e69398ce5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 02:03:52 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 02:03:52 2017 +0000"
      },
      "message": "Merge \"libc: Split FORTIFY into its own headers\""
    },
    {
      "commit": "b97d7dd5a1f8e2941be9c5762ffa4b0b76eadcbc",
      "tree": "40b103bf6fb951983f157f7a3ea943e0f94c347f",
      "parents": [
        "38bcf2b704eb5038668759d2dd37115aea1dc437"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 16:57:15 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 31 16:58:43 2017 -0700"
      },
      "message": "libc: Add diagnose_if macros to cdefs.\n\nI plan on having one review per file for the enable_if-\u003ediagnose_if\nFORTIFY migration. Having this in means that no one review is dependent\non another.\n\nBug: 12231437\nTest: m.\nChange-Id: Ic0b07d7f7f6782e371c8792eb1e40cdfa32d3e35\n"
    },
    {
      "commit": "b97049c0390cb1a11b9cb0b14391972e69398ce5",
      "tree": "c331f88d0cb75e427564fdebd15738adf410f501",
      "parents": [
        "38bcf2b704eb5038668759d2dd37115aea1dc437"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jul 24 15:05:05 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Jul 27 17:00:13 2017 -0700"
      },
      "message": "libc: Split FORTIFY into its own headers\n\nThis patch cleans up our standard headers by moving most of the FORTIFY\ncruft out in to its own sandbox. In order to include the *_chk and\n*_real declarations, you can either enable FORTIFY, or `#define\n__BIONIC_DECLARE_FORTIFY_HELPERS`.\n\nBoth sys/select.h and strings.h are explicitly ignored by this patch.\nBoth of these files have very small __BIONIC_FORTIFY blocks, and don\u0027t\ndefine any actual FORTIFY\u0027ed functions (just macros, and 3 *_chk\nfunctions).\n\nThis patch also makes the versioner ignore the FORTIFY implementation\nheaders, since we\u0027re guaranteed to pick the FORTIFY\u0027ed headers up when\nlooking at the regular headers. (...Not to mention that making the\nFORTIFY\u0027ed headers freestanding would be annoying to do and maintain for\n~no benefit).\n\nWe bake the knowledge of where FORTIFY headers live directly into the\nversioner. We could go with a more general approach (e.g. adding an -X\nIGNORED_FILE flag that tells the versioner to ignore\n$HEADER_PATH/$IGNORED_FILE), but we\u0027d then have to repeat that for every\ntest, every manual invocation of the versioner, etc. for no benefit\nthat\u0027s obvious to me.\n\nBug: 12231437\nTest: m checkbuild on bullhead internal master + CtsBionicTestCases. no\nnew errors.\n\nChange-Id: Iffc0cc609009b33d989cdaddde0a809282131a5b\n"
    },
    {
      "commit": "f54fa4e585f8bcb9748992614973e5709ee3bba7",
      "tree": "2b022736bcb9190d716c003425cd8e98bdd9f729",
      "parents": [
        "38bcf2b704eb5038668759d2dd37115aea1dc437"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 27 15:14:52 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 27 15:14:52 2017 -0700"
      },
      "message": "Remove workaround in \u003csys/epoll.h\u003e.\n\nLinux 4.12 has a better fix: https://lkml.org/lkml/2017/2/23/416 and\nhttps://lkml.org/lkml/2017/2/23/417.\n\nBug: N/A\nTest: builds\nChange-Id: I9cbf0c60817332142c48297899062f1a25f2b082\n"
    },
    {
      "commit": "7c5a85165612641970973d426bad99257db3e149",
      "tree": "957c3b8f9ebf45cd310afd288317b7e11937078f",
      "parents": [
        "0d6485eca47f0e860486795b2da97679948fd5d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 20 10:00:28 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 20 10:00:28 2017 -0700"
      },
      "message": "Use __RENAME_IF_FILE_OFFSET64 where possible.\n\nIt\u0027s not usable for cases where the off_t and off64_t functions became\navailable in different API levels, so it\u0027s not as big an improvement as\nwe\u0027d hoped, but it cleans up several headers and should be usable for\nany future additions (though recent Linux additions have _only_ supported\noff64_t anyway).\n\nBug: N/A\nTest: builds\nChange-Id: I18b00f30666079d9d12d5b9c0ed916076d6c3641\n"
    },
    {
      "commit": "f5605374da9605686352300de3e1bf342e72032d",
      "tree": "3476fdc8ee5845bd276cb6b834392e4532feb16d",
      "parents": [
        "dcdd0e37603215320d4fd175792aeef279a80606"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 17 14:05:44 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 17 14:05:44 2017 -0700"
      },
      "message": "Add __RENAME_IF_FILE_OFFSET64.\n\nConvenience macro for __RENAME if __USE_FILE_OFFSET64 mode. Lets us\navoid duplicating all the doxygen comments in frameworks headers.\n\nTest: make checkbuild\nBug: https://github.com/android-ndk/ndk/issues/459\nChange-Id: Ica44f22b2f1596e484694006c0926d94d16187b5\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd",
      "tree": "0f995c0878649447ef160e727505ae81495dcdde",
      "parents": [
        "2bfb8c9180603bac97dca2d8e359f71bb11f7126"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 09 00:00:31 2017 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Feb 09 15:49:32 2017 -0800"
      },
      "message": "libc: add clang FORTIFY support\n\nThis patch adds clang-style FORTIFY to Bionic. For more information on\nFORTIFY, please see https://goo.gl/8HS2dW . This implementation works\nfor versions of clang that don\u0027t support diagnose_if, so please see the\n\"without diagnose_if\" sections. We plan to swap to a diagnose_if-based\nFORTIFY later this year (since it doesn\u0027t really add any features; it\njust simplifies the implementation a lot, and it gives us much prettier\ndiagnostics)\n\nBug: 32073964\nTest: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests\npass on Angler and Bullhead.\n\nChange-Id: I607aecbeee81529709b1eee7bef5b0836151eb2b\n"
    },
    {
      "commit": "5dc75c6c4de42a3a05faed6e39e13e71d258897f",
      "tree": "0daa51584f72beb67cbe072f34ca67898212f381",
      "parents": [
        "93e272d00a4155600227ce485f028c1fa8580f2c",
        "a29821bb455e6c23b2c9fe13bf1436610c4eb412"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 30 23:01:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 23:01:01 2017 +0000"
      },
      "message": "Merge \"glibc ipc64_perm __key compatibility.\""
    },
    {
      "commit": "a29821bb455e6c23b2c9fe13bf1436610c4eb412",
      "tree": "f6b62cb38c967bd8dc9cfdb43e0d727d6f0092f8",
      "parents": [
        "6a9e0c8f15dee1b1b7c5cd7f8e058c2b18683bbc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 27 19:12:32 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 27 19:12:32 2017 -0800"
      },
      "message": "glibc ipc64_perm __key compatibility.\n\nglibc gives the `struct ipc64_perm` fields `key` and `seq` double-underscore\nnames. strace refers to the fields by those names, and there\u0027s no obvious\nreason not to go along with this.\n\nBug: N/A\nTest: built strace 4.15 with a hacked NDK\nChange-Id: I8b2b0f75363349d99edaecda50fe897ee0fa0c65\n"
    },
    {
      "commit": "f8562c5f8f0a8df88bd864b8c64eeb9b8905b97d",
      "tree": "b5f9e89d8683da813350e680a1e19882473e8485",
      "parents": [
        "6a9e0c8f15dee1b1b7c5cd7f8e058c2b18683bbc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 26 16:48:57 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 27 16:19:59 2017 -0800"
      },
      "message": "Remove backwards compatibility for old system properties.\n\nNo-one is directly upgrading from pre-K to O...\n\nAlso move more implementation details out of the header file.\n\nBug: http://b/33926793\nTest: boots\nChange-Id: I7a0936acbb1cea8a3b2cd6797ec53ba7e4a050f3\n"
    },
    {
      "commit": "16b2a4de143a026b8d467b7d242126adcf67242b",
      "tree": "56e0d6455248408f5c485c8a5403bb970441f7a8",
      "parents": [
        "40250bb6837da0eb0f0882efd07bdaefb3f304b1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 20:43:29 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 12:58:18 2017 -0800"
      },
      "message": "Revert \"Revert \"Remove limit of system property name length\"\"\n\nThis reverts commit 489f58b5eaedd5a80635bb3a7b39e97037c585f6.\nBug: http://b/33926793\nBug: http://b/34670529\nTest: Run bionic-unit-tests --gtest_filter\u003dprop*\n\nChange-Id: Id4e94652dc2310a21f5b7bd3af098bf79df3f380\n"
    },
    {
      "commit": "489f58b5eaedd5a80635bb3a7b39e97037c585f6",
      "tree": "af22a101af7a53336af2669978e9a507f589fbd5",
      "parents": [
        "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jan 24 18:39:04 2017 +0000"
      },
      "message": "Revert \"Remove limit of system property name length\"\n\nThis reverts commit 5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c.\nBug: http://b/33926793\nBug: http://b/34670529\n\nChange-Id: I0dc4a8ae55576c69b34b2958d8e664f7066b9c54\n"
    },
    {
      "commit": "5c1ce278f31bc6fc338b9b951f1adc7c2b343d7c",
      "tree": "0652006476a923c95c16837640a52f9298322a35",
      "parents": [
        "7844b4c5dbd0be9ea4212a523da2dd6a4804032c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 03 11:26:38 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 11:21:18 2017 -0800"
      },
      "message": "Remove limit of system property name length\n\nThis change introduces new __system_property_read_callback\nmethod to use in place of deprecated __system_property_read\n__system_property_set() and get() should just work but now\ndo not have limit on system property names.\n\nBug: http://b/33926793\nTest: boot device, run adb shell propget\nTest: boot device with old version of init (protocol v1)\nTest: run bionic-unit-tests --gtest_filter\u003dprop*\nChange-Id: I619fb5a7e27a272aac30011579665f6160888bc7\n"
    },
    {
      "commit": "dc94cf5cd8fb943cb5bcbaccc54c401de7418de4",
      "tree": "5f93bc09a26bf00d820df2cdbf248313990cc399",
      "parents": [
        "2f238b32cd973f0838d7590ed869d5a43abacacc"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Tue Jan 17 14:44:31 2017 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Jan 20 09:59:26 2017 +0900"
      },
      "message": "Add props files for each partition\n\nThe following files will be added.\n- /vendor/default.prop for default prop overrides from vendor\n partition.\n- /odm/default.prop for default prop overrides from odm partition.\n- /odm/build.prop for build prop overrides from odm partition.\n\nTest: tested default/build prop files with enabling early mount, but\ndidn\u0027t test files of odm partition because odm partition doesn\u0027t\nexist now.\nBug: 34116668\nChange-Id: Ia99895a0afcdc522463d95b2f3e2841dcf2e3516\n"
    }
  ],
  "next": "581b9f661bc7d32691ac5e5ee8eac38a8807aa09"
}
