)]}'
{
  "log": [
    {
      "commit": "efcb5d9d4c4b482cf21318b2bb4aec6cf6d8e0f5",
      "tree": "2be02a5f316342fd3326532dc1ba1584ea092839",
      "parents": [
        "3d00f79f98c8b981a36a79657f07a303a2288a55",
        "44ddb31e75ff0cebea8249065606600185d58680"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 21:52:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 21:52:28 2015 +0000"
      },
      "message": "Merge \"Remove some \u003csys/cdefs.h\u003e cruft.\""
    },
    {
      "commit": "44ddb31e75ff0cebea8249065606600185d58680",
      "tree": "c15f29bd1fd7423928a7ae117ec19f952d78c1ad",
      "parents": [
        "1399759118f50071d499f88b18828e36aa2bad00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 13:00:21 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 13:00:21 2015 -0700"
      },
      "message": "Remove some \u003csys/cdefs.h\u003e cruft.\n\nIn particular, we don\u0027t need to record the peculiarities of every\nversion of GCC ever shipped. It just makes this file harder to follow.\n\nChange-Id: Ie9035d78eae86b4aed9dff3576c6f54e268aaced\n"
    },
    {
      "commit": "f8a2243ebeb3ce60e412cd7b71b31c7b31313d58",
      "tree": "c6c9bd55b48e97caebf60b5875544cdcce7f5755",
      "parents": [
        "1399759118f50071d499f88b18828e36aa2bad00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 12:34:13 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 22 12:34:13 2015 -0700"
      },
      "message": "\u003cnetinet/udp.h\u003e should include \u003clinux/udp.h\u003e.\n\nThe comment about \"other stuff\" referred to pre-uapi headers. Everything\nin the current \u003clinux/udp.h\u003e should be exposed to userspace. The only\nproblem is that BSD and Linux use different names for the members of\nstruct udphdr. We can move the Linux udphdr out of the way and use an\nanonymous union to get the best of both worlds. (Though unfortunately\nthis means that code that includes \u003clinux/udp.h\u003e directly instead of\nusing \u003cnetinet/udp.h\u003e now won\u0027t have any definition of struct udphdr.\nWe\u0027ve taken the stance in the past that you shouldn\u0027t include a linux/\nheader if there\u0027s a standard equivalent --- you should rely on us\ntransitively including it for you.)\n\nChange-Id: Ie625892441b0edd8df3b76d3fcf2cbe299077bc4\n"
    },
    {
      "commit": "c6043f6b27dc8961890fed12ddb5d99622204d6d",
      "tree": "154fe0db6e0eaeda3858d6f0bca4ba9adda9afb0",
      "parents": [
        "d75abb9614b04c3da3104099752726f9d1c6d8c7"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Aug 25 17:50:29 2015 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Sep 18 13:37:53 2015 -0700"
      },
      "message": "Define WIFCONTINUED()\n\nChange-Id: Id0feebd90d0525f3b479eb119b942eae8ca568d1\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "d75abb9614b04c3da3104099752726f9d1c6d8c7",
      "tree": "e3e64f1300f96712b7cedf4a61e1299a48486111",
      "parents": [
        "cd0ed2f174d9015da5ae7206bc4c5190cd0bb51e"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Aug 25 17:45:46 2015 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Sep 18 13:37:53 2015 -0700"
      },
      "message": "Fix SOCK_* flag definitions\n\nMIPS and the rest of the world only disagree on the first two SOCK_*\nconstants, so restructure the #ifdef accordingly.\n\nAs a deliberate side effect, this fixes SOCK_DCCP being missing on\nnon-MIPS platforms.\n\nChange-Id: I2267008f1121a7eebe1ed9097afab6e612bce7f0\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "268af26359c8f1c87585e26d2763e3a3a63f8714",
      "tree": "7b1f9d3473be16d6ad3208195e28fc3ce1dee29c",
      "parents": [
        "1c7b84ca0095e0dc4da8434e9e0c59cd2326f763"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 11 09:47:27 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 11 09:47:27 2015 -0700"
      },
      "message": "CMSG_DATA should return an unsigned char*.\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html\n\u003e CMSG_DATA(cmsg)\n\u003e    If the argument is a pointer to a cmsghdr structure, this macro\n\u003e    shall return an unsigned character pointer to the data array\n\u003e    associated with the cmsghdr structure.\n\nChange-Id: I3f89ba19cbca4e6727abc65a2bbcd59267892ba8\n"
    },
    {
      "commit": "af4713e6a5658d46570f37fe791120c60fcd34f2",
      "tree": "11d93edba33b8debc0164bd8aa90d949ec8f1572",
      "parents": [
        "a6435a186d3b0e1ec4c17f7f5e8ba2bb198faeb2"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 04 12:59:53 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 04 13:02:09 2015 -0700"
      },
      "message": "Unify unistd.h.\n\nMake unistd.h usable from all platform versions.\n\nAlso name all function parameters for Android Studio.\n\nBug: http://b/21952040\nChange-Id: Ia1777fd4a6d4e37f25cc402c28fb78c003e481e3\n"
    },
    {
      "commit": "a6435a186d3b0e1ec4c17f7f5e8ba2bb198faeb2",
      "tree": "ff0e3ec2f91a57cccb8510e56a4b3251cb1e5419",
      "parents": [
        "ba9c17053456aed4452a349cf45c5960d9231f25"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 06 14:32:25 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 04 13:02:03 2015 -0700"
      },
      "message": "Use attribute availability.\n\nBug: http://b/21952040\nChange-Id: I3998d88bc6076d60ae5cf7efd112817f80f17971\n"
    },
    {
      "commit": "adf5c7237da419393462a19c94c102abf7865c78",
      "tree": "2db8f570d64756e5e964aac8aeec4c99166a8f27",
      "parents": [
        "bfaee4bd6ad901a699df21fd44d95f34e2e7444d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 27 14:48:32 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 27 14:48:32 2015 -0700"
      },
      "message": "Fix regoff_t for LP32 and _FILE_OFFSET_BITS\u003d64.\n\nbionic is built without _FILE_OFFSET_BITS\u003d64, so internally regoff_t\nwas 32-bit on LP32, but code compiled with _FILE_OFFSET_BITS would\nexpect rm_so and rm_eo in struct regmatch_t to be 64-bit, leading to\nconfusion.\n\nBug: http://b/23566443\nChange-Id: Iae92fa545104068e4f64ce1977f5ec616859638c\n"
    },
    {
      "commit": "6f4594d5dc61bb67978c44cd6eeb0e7bfb621c9b",
      "tree": "9c925e99fe826914d93a6c1e00c5f62a8cd8c0a8",
      "parents": [
        "629ed517126b3be32f2b2e8b710e63358691c296"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 13:27:43 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 14:48:55 2015 -0700"
      },
      "message": "Add preadv/pwritev.\n\nBug: http://b/12612572\nChange-Id: I38ff2684d69bd0fe3f21b1d371b88fa60d5421cb\n"
    },
    {
      "commit": "7ac3c128bb5df83cb001cb50b6a5ee4da9a0b0e0",
      "tree": "c942f25efe8d5147ce59cb841806b2ed858fe928",
      "parents": [
        "4d5c4f085bc880af838d50f6bbd60d86e800b6e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 09:59:29 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 09:59:29 2015 -0700"
      },
      "message": "Add strchrnul.\n\nBug: http://b/18374026\nChange-Id: Iea923309c090a51a2d41c5a83320ab3789f40f1c\n"
    },
    {
      "commit": "03f22465ae3106517c5852f1904f44eb937ccbbf",
      "tree": "9298747b45c41cbd3fa7eba15978500ed7f1e8ed",
      "parents": [
        "53f2abb5ffc103b9ea7fbe2fee13edead2553f3a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 25 14:18:26 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 25 14:18:26 2015 -0700"
      },
      "message": "Add the missing aarch64 user structs.\n\nBug: http://b/23377194\nChange-Id: I7d36717e129d2e044dc2cf24de4227c3bcdd60ce\n"
    },
    {
      "commit": "afdd15456ad0c7223c690731f5eb0af54cdb0024",
      "tree": "96d486d0485a4d63d7090f72192685c3cbdd0f82",
      "parents": [
        "7e919daeaad62515ebbbf7b06badc77625a14d90"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Jul 20 21:37:29 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Aug 20 13:46:51 2015 -0400"
      },
      "message": "add fortified implementations of write/pwrite{,64}\n\nThese are just based on the read/pread{,64} implementations with the\nfunction calls and error messages adjusted as appropriate. The only\ndifference is that the buffer parameters are const.\n\nChange-Id: Ida1597a903807f583f230d74bcedffdb7b24fcf6\n"
    },
    {
      "commit": "9101b00400cfb20b96112682169c5da67e065ff2",
      "tree": "de51712678e0abbab722c1c0601c2f1508b387bf",
      "parents": [
        "807f27f9548077f114dc009f60764fb0241a2620"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Wed May 20 15:31:26 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Aug 01 00:42:30 2015 -0400"
      },
      "message": "add a fortified implementation of getcwd\n\nChange-Id: Ice3e6d3e1ff07788305dc85f8ee4059baad5fac4\n"
    },
    {
      "commit": "36443fd542a96d2ed71fc294f70fed08c115af55",
      "tree": "2b068bf653a04a8a37e9bc35114a2ebab547b1c1",
      "parents": [
        "374adfee473725994ee2568ce5aba93a7500064e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 19:52:31 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 19:54:53 2015 -0700"
      },
      "message": "Remove PAGE_SIZE from \u003climits.h\u003e.\n\nIt turns out that everyone\u0027s still getting PAGE_SIZE from \u003csys/user.h\u003e via\n\u003csys/ucontext.h\u003e via \u003csignal.h\u003e anyway.\n\nglibc has PAGE_SIZE in \u003csys/user.h\u003e rather than \u003climits.h\u003e so this part is\ngood. The bad part is that we have such wide transitive inclusion of\n\u003csys/user.h\u003e!\n\nBug: http://b/22735893\nChange-Id: I363adffe4a27b4ca1eedf695ea621f5dd2d5ca10\n"
    },
    {
      "commit": "5390173ad43aeae9b503c448cb496403d817e13b",
      "tree": "ec4e0d785f9cbef52b3c4efa531bf2ba6619926b",
      "parents": [
        "1ff4094a7f106b3de390acb1e36c45bbb878a153"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 17:44:32 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 17:44:32 2015 -0700"
      },
      "message": "Don\u0027t transitively include \u003climits.h\u003e from \u003csys/user.h\u003e.\n\nBug: http://b/22735893\nChange-Id: I27d0a1f7e2d477b8038e76bfc7fe05dd7e187344\n"
    },
    {
      "commit": "820a86f2df90419d4b0e7ae6004eb73bb804fc7e",
      "tree": "b007e46b9042cfd71d5c47c9b7715ad8d2fe3198",
      "parents": [
        "c8ba22c847bd5bfc97d29a4c565fd32993200a01"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 16:46:06 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 16:46:06 2015 -0700"
      },
      "message": "Remove PAGESIZE.\n\nThis was pretty much unused, and isn\u0027t in glibc.\n\nBug: http://b/22735893\nChange-Id: If17f0dcd931c90ef1ccb134a3950c3b0011a03f4\n"
    },
    {
      "commit": "afab3ffcce1054ec887fb347700819d69a9c8151",
      "tree": "390c1e92f59867262d1181c346948071f09d536c",
      "parents": [
        "1923d4c03a68c89f304b601545f5e8db026b9be0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 28 14:58:37 2015 -0700"
      },
      "message": "Move PAGE_MASK into \u003csys/user.h\u003e.\n\nI\u0027m removing the TODO on the assumption that being compatible with glibc\nis more useful than BSD. The new internal \"bionic_page.h\" header factors\nout some duplication between libc and the linker.\n\nBug: http://b/22735893\nChange-Id: I4aec4dcba5886fb6f6b9290a8f85660643261321\n"
    },
    {
      "commit": "fed2659869ec41a93f655be8058568ddab419e01",
      "tree": "5dca1c6f1f120a561d5279eb76816e94e210cb94",
      "parents": [
        "2565492db0d67b95348cd1c3026ed338ca59aa37"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Jul 18 13:55:51 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Jul 23 18:55:46 2015 -0400"
      },
      "message": "add fortified implementations of fread/fwrite\n\nA __size_mul_overflow utility is used to take advantage of the checked\noverflow intrinsics in Clang and GCC (\u003e\u003d 5). The fallback for older\ncompilers is the optimized but less than ideal overflow checking pattern\nused in OpenBSD.\n\nChange-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69\n"
    },
    {
      "commit": "a7a87dda4ae2796c315519f506c8156c33c47e79",
      "tree": "177667fa5ff592aa98cc7069e8d3a2595a3dab91",
      "parents": [
        "4f2e1d3b1e3b3729b551c22c5a0be8d07795adfd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 19:10:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 19:10:24 2015 -0700"
      },
      "message": "\u003csys/time.h\u003e should include [most of] \u003csys/select.h\u003e.\n\nFound by trying to build c-ares with bionic.\n\nChange-Id: I38684abcb806ef1e8806c68b4a6dd9200f48849e\n"
    },
    {
      "commit": "2cc41d3e0054e414caa2022f4b625de2983006a2",
      "tree": "9ee670c759addcc71aca66fda5107b485278bf3f",
      "parents": [
        "ca7bc509cf3b321b4721137df1e5407415fc7dd7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 13:59:36 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 17 13:59:36 2015 -0700"
      },
      "message": "Add all the glibc one-line \"synonym\" header files.\n\nPorted code keeps needing these one by one, so let\u0027s just add the whole\nset...\n\nChange-Id: I9662b256aeaa1b0ffb22354130e503f0c4aa472b\n"
    },
    {
      "commit": "0875ba3095782387370cba2e36ebc5df7acbcb7e",
      "tree": "8fa1e9cecd619da9948729e698a99f86b500fc6b",
      "parents": [
        "b31409040f1766d92e76e72bbdc1b346f4bb9d8e"
      ],
      "author": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jul 16 11:50:39 2015 -0700"
      },
      "committer": {
        "name": "Bertrand SIMONNET",
        "email": "bsimonnet@google.com",
        "time": "Thu Jul 16 13:10:50 2015 -0700"
      },
      "message": "Add timespec/timeval conversion helpers.\n\nTIMESPEC_TO_TIMEVAL and TIMEVAL_TO_TIMESPEC are usually provided by\nsys/time.h.\n\nBUG: 22532790\n\nChange-Id: I8b9d7298e3250323faa20b1adf9a7514954c6096\n"
    },
    {
      "commit": "e55151472b89067672e865858ccc2d2f28b91cd6",
      "tree": "3902cc7e384fb6e3b29401a2a2b94fcaedca1df3",
      "parents": [
        "7a9732d663906bedd8734c9952e35728c2662767"
      ],
      "author": {
        "name": "Daniel Erat",
        "email": "derat@google.com",
        "time": "Wed Jul 08 15:01:50 2015 -0600"
      },
      "committer": {
        "name": "Daniel Erat",
        "email": "derat@google.com",
        "time": "Wed Jul 08 15:07:17 2015 -0600"
      },
      "message": "libc: Add sys/fcntl.h for compatibility.\n\nAdd a /usr/include/sys/fcntl.h file that includes \u003cfcntl.h\u003e.\n\nChange-Id: Ie34bf7519607c5aae1fbea7c7dca249c9b7801cc\n"
    },
    {
      "commit": "7ea817d39ecfdb0f42a61ea87c81105461710a93",
      "tree": "88d3335fe7d3dc9e044710ec6849bb014ff4db1f",
      "parents": [
        "89bbb846b9831f232b87d54a6eeb759ac603cc43"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 07 09:22:32 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 07 09:22:32 2015 -0700"
      },
      "message": "Add some glibc-like #defines for libchrome.\n\nlibchrome uses __USE_XOPEN2K8 to decide whether futimens is\navailable. That\u0027s perhaps not the best idea, but there are other\ncases where we defined the same feature macros as glibc to aid\nportability.\n\nChange-Id: Ie6e04cb181d88698d618e7dbd26cd347a6bf076c\n"
    },
    {
      "commit": "77455f85ab46bed6dc5f7246b474ede44ae9ede2",
      "tree": "6fe1889e2d9156a79802b20e510a599090db8b8a",
      "parents": [
        "86061f39c2c5f5a5ee91b349d1c8cb7bf04003a3",
        "a05bee544a2966a06830bf4432187fab881bfe49"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 01 15:32:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 15:32:58 2015 +0000"
      },
      "message": "Merge \"Fixed uchar.h for clang3.6\""
    },
    {
      "commit": "c2247478d5bcd6e8fe4d2b58f0bdeff73daa4c80",
      "tree": "d7d9c1eebfeda89627a70a5337dc1a3983a044d3",
      "parents": [
        "7f46cf9a5f0b3e54d97fc94a83b955ae4c335a31"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 30 15:10:51 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 30 19:01:24 2015 -0700"
      },
      "message": "Improve personality initialization\n\n1. Personality parameter should be unsigned int (not long)\n2. Do not reset bits outside of PER_MASK when setting\n   personality value.\n3. Set personality for static executables.\n\nBug: http://b/21900686\nChange-Id: I4c7e34079cbd59b818ce221eed325c05b9bb2303\n(cherry picked from commit f643eb38c36eb63f612e20dea09fd43ac6a6b360)\n"
    },
    {
      "commit": "59d5854d145263f8e68a7312bf52894269203029",
      "tree": "10de75550fec7be92b0eae480d5178095eb2d58c",
      "parents": [
        "71107cdd028461c433a39a10eb192edbdf03dede"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 29 13:44:34 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 29 13:44:34 2015 -0700"
      },
      "message": "Add \u003csysexits.h\u003e.\n\nTaken from current upstream OpenBSD.\n\nBug: http://b/22172963\nChange-Id: Ic899e08541335777296fa8ec99e518f35a100144\n"
    },
    {
      "commit": "a05bee544a2966a06830bf4432187fab881bfe49",
      "tree": "8f33f06ecd0555bdeb78e401aacd51126874feb7",
      "parents": [
        "6589febec212bb1d72b7e3d593a1b7fe77692f7f"
      ],
      "author": {
        "name": "egor.kochetov",
        "email": "Egor.Kochetov@intel.com",
        "time": "Thu Jun 25 16:52:36 2015 +0300"
      },
      "committer": {
        "name": "Egor Kochetov",
        "email": "egor.kochetov@intel.com",
        "time": "Mon Jun 29 13:27:28 2015 +0300"
      },
      "message": "Fixed uchar.h for clang3.6\n\nThe NDK self-test issue64679-prctl failed to build because by default\nclang3.6 builds in C11 mode, but the ifdef in the file \u0027uchar.h\u0027 hid the\nrequired char16_t and char32_t declarations based on the GCC version,\nwhich is declared as 4 by clang.\n\nThe ifdef is changed so that it is based on C version rather than a\ncompiler version. This way it is compatible with gcc 4, gcc 5 and clang\nwhich are actually the only used toolchains.\n\nSee also: b.android.com/177609\n\nChange-Id: I78c4bdc681c6f8a31b92dbe8ffe35e84ef2eda36\nSigned-off-by: Egor Kochetov \u003cegor.kochetov@intel.com\u003e\n"
    },
    {
      "commit": "fef58353f4ecd7ef2b48ad7f4d80013dbf786606",
      "tree": "415472c660e3169180890b6de2583103b5f38437",
      "parents": [
        "d807b9a12d3e49132b095df3d883618452033b51"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 24 17:31:24 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 24 17:31:24 2015 -0700"
      },
      "message": "Fix x86 gdbserver build.\n\nAdd the x86-only elf_fpxregset_t to \u003csys/procfs.h\u003e, and rename\nuser_fxsr_struct (the kernel\u0027s name) to user_fpxregs_struct (the\nuserspace name).\n\nBug: http://b/22068064\nChange-Id: Id466096bf02baf6bd49b193f49d9036848d33548\n"
    },
    {
      "commit": "895241efbba344c1590b76fcada89c48f4743cf2",
      "tree": "8deabcf9be20260bbb1bd252cfa12169b2823584",
      "parents": [
        "b628b7db3952594d06c8063dc863a4dd6eaa8b89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 16 16:04:35 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 16 16:04:35 2015 -0700"
      },
      "message": "Fixes for building gdbserver (and gdb) out of the box.\n\nBug: http://b/21695943\nChange-Id: Iadb600b2ae619515d7038a4db9bf464ba31adb36\n"
    },
    {
      "commit": "0577733c2e15a4745d5c75f59e5f56dd179a4aa7",
      "tree": "fcc6c2361563cadc559d4bce341c75d7d937562e",
      "parents": [
        "27f5c37b12042dea3d9521b7b0287820c1e669f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 18:47:39 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 18:47:39 2015 -0700"
      },
      "message": "Avoid name collision with user_fpsimd_state in \u003casm/ptrace.h\u003e.\n\nWe don\u0027t want to use \u003casm/ptrace.h\u003e because (a) it\u0027ll drag in a bunch of\nnamespace pollution and (b) the registers should be \"long double\" for\nuserspace, not the kernel\u0027s uint128s. So just use a slightly different\nname for our struct (which matches the traditional names for these structs\nanyway).\n\nBug: http://b/21695943\nBug: https://code.google.com/p/android/issues/detail?id\u003d86712\nChange-Id: I8812ca98cfe6b649dbd31f7d6aea41928ba2acbd\n"
    },
    {
      "commit": "bf18c61798d1ae9197ae087ed85e94eef55e8678",
      "tree": "8f948d28718c188118370c5144f50eac2dfb328a",
      "parents": [
        "9ef26a3c4cd2e6d469f771815a07cb820800beb6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Mar 04 10:31:29 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 14:33:54 2015 -0700"
      },
      "message": "Add a sys/procfs.h.\n\nNeeded for building gdbserver out of the box.\n\nBug: http://b/21695943\nBug: https://code.google.com/p/android/issues/detail?id\u003d86712\nChange-Id: Ieadda2b595f08bfddfa61fcd68006b8e7c1a438d\n"
    },
    {
      "commit": "be57a40d2973739c4fb0aa1cfb0014f34aeec2bd",
      "tree": "a4d8bba0773d0b024e1e53dbb4f35214cd3480d5",
      "parents": [
        "72af1235e49fa797987dd719e398f53995a50ec4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "message": "Add process_vm_readv and process_vm_writev.\n\nBug: http://b/21761353\nChange-Id: Ic8ef3f241d62d2a4271fbc783c8af50257bac498\n"
    },
    {
      "commit": "60907c7f4ec788def8741e4efb933eafb6560eaa",
      "tree": "31fb09aeffe23cdb02ed80e20989df7e1c992338",
      "parents": [
        "1cfbd94a2f40743757cdecd51cfa3e3ab545a5c5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 09 18:46:15 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 10 10:50:43 2015 -0700"
      },
      "message": "Allow NULL in pthread_mutex_lock/unlock.\n\nThe pthread_mutex_lock and pthread_mutex_unlock were allowed to\nfail silently on L 32 bit devices when passed a NULL. We changed\nthis to a crash on 32 bit devices, but there are still games that make\nthese calls and are not likely to be updated. Therefore, once again\nallow NULL to be passed in on 32 bit devices.\n\nBug: 19995172\n(cherry picked from commit 511cfd9dc8cb41bca4920687c7d816ee916ee8e5)\n\nChange-Id: I159a99a941cff94297ef3fffda7075f8ef1ae252\n"
    },
    {
      "commit": "8a1162835597be38705b381ac34c07da17932568",
      "tree": "13fb64618cf74789d9f47d7d438eda0e3fd27607",
      "parents": [
        "d9dc13d4172516342ceebf1b16624ed9fdf3fca2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jun 05 22:16:23 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 09 13:44:31 2015 -0700"
      },
      "message": "Add flag that makes linker honor min(p_vaddr)\n\nBug: http://b/21523078\nChange-Id: Ice72766fb6ad3bd333c32b496e7870121e17a763\n"
    },
    {
      "commit": "4e8cda641a34078d77c0340c35ca7a422801308b",
      "tree": "d920467c2fef3ee233dcdf2f8d94973b28160b8d",
      "parents": [
        "267f39bf63044efe734c82c66f25f9b275a63c0b"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Thu May 07 15:15:46 2015 -0700"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Fri May 08 22:13:15 2015 +0000"
      },
      "message": "remove rootdir build.prop\n\nmerge with default.prop\n\nChange-Id: I6cff4527dec2b31bdde42ec26c42ef2782f8deb4\n"
    },
    {
      "commit": "ce16a53d393512336f30c21a244afd70b7d57cf6",
      "tree": "ebb523834aa7a69b01cdfe62d74b7fda74a89111",
      "parents": [
        "f9eeea6d6531b0dea837027c7e1f47bec837f311"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 07 22:58:00 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 07 23:10:16 2015 -0700"
      },
      "message": "Add definitions of Elf32_Sxword and ELFXX_R_INFO\n\nBug: http://b/17056684\nChange-Id: If35302245ac3ab40d1c80fb2b04620778c114f87\n"
    },
    {
      "commit": "dbe26fdcc7de503539837467299b96c4a93084cc",
      "tree": "09944070d08e984face62ae29fb4f019b174e6e4",
      "parents": [
        "2c3d8d8b2c77a2439e324f8ef2369589024f33ed"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 04 19:30:49 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 04 19:30:49 2015 -0700"
      },
      "message": "Fix protected symbol lookups for mips\n\nBug: http://b/20694161\nChange-Id: I5cc58034f9776e1db9cddc34abe48ef85f6048f4\n"
    },
    {
      "commit": "033a68f1acd059dc3c5f656ce16999863d077d8a",
      "tree": "abbb9203ad987ba61f8bd17257fc59538c265325",
      "parents": [
        "6a4c9d9bf9e3d2679394850ab49a42f368e12c2d",
        "c3f4c964a3326ba81e1d61ebc47980f787dfcf24"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 30 20:57:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 30 20:57:49 2015 +0000"
      },
      "message": "Merge \"bionic: fortify comments in _system_properties.h\""
    },
    {
      "commit": "6a4c9d9bf9e3d2679394850ab49a42f368e12c2d",
      "tree": "eb9d315003e4106c69d38d03156b182a527992f8",
      "parents": [
        "df877d7b289543e5a969566e0dcbb6102b08f002",
        "6f88821e5dc4894dc2905cbe53ae21c782354f38"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 30 19:29:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 30 19:29:47 2015 +0000"
      },
      "message": "Merge \"Define char16_t and char32_t to make gcc 5.1 happy\""
    },
    {
      "commit": "c3f4c964a3326ba81e1d61ebc47980f787dfcf24",
      "tree": "60ffee1456c1a9ff9fab86f9b6a7ca235516d54f",
      "parents": [
        "fa6f6496078426fe332a5ae9bba009c98dfabc94"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 29 07:21:36 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 29 13:57:42 2015 -0700"
      },
      "message": "bionic: fortify comments in _system_properties.h\n\nChange-Id: I2ef8fb7ae5ae03d5d2a50b5a417d585710099760\n"
    },
    {
      "commit": "bfd65279a5a9018b01f71773270e462f1b9a7768",
      "tree": "c210894537fb3f3b68a300da67bd539fae9ae243",
      "parents": [
        "682a240c5d6a479ed3b8187ea99044627bf2394c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 24 09:31:32 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 27 07:44:03 2015 -0700"
      },
      "message": "bionic: add __system_property_area_serial()\n\nAdds a new _internal_ function. Provide a global serial number to\nsupport more efficient private caching algorithms. This allows\nto skip re-running the __system_property_find() call on misses until\nthere is a global change in the properties. This call is a read\nbarrier, the property data to be read following this call will be\nread sequentially and up to date.\n\nBug: 19544788\nChange-Id: I58e6a92baa0f3e8e7b9ec79b10af6d56407dab48\n"
    },
    {
      "commit": "1d76f1cc8be1f40141adac6147cd51061f1ee0b4",
      "tree": "a64dd9fcaf615e61e96064dea7405c9dc0c6336f",
      "parents": [
        "42502d702e1625c9f3337f7a18ea5fc4cfc6090c",
        "3244d9f07fda946d62afdfa61ed5a876d380d0ff"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun Apr 26 02:23:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 26 02:23:04 2015 +0000"
      },
      "message": "Merge \"add a fortified implementation of realpath\""
    },
    {
      "commit": "42502d702e1625c9f3337f7a18ea5fc4cfc6090c",
      "tree": "0b2b068e214267f7c5760a91ecac92ac0bcc89be",
      "parents": [
        "2eaff07839393485fec522fd0bd17bbf1af72ca6",
        "4ae773633aac9ceba5ec62bb8e1aa22c3c56ebde"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Apr 25 21:29:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 21:29:57 2015 +0000"
      },
      "message": "Merge \"add fortified memchr/memrchr implementations\""
    },
    {
      "commit": "6f88821e5dc4894dc2905cbe53ae21c782354f38",
      "tree": "adf7b6157250a34f290d236e8f1eac27bfb7de14",
      "parents": [
        "41ebceaf3ad392b4a3f40d96d5750d95ef206546"
      ],
      "author": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri Apr 24 16:21:38 2015 +0200"
      },
      "committer": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri Apr 24 16:21:38 2015 +0200"
      },
      "message": "Define char16_t and char32_t to make gcc 5.1 happy\n\ngcc 5.1 doesn\u0027t define char16_t and char32_t (unless in C++ mode),\ncausing compile failures.\n\nChange-Id: I08dcd13cdf8cd59a4a2f191864bedf4c0d1bb313\nSigned-off-by: Bernhard Rosenkränzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "3244d9f07fda946d62afdfa61ed5a876d380d0ff",
      "tree": "c7f124de4880d6a79e89373b2ee97fa190a71e10",
      "parents": [
        "af7538b49625f1c1c82e984610f26729a18d56bf"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Apr 18 13:04:19 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Mon Apr 20 17:31:24 2015 -0400"
      },
      "message": "add a fortified implementation of realpath\n\nChange-Id: Icc59eacd1684f7cddd83d7a2b57dad0c7ada5eb7\n"
    },
    {
      "commit": "4ae773633aac9ceba5ec62bb8e1aa22c3c56ebde",
      "tree": "08855d690e35a16d9c1cbe68148da64f54f5ebd1",
      "parents": [
        "3875744f89600027c69ea68650fff1eeb4b29723"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 18:16:57 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 21:17:12 2015 -0400"
      },
      "message": "add fortified memchr/memrchr implementations\n\nChange-Id: I38c473cc0c608b08f971409a95eb8b853cb2ba1c\n"
    },
    {
      "commit": "42281880a8ac8614832ff918a14e4b950f35d05d",
      "tree": "0823c1e87386aea7417635e176494ab2b9fb89ab",
      "parents": [
        "3875744f89600027c69ea68650fff1eeb4b29723"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 11:26:36 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Fri Apr 17 18:49:12 2015 -0400"
      },
      "message": "add fortified readlink/readlinkat implementations\n\nChange-Id: Ia4b1824d20cad3a072b9162047492dade8576779\n"
    },
    {
      "commit": "3875744f89600027c69ea68650fff1eeb4b29723",
      "tree": "dec2852717151c4004af3e36df748279a88a990a",
      "parents": [
        "fc4850e37b713eae12d0bde7f6e0b4e9b444bfef",
        "2a815361448d01b0f4e575f507ce31913214c536"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 17 03:57:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 03:57:46 2015 +0000"
      },
      "message": "Merge \"Support symbol versioning\""
    },
    {
      "commit": "2a815361448d01b0f4e575f507ce31913214c536",
      "tree": "82b941e908b54d6d48ef04495ff2808aa2823ae1",
      "parents": [
        "c6ccdfaf1ff4665ec96962863054263510d73e7b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:42:33 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 16 17:57:30 2015 -0700"
      },
      "message": "Support symbol versioning\n\nBug: http://b/20139821\nChange-Id: I64122a0fb0960c20b2ce614161b7ab048456b681\n"
    },
    {
      "commit": "31128da28f561152f5b663e6b4849691b3951525",
      "tree": "1e7a2e6bf9b060f2ad5bfcddc9fa0f7333085e5f",
      "parents": [
        "f84a5c6c5c5fa2507458086a2f9a077bd9e2c9ec",
        "e7e1c875b0f8eefb1d771f200a58f54e64c39d55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 17 00:34:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 00:34:26 2015 +0000"
      },
      "message": "Merge \"add fortified implementations of pread/pread64\""
    },
    {
      "commit": "e7e1c875b0f8eefb1d771f200a58f54e64c39d55",
      "tree": "f6f7d5465c32d2dc7144c9e46b8b57da480f8528",
      "parents": [
        "a40cb0ca7fe8ddc146831e92ec543be9feb26a65"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 09:07:45 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Apr 16 10:33:35 2015 -0400"
      },
      "message": "add fortified implementations of pread/pread64\n\nChange-Id: Iec39c3917e0bc94371bd81541619392f5abe29b9\n"
    },
    {
      "commit": "43e020ce936aa18e071664de198adfaa71af2d82",
      "tree": "ed7684f20de8c5729ee0842616dbf545ac19ee5c",
      "parents": [
        "cafc948069d447aa1e4dde599ee83bf6c0c5d5d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 15 17:03:43 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 15 17:03:43 2015 -0700"
      },
      "message": "Remove PROP_PATH_SYSTEM_DEFAULT.\n\nChange-Id: Ib01d9c2f9d890eb5e7ba1e15bd11767195e84967\n"
    },
    {
      "commit": "9ce9bf5aec5ed2ec75acdc05f00a49728563a782",
      "tree": "f36b6d3335852331dbd772f00403c95697401827",
      "parents": [
        "0a92ac884891b167d6393592fbf9ecf26218f9aa",
        "c0e7dbb1dbe92c9e72bdbd299fa50786fd751807"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 22:14:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 22:14:09 2015 +0000"
      },
      "message": "Merge \"Add Elfxx_Ver* types\""
    },
    {
      "commit": "c0e7dbb1dbe92c9e72bdbd299fa50786fd751807",
      "tree": "0ce95df4df3fda299841ee858a03b02576ca663e",
      "parents": [
        "598493e725e0298ae11ddbdee62c3a7007eb503c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:58:53 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:58:53 2015 -0700"
      },
      "message": "Add Elfxx_Ver* types\n\nBug: http://b/20139821\nChange-Id: I7a367b08faa3bf5c005996c066cd35709f533265\n"
    },
    {
      "commit": "76615dae93c18ac890e167c547a08c0228709a33",
      "tree": "12a7e87c6fb332bebc087f43bcf29b2f7827571e",
      "parents": [
        "4bd8f9637daaada333ff35945b00cfe6cb822376"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 17 14:22:09 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 08 13:11:13 2015 -0700"
      },
      "message": "Provide writer preference option in rwlock.\n\nPrevious implementation of rwlock contains four atomic variables, which\nis hard to maintain and change. So I make following changes in this CL:\n\n1. Add pending flags in rwlock.state, so we don\u0027t need to synchronize\nbetween different atomic variables. Using compare_and_swap operations\non rwlock.state is enough for all state change.\n\n2. Add pending_lock to protect readers/writers waiting and wake up\noperations. As waiting/wakeup is not performance critical, using a\nlock is easier to maintain.\n\n3. Add writer preference option.\n\n4. Add unit tests for rwlock.\n\nBug: 19109156\n\nChange-Id: Idcaa58d695ea401d64445610b465ac5cff23ec7c\n"
    },
    {
      "commit": "9b82136b987bc01224e3b42732334ea27c97d188",
      "tree": "036facba010c670c5d6bfc3fa9dbb2de0f28caf8",
      "parents": [
        "ab7c79e22e5495a2aa171047a044ce1037e461a9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 16:03:56 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 10:50:48 2015 -0700"
      },
      "message": "Add ANDROID_DLEXT_FORCE_LOAD flag\n\n  This flag allows to force loading of the library\n  in the case when for some reason multiple ELF files\n  share the same filename (because the already-loaded\n  library has been removed and overwritten, for example).\n\nChange-Id: I798d44409ee13d63eaa75d685e99c4d028d2b0c1\n"
    },
    {
      "commit": "377243b78c43ffc98a6c9f145a6cd27ab99c08f0",
      "tree": "af26d1303252310ad63ad94e8e13b3f1edc169a0",
      "parents": [
        "69847bc298de62917663d22b6733ef75b57124fa"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 19:59:00 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 21:02:36 2015 -0700"
      },
      "message": "Remove PTHREAD_RECURSIVE_MUTEX_INITIALIZER and PTHREAD_ERRORCHECK_MUTEX_INITIALIZER.\n\nThese macros are also not used in glibc. And we should use\nPTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP\nand PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP instead.\n\nChange-Id: I35195e2f499712dcde9305bbb93622d0f7ca874b\n"
    },
    {
      "commit": "17393b06bab9cb3e95d0f466a56c746de19b8eee",
      "tree": "fa260e58da8fe186bca7787e3d7645a86b2f79cb",
      "parents": [
        "fa3dcecc0fd7bbbf04234e41be690a5d33277870"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Mar 21 15:08:25 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 25 17:54:17 2015 -0700"
      },
      "message": "Hide internal of pthread_mutex_t.\n\nBug: 19249079\nChange-Id: Iffb79c8d861b698d474f212dc80c638fc2cf1620\n"
    },
    {
      "commit": "b58457221364eaad039c2c49a42626b725e980d5",
      "tree": "a7a8d9b3de7c34bda99153ebae330b6d180b112e",
      "parents": [
        "4149dc944bbe3c5f1c14fc998106975e68bdd6bf"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 22:46:42 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 20 17:42:09 2015 -0700"
      },
      "message": "Add test for pthread types alignment check.\n\nBug: 19249079\nChange-Id: I83c4f0d11ec5d82a346ae0057d02a92bb1d519e8\n"
    },
    {
      "commit": "110196244732911d4971ef7f9e30cc2407d8034b",
      "tree": "36f3963097eef27d25d924ea918f51c4469a4cc8",
      "parents": [
        "5f8ddf69e59b13653d016e236599b95daf6501a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 17 17:34:14 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 17 17:34:14 2015 -0700"
      },
      "message": "Fix _PATH_DEFPATH to correspond to the actual default path.\n\nThis is currently set in init.rc, but I plan on making init\nset PATH to _PATH_DEFPATH and removing the line from init.rc...\n\nBug: 19564110\nChange-Id: Ifa7226a3a5a90d141a788d7d6b1ae86245674218\n"
    },
    {
      "commit": "b5cd3c7a7503d8155ea17424c00f7e77603252c0",
      "tree": "2e956c25c0f32ac89a3d4e360e8a96c2d917ee0d",
      "parents": [
        "f14fe856b40afc38540988b408edc508298ec116"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 17:06:59 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 17:06:59 2015 -0700"
      },
      "message": "Fix build: align pthread_cond_t to sizeof(long)\n\nChange-Id: Ieaee6d09089b161ec516ba22cafaee1ecb4342da\n"
    },
    {
      "commit": "eb8b122d67db501729ecde4fcb960336c87af4ce",
      "tree": "59b9b529198343d1135994ec25bbc749243ab2bd",
      "parents": [
        "0f3fcd12ddde0e10fbeab0a98cf0efb9d64bea76"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 16 16:21:08 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 16 16:28:54 2015 -0700"
      },
      "message": "Add alignment to opaque types.\n\nIf there is no alignment forced, then the compiler might put these\nstructures at any alignment.\n\nChange-Id: I6416db72433504e0ec1178bfae6f5b18b6e363fb\n"
    },
    {
      "commit": "32651b8e8e453391c7aaca47cd885e94d54d0bf4",
      "tree": "16c36165ce78fbc359bba222ee0744556c3ed4c4",
      "parents": [
        "d2cf59d4633d9e731d0342d4f94b6e925589ab1e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 20:30:00 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 16 11:09:52 2015 -0700"
      },
      "message": "Hide content of pthread_cond_t in pthread_cond_internal_t.\n\nBug: 19249079\nChange-Id: I6f55af30bcd6211ce71630c6cacbef0e1663dcee\n"
    },
    {
      "commit": "2fabea47ac9475bcc52aff0715819d18aa5bdf1d",
      "tree": "c0cad55497897c934661e49d2fc4c330b4d97cba",
      "parents": [
        "81c31bdd43e50538fa45f5e7783782a5ae5666e9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 14:22:05 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Mar 13 19:35:05 2015 -0700"
      },
      "message": "Hide content of pthread_rwlock_t in pthread_rwlock_internal_t.\n\nBug: 19249079\nChange-Id: Ifbe634c716b6793bef897ec5134b55eb44c6b8d5\n"
    },
    {
      "commit": "c94c7ff2bb7cdc8638d2155b8eefd8e2538eea50",
      "tree": "5f4622d8b2b24664df14504281499214443d5804",
      "parents": [
        "f074b531d266deb63c17e1d3bff751f3f3740d9d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 13 10:32:45 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 13 10:32:45 2015 -0700"
      },
      "message": "Add some GNU specific elf constants.\n\nChange-Id: I6c668463a27a641c9a280ce1937857d622344ff8\n"
    },
    {
      "commit": "c4a586da49e438961e09a1319df86c9a26f4eb92",
      "tree": "db3d8d0aeb106cab69daad7846e44ed6662e650c",
      "parents": [
        "be86f87711ee71ff971da2e2ae7a092081177951"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 12 13:21:35 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 12 13:21:35 2015 -0700"
      },
      "message": "syslog.h: missing LOG_MAKEPRI definition\n\nBug: 19681572\nChange-Id: Ice5f5cb1f71522ffc47b2243a8dc4c277c2a288f\n"
    },
    {
      "commit": "ba87fe5145b27bee0dc2a0ce146928a1998c8061",
      "tree": "c13a69f01078ceb2ad5cd515c8d656187c44a0c2",
      "parents": [
        "c16c8368773452e2d18d761a7b3ea6f249dc2ac5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 11 09:32:25 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 11 09:32:25 2015 -0700"
      },
      "message": "Add the UMOUNT_NOFOLLOW flag to \u003csys/mount.h\u003e.\n\nChange-Id: I2b81cfc3147d9a0a6ac2a8f064e6d9864fa7e04d\n"
    },
    {
      "commit": "18a6956b76a071097fc658c5fe13ef010e31864a",
      "tree": "9a5213aeddb62ffcf0002986808b6699c5988e9e",
      "parents": [
        "fa26eee77685e8dee7986e62a7d263003f5bd25a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 04 16:05:30 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 06 17:12:47 2015 -0800"
      },
      "message": "Add support for packed relocations.\n\nChange-Id: I796a4ce86d3fccb8361c19889419c96147ee3c9f\n"
    },
    {
      "commit": "e1c0213be3f0c2c4e310cbc262da88835a2e5d86",
      "tree": "052396403af1b7e83ca747a87ce2bc0ff730ba51",
      "parents": [
        "dec9501af2ee4d7cec3a163310d42e8ea1b8c58f",
        "08ee8d2030fbc73c4c144e819dd68806b0351cbe"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 05 04:42:35 2015 +0000"
      },
      "message": "Merge \"Switch pthread_rwlock_t to stdatomic.\""
    },
    {
      "commit": "08ee8d2030fbc73c4c144e819dd68806b0351cbe",
      "tree": "61c0f1027bd8967ff7eb8e95a128ee10e260ca32",
      "parents": [
        "ee17e8800418a74e21dba11658234363cf6f6032"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 11 17:04:36 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Mar 04 18:16:20 2015 -0800"
      },
      "message": "Switch pthread_rwlock_t to stdatomic.\n\nBug: 19099838\nChange-Id: Ie82967a60b5cec61a8bdd1e0e4a03738d01944f8\n"
    },
    {
      "commit": "c09268a3fef0b9574b2b6227c9fac3096ad6654e",
      "tree": "f800d0e402c98cf917b98aac9283a7e902ca9578",
      "parents": [
        "2ae7c1e336af3dd2901e90608be3adeb577659a7"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 02 09:14:51 2015 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Mar 02 18:44:11 2015 +0000"
      },
      "message": "bionic: deprecate _PATH_MEM\n\n/dev/mem (and /dev/kmem) are not enabled in the kernels, and selinux\nprevents access and makes it a rule compilation error to enable\naccess. No code uses the _PATH_MEM macro. Remove definition to\nsuppress future usage.\n\nBug: 19549480\nChange-Id: Ie0fb0f53d43349f4fe227068e4bf8a768f620d60\n"
    },
    {
      "commit": "b8b5a72f41830eadbb4753a74845cf5fcba86334",
      "tree": "f52e5639079587e733a98a859a454e5f39a83edd",
      "parents": [
        "398ef152d50854fccb21086e30b5cc24641b3e2a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 19:05:37 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 19:05:37 2015 -0800"
      },
      "message": "Make getgrent deprecated.\n\nBug: 19340053\nChange-Id: Ie8b97f840d9e87555e6a3d591fc87bc08c2d6820\n"
    },
    {
      "commit": "398ef152d50854fccb21086e30b5cc24641b3e2a",
      "tree": "6695bdc992942e63c924498c4bb05acca06d58ee",
      "parents": [
        "f1b4a5d510c693d7cffc76cade9ab049f7dfed07",
        "52d7f1a94fd6ccb87dabd21c682f68d31810aca9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Feb 26 02:23:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 26 02:23:08 2015 +0000"
      },
      "message": "Merge \"Move endpwent to ndk_cruft.cpp.\""
    },
    {
      "commit": "f1b4a5d510c693d7cffc76cade9ab049f7dfed07",
      "tree": "f30cc0fd2c51c137aaa2e53c41542dc912214f5c",
      "parents": [
        "448a85968da1e4622e829bb48fd888a38f9f6c49",
        "9b4f77f5cfc45a377b7de7195341a7769a722b74"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Feb 26 02:17:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 26 02:17:17 2015 +0000"
      },
      "message": "Merge \"Make tempnam/mktemp deprecated.\""
    },
    {
      "commit": "9b4f77f5cfc45a377b7de7195341a7769a722b74",
      "tree": "41c892013dbfcde3a5a52b7c2a3aa06341cc3573",
      "parents": [
        "913fcb274f353348a353aaabbe872b3b5924a6e7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 23 16:42:07 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 15:42:01 2015 -0800"
      },
      "message": "Make tempnam/mktemp deprecated.\n\nBug: 19340053\nChange-Id: Ib02c65814ef97cd1758fd8142b73736cc8bc1700\n"
    },
    {
      "commit": "52d7f1a94fd6ccb87dabd21c682f68d31810aca9",
      "tree": "b921836e4dfdcfbedaa10a12ac906a900d56294d",
      "parents": [
        "448a85968da1e4622e829bb48fd888a38f9f6c49"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 14:58:08 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 14:58:08 2015 -0800"
      },
      "message": "Move endpwent to ndk_cruft.cpp.\n\nBug: 19109159\nChange-Id: I3683a247643006ea6d6bcf3845f57d1908d457d7\n"
    },
    {
      "commit": "8c41eae6fcdb6cad1f6c46ae01708ead6b734060",
      "tree": "3fb9067c8790b6471ceadbdb80517731182aa7b8",
      "parents": [
        "af3ba5c87319e19c10be6755b37af92521f702c2",
        "7fb680bfda059746c9bb8939ffaed600eecc3a29"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 25 00:00:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 25 00:00:51 2015 +0000"
      },
      "message": "Merge \"Move getusershell/endusershell/setusershell to ndk_cruft.cpp.\""
    },
    {
      "commit": "7fb680bfda059746c9bb8939ffaed600eecc3a29",
      "tree": "4d2528047166136a5c8baa69af69edafafcc42c2",
      "parents": [
        "4add77b93c0c61381faa9d4d8dc62f81cafcc69a"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 24 13:18:25 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 24 14:46:59 2015 -0800"
      },
      "message": "Move getusershell/endusershell/setusershell to ndk_cruft.cpp.\n\nBug: 19108648\nChange-Id: I65134040345398dde612c4325d902db58f3bd2be\n"
    },
    {
      "commit": "6af62e0d5016d0e8263f77139154a518d50fc2d6",
      "tree": "eaa5623ffe3ac6ee8714d24464e58a6d1b95b30a",
      "parents": [
        "3d83b18970f32467596830845793b18a858f59e6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 13:41:40 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 23 13:41:40 2015 -0800"
      },
      "message": "Add RLIM_SAVED_CUR and RLIM_SAVED_MAX.\n\nChange-Id: Ia6be76460bfcf852832325c5f36cb272f49a4b87\n"
    },
    {
      "commit": "4c5891d93dc151e2f07fc87ae967f23e6c3d6e0c",
      "tree": "0a18a145999730a8bcb118c2b42b4e6a8ffa15d9",
      "parents": [
        "97484d3a9d0d822aeaaa1547aeb76d7669076082"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 19 22:49:44 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 19 22:49:44 2015 -0800"
      },
      "message": "valgrind can\u0027t find syscall because we didn\u0027t put it in \u003cunistd.h\u003e.\n\nChange-Id: I1e47291d4476bd2816138a8cf58f29d4986d39e3\n"
    },
    {
      "commit": "3cfb52aab2548df635e9672218cc433e14922fd3",
      "tree": "eebbf162a1e5e1ed8726a9129ea17a410ebaa3ed",
      "parents": [
        "3e1b5f46c07aef5983ecf2feb1c3369b2cd200c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 21:29:13 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 22:02:56 2015 -0800"
      },
      "message": "Add GNU extensions mempcpy and wmemcpy.\n\nUsed by elfutils. On the bright side, they stopped using __mempcpy.\n\nBug: 18374026\nChange-Id: Id29bbe6ef1c5ed5a171bb6c32182f129d8332abb\n"
    },
    {
      "commit": "4add77b93c0c61381faa9d4d8dc62f81cafcc69a",
      "tree": "085f6898cd08fd3ff275b16e88c80b190b132d67",
      "parents": [
        "1dbc6bb02521ba1535748826eeaf28404160d788",
        "913fcb274f353348a353aaabbe872b3b5924a6e7"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 18 21:33:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 18 21:33:02 2015 +0000"
      },
      "message": "Merge \"Make gets() deprecated.\""
    },
    {
      "commit": "913fcb274f353348a353aaabbe872b3b5924a6e7",
      "tree": "26701a564824e9a41de417eafc156f51895db10c",
      "parents": [
        "0e61c2c0ea201e157d0d3d3c04564588bcfb7c66"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 18 12:20:32 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Feb 18 12:20:32 2015 -0800"
      },
      "message": "Make gets() deprecated.\n\ngets is already deprecated in glibc. Others with __warnattr are not deprecated.\n\nChange-Id: I80a276d2b5964630218be47f1c94b146c0d31151\n"
    },
    {
      "commit": "1dbc6bb02521ba1535748826eeaf28404160d788",
      "tree": "50f5c7bb2766b85d612def474c483629ad17c46f",
      "parents": [
        "9ec37c7fa979c573e5743c343d38370cab1a67e4",
        "68dc20d41193831a94df04b994ff2f601dd38d10"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 18:01:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 18 18:01:05 2015 +0000"
      },
      "message": "Merge \"Implement _FILE_OFFSET_BITS (mostly).\""
    },
    {
      "commit": "68dc20d41193831a94df04b994ff2f601dd38d10",
      "tree": "7706f742caa2ce1db9868baadf890187d7d02dbd",
      "parents": [
        "d687905f11102a7f6bad461b6f501dc870c59999"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 06 22:28:49 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 17 19:54:43 2015 -0800"
      },
      "message": "Implement _FILE_OFFSET_BITS (mostly).\n\nI still don\u0027t think we can make stdio\u0027s fseeko and ftello work, but we can\nhave everything else, and very few programs use fseeko/ftello (and they can\njust refrain from using _FILE_OFFSET_BITS and be no worse off than they are\ntoday).\n\nBug: 11865851\nChange-Id: Ic3cb409aae6713f4b345de954bcc4241fcd969ec\n"
    },
    {
      "commit": "0e61c2c0ea201e157d0d3d3c04564588bcfb7c66",
      "tree": "ea6359d64b68187a34a9fd3a3f6b8544056a4770",
      "parents": [
        "b5c23796872dee26d7fa88f0a41801dcc6090d99",
        "784de4e50a1161d78757402c149d85368bd49c29"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 23:56:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 17 23:56:29 2015 +0000"
      },
      "message": "Merge \"Revert \"Move use of __warnattr to __deprecated.\"\""
    },
    {
      "commit": "784de4e50a1161d78757402c149d85368bd49c29",
      "tree": "b845b7e6adc69d65e8b96e31fd25c1cf98d56493",
      "parents": [
        "4645c4f62df49d1ece5aabb7c9fa44ca34d30272"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 23:54:40 2015 +0000"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 23:54:40 2015 +0000"
      },
      "message": "Revert \"Move use of __warnattr to __deprecated.\"\n\nThis reverts commit 4645c4f62df49d1ece5aabb7c9fa44ca34d30272.\n\nChange-Id: I6c1062d54a4e2c4f41ce7a403e4e7840e6339146\n"
    },
    {
      "commit": "b5c23796872dee26d7fa88f0a41801dcc6090d99",
      "tree": "3158b6d4d1a41e43170653860a0e44d54f979442",
      "parents": [
        "54b61b7ca7d7c9c7474e2beb35d20a9ab635529f",
        "4645c4f62df49d1ece5aabb7c9fa44ca34d30272"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 23:10:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 17 23:10:31 2015 +0000"
      },
      "message": "Merge \"Move use of __warnattr to __deprecated.\""
    },
    {
      "commit": "4645c4f62df49d1ece5aabb7c9fa44ca34d30272",
      "tree": "49f40a240870fdbd7f481215b82217c95a5b9536",
      "parents": [
        "fb48c68221afb1f9e7c63a15a20cca0857d1b9f9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 12:39:39 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 14:14:45 2015 -0800"
      },
      "message": "Move use of __warnattr to __deprecated.\n\nclang don\u0027t support warning attribute. Replacing warning attriubte with\ndeprecated attribute can achieve the same behavior whether compiled by\ngcc or clang.\n\nBug: 19340053\nChange-Id: I064432b81cf55212458edbc749eb72dc15a810fb\n"
    },
    {
      "commit": "62533de98e6dded91aba701d8b6339e77fbc8121",
      "tree": "a4598661889aba4fb984d6aa5630677d1e5e41e8",
      "parents": [
        "fb48c68221afb1f9e7c63a15a20cca0857d1b9f9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 11:33:42 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 17 11:33:42 2015 -0800"
      },
      "message": "Change getgrent error declaration message to proper style.\n\nBug: 19340053\nChange-Id: I9c47a2016f356d171a5f2082acb8391d81e019b2\n"
    },
    {
      "commit": "92b9c6ff3ea5bdadf33feb05e06703fa35f34497",
      "tree": "44aea2c92120e8f22ef528d6eeb60d6a2c0a9a80",
      "parents": [
        "dd5c92d4b0cb6c43002112ab50c1df73d06ab2aa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 16 12:19:46 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 17 09:08:24 2015 -0800"
      },
      "message": "POSIX says flock is in \u003csys/file.h\u003e, not \u003cunistd.h\u003e.\n\nBug: 19392265\nChange-Id: I14d0b56883f0354e13db04a1d140b8f60dae08d7\n"
    },
    {
      "commit": "4181cc691e36546c556274d46d389d7e0cb9cfab",
      "tree": "d6b4e27def9336d108b2a7f93b97770576912202",
      "parents": [
        "b81a871cbb2d99168bdb8380b6142139135f418f",
        "c9d09431b982b44ebec5b1ca0913e80f13aba809"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Sat Feb 14 02:37:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 14 02:37:19 2015 +0000"
      },
      "message": "Merge \"Declare getgrent/setgrent/endgrent as missing.\""
    },
    {
      "commit": "13ed3f0af15ebd5b10aa44f8f51a5bba1b3bd9fc",
      "tree": "a335508504e78d5ac8de7a89468bee8b14f14910",
      "parents": [
        "f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 13 16:25:43 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 13 16:34:38 2015 -0800"
      },
      "message": "Add missing SHT_LOOS/SHT_HIOS values\n\nChange-Id: Ib0b0987a7e85af7863c6ef894263b5980e32344d\n"
    },
    {
      "commit": "c9d09431b982b44ebec5b1ca0913e80f13aba809",
      "tree": "3551ff1188cc8bdc991be0b91b44dc4341cd463f",
      "parents": [
        "ee17e8800418a74e21dba11658234363cf6f6032"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Feb 13 10:52:35 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Feb 13 10:52:35 2015 -0800"
      },
      "message": "Declare getgrent/setgrent/endgrent as missing.\n\nBug: 19340053\nChange-Id: I42bfeda95e6f262e2e74ab47336ea346c2de7e4a\n"
    },
    {
      "commit": "ee17e8800418a74e21dba11658234363cf6f6032",
      "tree": "f4840cc90508c3f1b282042124a3884e2bc80430",
      "parents": [
        "a57fd419bc56add6752cd9fa6f53fe2b43dff019",
        "2d8f9b5aea90b57cd01c0a07cfff032092b4672e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 10 17:51:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 10 17:51:33 2015 +0000"
      },
      "message": "Merge \"Define MAXHOSTNAMELEN explicitly in source files.\""
    },
    {
      "commit": "2d8f9b5aea90b57cd01c0a07cfff032092b4672e",
      "tree": "5e0c6af872e20d46e99e1b47a6378360915b70bf",
      "parents": [
        "a4fc89badf4ef4d42df0927340c6f0d02167a3d6"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 09 13:58:28 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 09 19:56:47 2015 -0800"
      },
      "message": "Define MAXHOSTNAMELEN explicitly in source files.\n\nBug: 19093777\nBug: 19092844\nChange-Id: I0778507ca2d5c008abb9a6d6315d0909263a8817\n"
    },
    {
      "commit": "e375ecaa39213ec01464dac9d0ffebaac70b4e9d",
      "tree": "1d0e274a6739befc3a27df4d135ea4b4740c20f5",
      "parents": [
        "a4fc89badf4ef4d42df0927340c6f0d02167a3d6",
        "e5f816c01780220880ee59a29f727c48b51365d3"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Feb 10 00:10:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 10 00:10:45 2015 +0000"
      },
      "message": "Merge \"Switch pthread_cond_t to \u003cstdatomic.h\u003e.\""
    },
    {
      "commit": "e5f816c01780220880ee59a29f727c48b51365d3",
      "tree": "37454e7d27774bde02d5d28aee3d1aad3cbb6d73",
      "parents": [
        "7f17aea2fc21aaf657824a023a4b7582fb74a2d9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Jan 29 12:13:33 2015 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 09 15:54:22 2015 -0800"
      },
      "message": "Switch pthread_cond_t to \u003cstdatomic.h\u003e.\n\nBug: 17574458\nChange-Id: Ic7f79861df4fe751cfa6c6b20b71123cc31e7114\n"
    },
    {
      "commit": "a4fc89badf4ef4d42df0927340c6f0d02167a3d6",
      "tree": "b8324fc632e9562d0d5c10128a37dac26b1403ea",
      "parents": [
        "f69139e105ef32199afdf35027e9dfc48ad215d7",
        "5e52226f02b7199fa7870a6195b3e5c0efb1c8d3"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Feb 09 19:46:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 09 19:46:46 2015 +0000"
      },
      "message": "Merge \"Stop including \u003clinux/param.h\u003e in \u003csys/param.h\u003e.\""
    }
  ],
  "next": "5e52226f02b7199fa7870a6195b3e5c0efb1c8d3"
}
