)]}'
{
  "log": [
    {
      "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": "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": "5bc78c8bcd0c1e634c04029309ede3ec05f2d424",
      "tree": "ba41f009cdf5fb27c766b4efe05c4cbb566d2a85",
      "parents": [
        "8945d5e43a25737f3f888a90742cc918b1124a05"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 11:35:43 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:55:42 2016 -0800"
      },
      "message": "Add and use constants for the Android API levels.\n\nTest: bionic tests still pass\nChange-Id: If1b619cfc9db1d3f5d91f14f2ace71058dca0c4a\n"
    },
    {
      "commit": "9288761a26bc7f581c84155b009b59587c7a7ad3",
      "tree": "a1d18cf92aa9c36c9f4eb5303b820115c8500dc3",
      "parents": [
        "228e747b6c40da2945310cda214b829f7de8cb60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 13:26:35 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 13:26:35 2016 -0700"
      },
      "message": "Add missing \u003csys/stat.h\u003e macros.\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html\n\nChange-Id: I8c31f3a6fae2c4955c5fba3d880a416d03dfafb7\n"
    },
    {
      "commit": "dfa6bbb54bd9ab2a71df4c066427ea804608e20b",
      "tree": "41b5baebfa354e4530ca190031789362c31de785",
      "parents": [
        "ed9e6a41c92c9552be84ecc126e29b4604eee246"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 02 15:08:32 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 05 16:33:32 2016 -0700"
      },
      "message": "Guard fortify inlines with __ANDROID_API__.\n\nTest: make checkbuild with libc ndk_library patches applied\nChange-Id: Ic5e248994c4f2702b0f4d6dfeda787187ea86017\n"
    },
    {
      "commit": "b6a4a4c0cc76004459f87cecb260d202b5ba5512",
      "tree": "7b8e17a2ed737c178caa4c418917ab57f2afb8f9",
      "parents": [
        "f9128bc7d4fff2f50705d92c4fd06e998b63f442"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Jul 26 16:34:40 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 02 14:32:42 2016 -0700"
      },
      "message": "Add version information for legacy inlines.\n\nBug: http://b/30170081\nChange-Id: Ib5962ea3037dd692a98b6691d263871549aac8af\n"
    },
    {
      "commit": "3b2096a9d6edd74622b94cacc76b77100f919b84",
      "tree": "1e5db3202e110172e7db1ced6d87cf8ceca7ed0b",
      "parents": [
        "7101c48f20f2f19dd1d314d23251fb52995a0870"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 18:57:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 22 18:57:12 2016 -0700"
      },
      "message": "Remove unnecessary \u0027extern\u0027s.\n\nChange-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03\n"
    },
    {
      "commit": "8778d64d5c78a42d5389767adcf232bfe323e0f8",
      "tree": "15a50d1c7c9f60256f6ad2df007fc74999063b47",
      "parents": [
        "12ba7e51d9c4f6d8c1fa5627f638b291520a7025"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jul 22 15:26:36 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jul 22 15:52:55 2016 -0700"
      },
      "message": "Remove __BIONIC_LEGACY_INLINE.\n\nDon\u0027t use the same declaration to declare both static and non-static\nfunctions, to make life easier for versioner.\n\n(Also, remove __BIONIC_LEGACY_INLINE from two functions in termios.h\nthat weren\u0027t actually legacy inlines.)\n\nBug: http://b/30170081\nChange-Id: Ibb73377d77a2b4cee016289b7c46a01452e45fae\n"
    },
    {
      "commit": "3ba55f8022f3d5c5ca94a3df46fa658eda791987",
      "tree": "9e500c17531ea742e86de6848cc10ebca7ef28cb",
      "parents": [
        "93bae32c27f41e55e1cf9a6f5f8a05fbc1feaf1d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 08 18:11:23 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 09 17:40:19 2016 -0700"
      },
      "message": "Rationalize visibility.\n\nIf it\u0027s C or POSIX, it\u0027s in. If it\u0027s BSD or GNU, it\u0027s guarded by __USE_BSD\nor __USE_GNU.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d194631\nChange-Id: Ife51a21c2b37b060db56780d29c929805b199cb6\n"
    },
    {
      "commit": "46b44160e9e4c466be0faf1bb8d6ec70ecc83273",
      "tree": "80036c736b6315189745423724f1d69cb3b74682",
      "parents": [
        "6e9c1f61d8ea04d35d18709e373da355ca32e523"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 27 11:14:16 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jun 02 13:40:35 2016 -0700"
      },
      "message": "Update header versions for NDK platform fixes.\n\nBug: http://b/28178111\nChange-Id: Icd638673b409aa43a91490f77c6b4d79c9ea20d9\n"
    },
    {
      "commit": "14adff1cfa06a3d4d3281a9bf7848b556d84c20d",
      "tree": "ce1fb2867f69e49f57d0bbe8a9099b09beda0c19",
      "parents": [
        "5a3d5cac642f9e58b2c510eab23789fb4fc3a753"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 12:00:55 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 29 16:39:50 2016 -0700"
      },
      "message": "Add versioning information to symbols.\n\nBug: http://b/28178111\nChange-Id: I46bf95accd819f4521afb1173d8badcc5e9df31c\n"
    },
    {
      "commit": "b8e1b705d187886decb5970f791358f928f93d75",
      "tree": "28f12472ef5f3119340975edc1010c52452b084c",
      "parents": [
        "99739d4280e11f3a63d23059349a0cf98c41f5c4"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 13 17:18:20 2016 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 15 13:06:08 2016 -0700"
      },
      "message": "Make the legacy inline headers compile standalone.\n\nIt\u0027s useful to have the legacy inlines compile by themselves, both to\nmake header unification easier, and to ensure that the inline versions\nmatch the regular declarations. Notably, this wasn\u0027t true for\nsigismember, which took a const sigset_t* in the regular header, and\nsigset_t* in the inline version.\n\nBug: http://b/28178111\nChange-Id: Id8a3b7dcb1bfa61eed93c9fb50d3192744f8bef5\n"
    },
    {
      "commit": "1f1a51aecd7c825418bfedcb66772e92de790149",
      "tree": "542594ba6d7ac07a0af0229bcd473d8a325dc699",
      "parents": [
        "eaf50be332f015bd90e45d4f9d111b24cd230f00"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 31 17:05:30 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 31 17:05:30 2016 -0700"
      },
      "message": "Add a few missing types and constants to headers.\n\nThis (and other stuff still to come) prevented xfstests from building out\nof the box.\n\nBug: http://b/27952303\nChange-Id: Id38fd37386d43fc351c56dca18785a465e3e6145\n"
    },
    {
      "commit": "5704c423c81790195161c1757ae79da188590c51",
      "tree": "66ebd378fb496400d35ad38a8c4eb25931ad30f2",
      "parents": [
        "ac67b4eb7c70ea668abb32298b0cb16920a32a66"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 25 18:06:24 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 11:09:44 2016 -0800"
      },
      "message": "Implement POSIX lockf.\n\nThis has been requested a few times over the years. This is basically\na very late rebase of https://android-review.googlesource.com/45470\nwhich was abandoned years ago. One addition is that this version has\n_FILE_OFFSET_BITS\u003d64 support.\n\nPOSIX puts this in \u003cunistd.h\u003e. glibc also has it in \u003cfcntl.h\u003e.\n\nBug: http://b/13077650\nChange-Id: I5862b1dc326e326c01ad92438ecc1578d19ba739\n"
    },
    {
      "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": "94335cc8e2f32638d9e38741ddabfd19a38e0840",
      "tree": "02269c699fdbd5ee653ecebe86da298e2c68df92",
      "parents": [
        "542b94d9bf7eb3838b0582c02d7a1bf2e270af5a",
        "466dbe444446da0a8729ae9ac7294f54276e29d7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 30 17:18:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 30 17:18:49 2015 +0000"
      },
      "message": "Merge \"Put back inline definitions if using an old API.\""
    },
    {
      "commit": "466dbe444446da0a8729ae9ac7294f54276e29d7",
      "tree": "6930e91366bb16c0b12197dbf9efd18b458d2eaf",
      "parents": [
        "3780aba6352affc7d2dcdad0737cb4254448fcae"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jan 28 18:16:08 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 29 17:30:40 2015 -0800"
      },
      "message": "Put back inline definitions if using an old API.\n\nAll these inlines were turned in to out of line definitions in L.\nThis brings us a step closer to being able to just use the current\nbionic headers for the NDK, rather than having many old versions of\nthem.\n\nChange-Id: Ie010bc727d78d3742abc577c70f6578db2e68625\n"
    },
    {
      "commit": "86d2feef9f4df517dd5755b39b993bec0c3e1ea5",
      "tree": "ee7cfa061a58041498641c82047d2d5c89fd1cd0",
      "parents": [
        "3780aba6352affc7d2dcdad0737cb4254448fcae"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu.gandham@imgtec.com",
        "time": "Thu Jan 15 11:12:22 2015 -0800"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu.gandham@imgtec.com",
        "time": "Wed Jan 28 16:12:17 2015 -0800"
      },
      "message": "Modify MIPS64 stat structure to match a generic one in AOSP.\n\nThe kernel version of the stat structure is used during the syscalls. After the syscall,\nthe kernel stat structure is converted to match the generic one. Eventually we would like\nthe generic stat structure and related syscalls be added to MIPS64 kernel, removing the\nthunks added to AOSP.\n\nChange-Id: I7764e80278c1cc8254754c3531ec2dda7544a8ec\n"
    },
    {
      "commit": "c631bb215e29981222f19c092ded49c7c1f15845",
      "tree": "13fce594705618a08ac14747845e1dbb344f656a",
      "parents": [
        "b7f0693aaac9907070443ee6e47fe1d594b42251",
        "9257c477aeafe6b48cb0b7ed8c63f4f2b88453ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 23:38:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 18 23:38:26 2014 +0000"
      },
      "message": "Merge \"Fix the types of some of the struct stat fields.\""
    },
    {
      "commit": "9257c477aeafe6b48cb0b7ed8c63f4f2b88453ee",
      "tree": "101ed342b719fc2845282d62168a9ca2659b3ea7",
      "parents": [
        "8597c2b3f2ac3df9abe30378cdd3ecd559d995e7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 15:17:42 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 15:17:42 2014 -0800"
      },
      "message": "Fix the types of some of the struct stat fields.\n\nBug: 17062519\nChange-Id: I5207867939f3c2876bf6448e565fa4364aa7e4f0\n"
    },
    {
      "commit": "0c92e8c3d19de86282d5f95ea0fdc7ff5cd9ed03",
      "tree": "6b5f04531d46725b9de880ad1ef80c4ac229912d",
      "parents": [
        "a9c940a69a5ad01a92620594d41e462c5d46186e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 15:10:19 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 15:10:19 2014 -0800"
      },
      "message": "Remove bogus #include \u003cendian.h\u003e from \u003csys/stat.h\u003e.\n\nBug: 17062519\nChange-Id: I3dc21ee8b90580f112c73c72aff5d3bec4778026\n"
    },
    {
      "commit": "1c52e6c92631c694fa30b4e0312da31fb093acfd",
      "tree": "956279cbf30d77b6d9dd09590c57eadd8b606ab7",
      "parents": [
        "9dd5ab46194a3ef7992b0c08d18f2e30551f9331"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 12:38:44 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 18 15:03:33 2014 -0800"
      },
      "message": "Fix struct stat member types for x86-64.\n\nBug: 17062519\nChange-Id: I93b1e8b1d4b6918ab7c3a985e2f7da277077375e\n"
    },
    {
      "commit": "db4990373232182a897e10663344c429f5d1b2d5",
      "tree": "8d48e9207b23913728811131ce31beb70a78b011",
      "parents": [
        "3f1c604c9df459f5baecfdc04cbe8ecda07b70eb"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 09 20:15:48 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Dec 10 06:36:11 2014 +0000"
      },
      "message": "Use machine/timespec.h to separate timespec definition.\n\nBug: 18627763\nChange-Id: Ib1c406320f0ecc3705d19183a48f986cdf57c279"
    },
    {
      "commit": "e6ac9bb8a054c5a6df23e4c4ca3c17b45959bfd3",
      "tree": "b34e87d75734216fd73bc82db106fd75a6221970",
      "parents": [
        "b63600934c62beb09514e2ced1fce1bdb489195f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 11:24:51 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 10 11:24:51 2014 -0800"
      },
      "message": "Remove temporary compatibility hack.\n\nThe callers have been fixed.\n\nBug: 18298106\nChange-Id: I65e24032d0a82c4b118abace854d2dcdada881fb\n"
    },
    {
      "commit": "0ac0df84c7e96cca6abb800488462b7dfba86622",
      "tree": "5d6b5913a6dc04f0e56ff25bec72b95bfe2bb44d",
      "parents": [
        "47b9083b582bc8f7aefa0b6b4df051cba835ac0f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 07 19:15:10 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 07 19:15:10 2014 -0800"
      },
      "message": "Fix struct stat to match POSIX 2008.\n\nOur representation of sub-second times matched the Linux kernel, and we\nprovided macros for glibc source compatibility. This change switches us\nover to match POSIX 2008, adds the macros they insist on (for compatibility\nwith earlier versions of POSIX), and also adds macros for compatibility\nwith any code that expects the kernel or old bionic names.\n\nUnfortunately this breaks strace which defines its own structures using\nthe kernel names, and thus implicitly assumes that there are no macros with\nthose names, but this does allow the rest of the tree to build.\n\nBug: 18298106\nChange-Id: Ibfa8c21cb2a2566091ef3dc2019a9f78d2de2991\n"
    },
    {
      "commit": "ca8e84c6ff55640aef94d25a86a25778a542bfc2",
      "tree": "9bb5852afef5b61cf906caee58cfea12d65e0b0b",
      "parents": [
        "6c5694b6c8343d740c36adbe904442cecd8030a6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:23 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 23 19:10:54 2014 -0700"
      },
      "message": "Add mkfifoat(3).\n\nLooks like I missed one of the *at functions when I added the rest.\n\nChange-Id: If16de82dbf6f9a3ea7bfdcba406ca1c74a3f2279\n"
    },
    {
      "commit": "658727e111ed6dee7be5239494f0764f7b1b02f8",
      "tree": "253051956500d39d0a9e8d282aacebe78dc21def",
      "parents": [
        "eeb9aa02b7f307a1d9b80731dd69ef9dd2f47e47"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 07 11:10:36 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 07 16:46:47 2014 -0700"
      },
      "message": "Inline helpers need to be exported unmangled.\n\n__open_2() is used by the fortify implementation of open(2) in\nfcntl.h, and as such needs an unmangled C name. For some reason\n(inlining?), this doesn\u0027t cause problems at the default optimization\nlevel, but does for -O0.\n\nThe rest of these didn\u0027t cause build failures, but they look suspect\nand probably will, we just haven\u0027t caught them yet.\n\nBug: 17784968\nChange-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b\n"
    },
    {
      "commit": "f4c948a9e9b616c4f133f9495dacb105e51b3e49",
      "tree": "47e300fdbb36f28ab843468ad484a8d8a74a06e9",
      "parents": [
        "17f83c93cbbde3e38a03182931f40b7390061a7d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 11:16:41 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 11:18:20 2014 -0700"
      },
      "message": "Move the meat of \u003cfeatures.h\u003e into \u003csys/cdefs.h\u003e.\n\nThis way it\u0027s a lot harder for us to screw up (since we should always\nbe including \u003csys/cdefs.h\u003e anyway).\n\nBug: 14659579\nChange-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53\n"
    },
    {
      "commit": "b81046202842427a7e894a6bcb357971332997b0",
      "tree": "2d42ca4acacd3a57837e93f81824edfc72665a49",
      "parents": [
        "0baf2ca34c7d9ec067b1f33bad69782c2dedc231"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 09:18:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 19 09:18:03 2014 -0700"
      },
      "message": "Fix _BSD_SOURCE/__USE_BSD.\n\nBug: 14659579\nChange-Id: I80ec9584f054c02d1078828f6bca759c42bc1d4c\n"
    },
    {
      "commit": "2cfb4e8e2e217ef0e4140dcbf9b3da809781158c",
      "tree": "19a83c3a73ba3c613de106fd1b6ae8e83f75d3d4",
      "parents": [
        "2b6cdb5e459661727c99e81660c7c3df5cdbe024"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 14:45:42 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 18 14:45:42 2014 -0700"
      },
      "message": "Improve \u003csys/cdefs.h\u003e.\n\nFix and use __RENAME (and lose ___RENAME --- two underscores should be\nenough for anybody). This was the point of this change, because I want\nto use __RENAME to support the two basename variants and the two\nstrerror_r variants.\n\nLose a bunch of macros that weren\u0027t being used.\n\nLose three dead files from the DNS code.\n\nChange-Id: I3ef645c566b16a52217bc2e68c7d54b37c7c9522\n"
    },
    {
      "commit": "f963da22ecc25c51971d802037736ae540321441",
      "tree": "e206273e946ead1a15d4f35f1a206bab1b427c54",
      "parents": [
        "38967f3d1fbc9326beb7eef8c084b334e9bd65f5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue May 13 11:01:11 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue May 13 11:01:11 2014 +0100"
      },
      "message": "Undef private *_BODY defines after use\n\nBug: 14865741\nChange-Id: I1398f7b3f64e3c94f2714cede5b61205dfa78a24\n"
    },
    {
      "commit": "6b5559315d959347fcc01781669f771746cbb2ee",
      "tree": "1a810ab6de06ed4a07b6df58ee967948d4b452ab",
      "parents": [
        "787c1f937a915feefb767d0c6a15ddb70e6de933"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 16:43:31 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 16:43:31 2014 -0800"
      },
      "message": "Use uid_t and gid_t for st_uid and st_gid in struct stat.\n\nChange-Id: Ide62dc714d76d881e3aa79e7a59ee6533a23dd00\n"
    },
    {
      "commit": "db1ea3474899ebbd783aba872d3005f95a816d0f",
      "tree": "b70fedd7d69098f5141dbbb09ef41851a61eec8d",
      "parents": [
        "3623d80675e5321b92c2d88a7b7ec6bd998d81d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 17 18:42:49 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:39:24 2014 -0800"
      },
      "message": "Implement some of the missing LFS64 support.\n\nThis gives us:\n\n* \u003cdirent.h\u003e\n  struct dirent64\n  readdir64, readdir64_r, alphasort64, scandir64\n\n* \u003cfcntl.h\u003e\n  creat64, openat64, open64.\n\n* \u003csys/stat.h\u003e\n  struct stat64\n  fstat64, fstatat64, lstat64, stat64.\n\n* \u003csys/statvfs.h\u003e\n  struct statvfs64\n  statvfs64, fstatvfs64.\n\n* \u003csys/vfs.h\u003e\n  struct statfs64\n  statfs64, fstatfs64.\n\nThis also removes some of the incorrect #define hacks we\u0027ve had in the\npast (for stat64, for example, which we promised to clean up way back\nin bug 8472078).\n\nBug: 11865851\nBug: 8472078\nChange-Id: Ia46443521918519f2dfa64d4621027dfd13ac566\n"
    },
    {
      "commit": "645d0312c2d6b6492cc4b3891bc1a91908dc24b7",
      "tree": "4ec0e5c08e0c5a60dc7f9dfbb65e49aa8c57a138",
      "parents": [
        "5036935c41d9193cfbba606df2121cd4c6973116"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Feb 05 18:51:43 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 06 16:22:20 2014 -0800"
      },
      "message": "[MIPS64] libc/libm support\n\nlibc/libm support for MIPS64 targets\n\nChange-Id: I8271941d418612a286be55495f0e95822f90004f\nSigned-off-by: Chris Dearman \u003cchris.dearman@imgtec.com\u003e\nSigned-off-by: Raghu Gandham \u003craghu.gandham@imgtec.com\u003e\n"
    },
    {
      "commit": "b8fa5b1ca9fc9b8b92875d2d9f33df3c8310aa09",
      "tree": "de6b8214db56c8db43f107a6e02290a0e460ac8d",
      "parents": [
        "ed96db2a4f2fe5683407c3571d037bb7325544da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 16:50:22 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 19 16:50:22 2013 -0800"
      },
      "message": "Fix struct stat for aarch64.\n\nAnother kernel, another struct stat.\n\nChange-Id: Ia5ee553d4a2ffc878d2fed82a763ff64c02b12e8\n"
    },
    {
      "commit": "f8fcfbc85a3ce3e195626b90736d3a484331494b",
      "tree": "5742644f2305f27b65ae7d3a4d07a7614c36af2a",
      "parents": [
        "f0ed9bf2537e861ae75e6ab71efb4b4722ad0eee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 13:28:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 16:31:01 2013 -0700"
      },
      "message": "Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls.\n\nModern architectures only get the *at(2) system calls. For example,\naarch64 doesn\u0027t have open(2), and expects userspace to use openat(2)\ninstead.\n\nChange-Id: I87b4ed79790cb8a80844f5544ac1a13fda26c7b5\n"
    },
    {
      "commit": "594b1a4af204aa9de2b4913182f4556e38d71648",
      "tree": "ac4ed6a89ff6048205c0af443cc6f882e4499fdf",
      "parents": [
        "393484ab358040243793375e1525da083008e78e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 10:54:11 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 12:03:19 2013 -0700"
      },
      "message": "Make sure we have a mkfifo symbol.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58888\nChange-Id: Ic0a883a5f30beb82cb7be3c4e81b6d693d5fbb4d\n"
    },
    {
      "commit": "f68fac8c0030e56dfaab60c5a3a7c3c5afca80cc",
      "tree": "61fc0b5f1ddc4e2ac769688f931cbe99d40b2c63",
      "parents": [
        "e9797ac6756481c0c219eb6b99f9062fd6dfb770"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Tue Dec 18 17:25:01 2012 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 13:24:25 2013 -0700"
      },
      "message": "x86_64: Fix sys/stat.h\n\nAdd 64-bit stat structure mapping 64-bit stat syscall.\n\nChange-Id: Ice517616391bee1d556b6c03e7f5ee610050e6c6\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "d0be7c8f9a06b3ca8ea7647ea35c8f9dc63f0fe1",
      "tree": "a17df28516ef00c47859728418e9b7c7ef26c1ba",
      "parents": [
        "632fd5183a611b80e009be36f881f572acc41619"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 08 17:13:33 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 08 17:13:33 2013 -0700"
      },
      "message": "Add futimens.\n\nBug: 10239370\nChange-Id: I518340084103dc339ef8a065d4837d6258a1381d\n"
    },
    {
      "commit": "a6cde392765eb955cb4be5faa6ee62dcf77e8aa5",
      "tree": "c1553a2002af8470615afecb1a2fff9c29c2f916",
      "parents": [
        "227b47a461b27d746b373feb66001cdddc9ba1db"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 29 08:15:25 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 29 08:16:22 2013 -0700"
      },
      "message": "More FORTIFY_SOURCE functions under clang\n\n* bzero\n* umask\n* strlcat\n\nChange-Id: I65065208e0b8b37e10f6a266d5305de8fa9e59fc\n"
    },
    {
      "commit": "a641c18f0c62c31f5678f8c159a74486010ea851",
      "tree": "58f89487d51470e9748495461b97f1e776859fe6",
      "parents": [
        "16d1af167f8e36a9aa4a07ae77034ad519b00463"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 13:07:18 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 13:07:18 2013 -0700"
      },
      "message": "libc: Rename fortify error functions.\n\n__umask_error -\u003e __umask_invalid_mode\n__creat_error -\u003e __creat_missing_mode\n__too_many_args_error -\u003e __creat_too_many_args\n\nChange-Id: I4036f344a3a93628e70f2e948ad73cfed3a967ea\n"
    },
    {
      "commit": "16d1af167f8e36a9aa4a07ae77034ad519b00463",
      "tree": "61abe872a5f2ebebc4fe15205a77158bc8372ec2",
      "parents": [
        "b24c0637d06fe0980b9e13a8d0c3e6f4dbda9cd5"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 17 14:49:19 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 12:14:20 2013 -0700"
      },
      "message": "libc: add limited FORTIFY_SOURCE support for clang\n\nIn 829c089f83ddee37203b52bcb294867a9ae7bdbc, we disabled all\nFORTIFY_SOURCE support when compiling under clang. At the time,\nwe didn\u0027t have proper test cases, and couldn\u0027t easily create targeted\nclang tests.\n\nThis change re-enables FORTIFY_SOURCE support under clang for a\nlimited set of functions, where we have explicit unittests available.\nThe functions are:\n\n* memcpy\n* memmove\n* strcpy\n* strncpy\n* strcat\n* strncat\n* memset\n* strlen (with modifications)\n* strchr (with modifications)\n* strrchr (with modifications)\n\nIt may be possible, in the future, to enable other functions. However,\nI need to write unittests first.\n\nFor strlen, strchr, and strrchr, clang unconditionally calls the\nfortified version of the relevant function. If it doesn\u0027t know the\nsize of the buffer it\u0027s dealing with, it passes in ((size_t) -1),\nwhich is the largest possible size_t.\n\nI added two new clang specific unittest files, primarily copied\nfrom fortify?_test.cpp.\n\nI\u0027ve also rebuild the entire system with these changes, and didn\u0027t\nobserve any obvious problems.\n\nChange-Id: If12a15089bb0ffe93824b485290d05b14355fcaa\n"
    },
    {
      "commit": "b24c0637d06fe0980b9e13a8d0c3e6f4dbda9cd5",
      "tree": "918218d294c845db4b5fda6f9fb9a211a443bb54",
      "parents": [
        "977a33137d2be0093f474055f839cf665b82b588"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 10:46:02 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 18 12:13:52 2013 -0700"
      },
      "message": "libc: Introduce __errordecl()\n\nDefine __errordecl and replace __attribute__((__error__(\"foo\")))\nwith __errordecl. Make sure __errordecl is a no-op on clang, as it\ngenerates a compile time warning.\n\nChange-Id: Ifa1a2d3afd6881de9d479fc2adac6737871a2949\n"
    },
    {
      "commit": "890c8ed6ef773160cd6840a92e0d469fe530871f",
      "tree": "6689569955f500ea13697ea928386dd9c64d1af3",
      "parents": [
        "34895c1bdfa5df48ee9a7b4368b6def403f24cf1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 22 10:58:55 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 22 10:58:55 2013 -0700"
      },
      "message": "Fix builds where _FORTIFY_SOURCE is off.\n\nAlso add a more intention-revealing guard so we don\u0027t have loads of\nplaces checking whether our inlining macro is defined.\n\nChange-Id: I168860cedcfc798b07a5145bc48a125700265e47\n"
    },
    {
      "commit": "f27b7fb0567a9cbb642be9d98298cb6668e7db39",
      "tree": "99a6559087e9fcb01aa78852e57054c4f0316b7a",
      "parents": [
        "dea13da3407873e4f3fec9ba1a04b4fdacea07f4"
      ],
      "author": {
        "name": "Hakan Kvist",
        "email": "hakan.kvist@sonymobile.com",
        "time": "Wed Oct 10 08:32:52 2012 +0200"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:53:33 2012 -0800"
      },
      "message": "Define DEFFILEMODE and friends\n\nDefine the macros ACCESSPERMS, ALLPERMS and DEFFILEMODE.\nThese macros originates from BSD but has been available in glibc\nfor quite some time.\n\nChange-Id: I429cd30aa4e73f53b153ee7740070cebba166c57\n"
    },
    {
      "commit": "cd587701c8590fb34bb69804b5d3b3c14d3d2508",
      "tree": "d1ffda558ee1c2879ef515d6af99ad587948ccbd",
      "parents": [
        "6e0e03c38bc0e864225b89b3fb273fb56ded8940"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Sep 26 10:02:30 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Sep 26 10:19:31 2012 -0700"
      },
      "message": "FORTIFY_SOURCE: add umask check\n\nVerify that the call to umask makes sense. While this wouldn\u0027t\nhave detected bug 7094213 (because the low order bits were all zero),\nit might detect other similar bugs.\n\nReferences: https://code.google.com/p/android-source-browsing/source/detail?r\u003dacba45cc4b1f98f67fcdeda2f7c13ed57659b92a\u0026repo\u003dplatform--libcore\n\nChange-Id: I966a531d6b3cf8e1c5eacd69bd3cbec475b5fa58\n"
    },
    {
      "commit": "6437eac15a5b595ab26ef51834509c44695eb7e4",
      "tree": "b83b9dcd1a4e4f2c78054878fe7b9136761cb95b",
      "parents": [
        "52f3ee962b384bf247638adb653f0024ce92a895"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Aug 02 16:50:10 2012 -0700"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Aug 02 18:03:54 2012 -0700"
      },
      "message": "MIPS support to sys/ headers\n\nChange-Id: I32207a1d918e4842da341f6b242ae39c69a83b03\n"
    },
    {
      "commit": "ae2d5ba31412c4f382ef405000baa866f35dd736",
      "tree": "54338fc3fa81d2ff665cf259570b7684c0453269",
      "parents": [
        "ec7e8cc9dddafc624cd28939c1a38ea336c89455"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Mar 18 11:55:12 2011 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Thu Mar 24 18:18:48 2011 -0700"
      },
      "message": "Add support for the utimensat(2) syscall to bionic.\n\nThe kernel has supported this syscall for quite some time now,\nbut bionic did not.  Now that there is a need for it, let\u0027s\nadd it to bionic.\n\nChange-Id: Ifcef3e46f1438d79435b600c4e6063857ab16903\n"
    },
    {
      "commit": "09baf4e881c78e67c7849aa81432ceb34e72e913",
      "tree": "8f029aeb74289dca9e90daec93f81730cf7af3bf",
      "parents": [
        "9cfccefa055554c7e951741c01373a52a82d3fd6"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 22 12:16:06 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jun 22 12:16:06 2009 +0200"
      },
      "message": "Add Glibc-compatible macro aliases for the nanosecond time accessors in stat structure\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "9f65adf2ba3bb15feb8b7a7b3eef788df3fd270e",
      "tree": "c06064fc9022ef63a40f83a91292103784f49780",
      "parents": [
        "d37527501c85edcb3a6a7c8a0b6297d52d434897"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2",
      "tree": "2cbd43daa6744ed80e833528f8cbfc0c485e5253",
      "parents": [
        "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
