)]}'
{
  "log": [
    {
      "commit": "09e77f35ab8d291bf88302bb9673aaa518c6bcb0",
      "tree": "8cd94a94db1ab872266022a3ad2b746d0b215e36",
      "parents": [
        "945001da54637082fb30ea2a8bc50beb24442ffa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 19:20:45 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 19:36:14 2020 -0800"
      },
      "message": "_FILE_OFFSET_BITS\u003d64 support for fcntl.\n\nOn Android, fcntl is always implemented by fcntl64(2). This means that\nan LP32 binary can `fcntl(F_SETLK, struct flock)` (because fcntl64(2)\npasses through to the 32-bit fcntl(2) to handle F_SETLK), and it can\nalso `fcntl(F_SETLK64, struct flock64)`. What it can\u0027t do before this\npatch is set _FILE_OFFSET_BITS\u003d64 and then `fcntl(F_SETLK, struct\nflock)` where that `struct flock` is actually implicitly `struct\nflock64`.\n\nMove the kernel uapi structs out of the way, define them ourselves based\non __LP64__ and _FILE_OFFSET_BITS, and fix up the relevant F_ constants.\n\n(Also add a .clang-format to turn off clang-format in libc/include/.)\n\nBug: N/A\nTest: treehugger (and strace!)\nChange-Id: Iccd6c83d9133e1efcf93a7b49a6ae0f1bbd3d58b\n"
    },
    {
      "commit": "68a3bcc249b04394b73991c5272aa0ae4bde7676",
      "tree": "1198b5a3d89086b82223d8ee7271d215643c03a3",
      "parents": [
        "c2d3e67a77fe284e8f8f1ae4dd4a67a669bfd644"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 13 07:35:21 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 13 10:57:28 2018 -0800"
      },
      "message": "bionic tests: switch to using android-base/file.h for TemporaryFile\n\nA matching definition of TemporaryFile exists in libbase now.\n\nTest: compile\nBug: 119313545\nChange-Id: I6f84dbf3af9a9c4b270a2532a36c9cb4c0f6bb8f\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "fc30bfe2a4b1a84465b4c80f3159d7d714c08d37",
      "tree": "476f6a982c11885624a15f2bdff25189f4d7f3ec",
      "parents": [
        "88c5ddb6d20d8eec56bfff3a209a86ef2bfce60b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 24 22:54:34 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 24 22:54:34 2017 -0700"
      },
      "message": "Don\u0027t try to link(2) in a test if we\u0027re not root.\n\nBug: http://b/68055982\nTest: ran tests\nChange-Id: Icdbe3dd58fb84f3661e5d9ed3ff6884cc0ea2ff8\n"
    },
    {
      "commit": "f7a8e95fe844d9596bc9e2e0c53ce42b761f86c7",
      "tree": "9a58ee9885061b2afc354816fd867925a8284afb",
      "parents": [
        "2e01f39c31e042482fbe10df79d8b2837ae79239"
      ],
      "author": {
        "name": "Kazuhiro Inaba",
        "email": "kinaba@google.com",
        "time": "Mon Sep 25 15:18:29 2017 +0900"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Sep 25 23:34:19 2017 +0000"
      },
      "message": "Fix fcntrl#tee test to use the same expected/actual buffer size.\n\nPreviously the test compared /proc/version read into expected[256]\nwith actual[BUFSIZ]. This CL aligns the both of the buffer sizes to\nthe same BUFSIZ, so that /proc/version longer than 256 bytes won\u0027t\nresult in a test failure.\n\nBug: 66872345\nTest: fcntl#tee on a device with long /proc/version (Chromebook Plus)\nChange-Id: I004dd2189565b0bdde1aa22a2f25fafe74560180\n(cherry picked from commit 85a08ae9fead3f24daf108108257e4793a192e5f)\n"
    },
    {
      "commit": "212ea2b74eb0313eeacdb02fcae7118d88430c10",
      "tree": "07ef2846627052be319434a81a3026f76232d53b",
      "parents": [
        "10d21d2e26dedfc5c644255143a6bb491be04a23",
        "2fdefadcee9bdcad11beb971c3e06fbf2cdf79ae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 20:20:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 04 20:20:38 2017 +0000"
      },
      "message": "Merge \"With O_TMPFILE, open(2) takes a mode argument.\"\nam: 2fdefadcee\n\nChange-Id: I5cd1f9103b4b5f20f18fd3f7f5be2511e2b1990f\n"
    },
    {
      "commit": "b115aefbb3a472c605e167e09d14b1a797337e77",
      "tree": "4167aea0a211331deb64f66e3dfd6d931d20f246",
      "parents": [
        "cc3639b3eeb30cc4e994714254e8f995e77b30bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 09:34:19 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 04 10:20:18 2017 -0700"
      },
      "message": "With O_TMPFILE, open(2) takes a mode argument.\n\nStrictly, the mode isn\u0027t really meaningful unless you supply O_EXCL,\nbut the kernel will take it and fstat will return it even if you\nnever give the file a name.\n\nAlso warn for O_TMPFILE without a mode at compile time where possible.\n\nBug: N/A\nTest: ran tests\nChange-Id: I729b6d6e6190676fd017a1190b6200bf9abdbfd8\n"
    },
    {
      "commit": "e567fed45163adbfecdd3e78b266073290f387a7",
      "tree": "e70da78ef9f5c3212b8a11a35f8902dd7ff28bc3",
      "parents": [
        "7864cb749501acf3dd55525c74024e523bd45a6b",
        "b466d39c40bd4e95036cdc71327b701d0bbbc444"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 09 06:06:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 09 06:06:56 2017 +0000"
      },
      "message": "Merge \"Explain why we have a test that FALLOC_FL_PUNCH_HOLE is missing.\" am: 4f61181428\nam: b466d39c40\n\nChange-Id: Ia5c40bf1231e3a525532832e6509277b7d833401\n"
    },
    {
      "commit": "24ed8b5fbfa35cc461545e5b69fded356ea62f23",
      "tree": "f3d6f66cff5f6813fdd7cc5e995717a18476902e",
      "parents": [
        "498b4de964b5d38952acfe2d1823c13f20a641d3"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 02 14:57:49 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 02 14:58:44 2017 -0700"
      },
      "message": "Explain why we have a test that FALLOC_FL_PUNCH_HOLE is missing.\n\nChange-Id: I7388f2e0bc419f195247a1d3e73195cb4d199d5c\nTest: none\n"
    },
    {
      "commit": "47a52109a4a4ba212eaaa001db769f03ccd235ee",
      "tree": "2b272c9e86709a8cf3e494a171c48e1938a7bbec",
      "parents": [
        "8d88abc6c6eefbb6314803544f3f0b465a5d4cfa"
      ],
      "author": {
        "name": "Matthias Hausner",
        "email": "hausner@google.com",
        "time": "Fri Jun 02 10:09:19 2017 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Fri Jun 02 14:25:06 2017 -0700"
      },
      "message": "bionic: tests: only test falloc_punch on ext4\n\nTest fcntl#falloc_punch is wrong. It checks that fallocate() with mode\nFALLOC_FL_PUNCH_HOLE fails on ext4 file system on older kernels. The\ntest fails to ensure that the file it creates is indeed on an ext4\npartition. On an Angelfish device for example, the file is created on an\nf2fs partition, which supports FALLOC_FL_PUNCH_HOLE, and thus the test\nfails (wrongly).\n\nChange-Id: I23c1ba4d0fcee81551531779e93ac3d5e19ba1d7\nFixes: 62220977\nTest: run bionic-unit-tests as per bionic/README.md###Device tests\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\n"
    },
    {
      "commit": "09d900d50fec68160a3e130c9dd36444b099e104",
      "tree": "e27fc348d1465125624f9ca6305038a9e55c4f36",
      "parents": [
        "d263fe5d133ef732ba78deef851d3b99098d7e95"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Jul 19 15:20:24 2016 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Wed Sep 21 09:24:50 2016 -0700"
      },
      "message": "bionic: tests: add test for fallocate FALLOC_FL_PUNCH_HOLE\n\nBug: 28760453\nChange-Id: I1a58d19bf45eac5f930b0f649cf9b8c9046302f3\n"
    },
    {
      "commit": "094f3161517e21e18903c247d386155b8a3bb54b",
      "tree": "e66095733ac75eac6aecfbb358bc53035b3b47e3",
      "parents": [
        "3791291175df51b64bdfcebffb9dfa2529779180"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Jul 19 15:20:24 2016 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Mon Sep 12 13:28:47 2016 -0700"
      },
      "message": "bionic: tests: add test for fallocate FALLOC_FL_PUNCH_HOLE\n\nBug: 28760453\nChange-Id: I1a58d19bf45eac5f930b0f649cf9b8c9046302f3\n"
    },
    {
      "commit": "7f72ad4d6c6f4c99726fff423bdbbdca1032fdc2",
      "tree": "157fe5d3c01930627c72ba75c39aa50497de0cf2",
      "parents": [
        "95ddb26256db734be7f7efc8cba3362bcececea9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 11:56:03 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 12:17:22 2016 -0700"
      },
      "message": "Add sync_file_range to \u003cfcntl.h\u003e.\n\nBug: http://b/27952303\nChange-Id: Idadfacd657ed415abc11684b9471e4e24c2fbf05\n"
    },
    {
      "commit": "55147ada3c93bda85b2d35f72ba4fde1a7745ff6",
      "tree": "9da39bd68ce4cc4bbd9f7903bb4fa7e721c388ee",
      "parents": [
        "c9291e1bb51a9bf9fb64e382a094dc205de4287d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 11:06:02 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 05 11:06:02 2016 -0700"
      },
      "message": "Add missing prototype for readahead in \u003cfcntl.h\u003e.\n\nChange-Id: Icfe85e9cf95c657b495c4e9cd10dec50b0b8f6db\n"
    },
    {
      "commit": "b587f339db269abf08a2c311a7263dd218cb23d3",
      "tree": "18fd8a53623d63cae5e98d5aeb59a8aefaa853c2",
      "parents": [
        "c71483c0b38a6b4f2675f0bffa221dcf175c34ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 10 17:39:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 08:45:46 2014 -0700"
      },
      "message": "Add posix_fadvise(3).\n\n(cherry-pick of 00008263782e484020420c606f7d145fe7d0a4d8.)\n\nBug: 12449798\nChange-Id: I07cbf3f670a0d1304b68148325a774f266b5c433\n"
    },
    {
      "commit": "3f525d41c2acde2ae3309cf839d83d7f41ab2fe6",
      "tree": "572f2b5a63ffbbec084c9f048f396856c228b9b0",
      "parents": [
        "52f9b051c8bcb3d723b023a74d7d89ee45cf754c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 24 16:32:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 24 19:03:31 2014 -0700"
      },
      "message": "Add splice, tee, and vmsplice.\n\nChange-Id: I5f43380b88d776a8bb607b47dbbc5db5a2fe6163\n"
    },
    {
      "commit": "063525c61d24776094d76971f33920e2a2079530",
      "tree": "de279e25b05c43dbb06bc3ceb49f23bed3874377",
      "parents": [
        "a26dd781fe675cf94c62183da27622eb83ff6fa7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "message": "Consistently use #if defined(__BIONIC__) in tests.\n\nI\u0027ve also switched some tests to be positive rather than negative,\nbecause !defined is slightly harder to reason about and there are\nonly two cases: bionic and glibc.\n\nChange-Id: I8d3ac40420ca5aead3e88c69cf293f267273c8ef\n"
    },
    {
      "commit": "48501af98f3cdf0115a469ee8d773cf74c42958d",
      "tree": "b26893fa81d808c0f93bf8fdf966e3210948b8c2",
      "parents": [
        "0b0387c965894e235b72fa965191bf346270135d"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Fri Mar 14 13:16:25 2014 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 12:19:23 2014 -0700"
      },
      "message": "AArch64: Fix flock64 for LP64.\n\nOn LP64 systems F_GETLK64, F_SETLK64 and F_SETLKW64 definitions should\nmap onto the F_GETLK, F_SETLK and F_SETLKW definitions, respectively.\nLP64 also doesn\u0027t have a struct flock64.\n\nChange-Id: Ibdfed9645d9e946999acd6efa8b96ea6238ed5bf\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\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": "f64b8ea09db3bdd84eed59f7721301743332b3fe",
      "tree": "6d45a510ee831e1bc154170170afe7c931474ebc",
      "parents": [
        "a122c376ef0737454a592cf44f50beabe154e9e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "message": "Add fallocate/fallocate64/posix_fallocate/posix_fallocate64.\n\nBug: 5287571\nBug: 12612860\nChange-Id: I4501b9c6cdf9a830336ce0b3afc4ea716b6a0f6f\n"
    },
    {
      "commit": "062092543fdbd6fa2676e4f5b37a15f7bba94332",
      "tree": "1363126a8783cca6b0ae3faf7cab2657d1934323",
      "parents": [
        "7115c80231aa88272294076c8775c09727ece85a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 16:20:54 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 16:33:39 2013 -0800"
      },
      "message": "Clean up the 32-bit kernel support, fix LP64 fcntl declaration.\n\nIn practice, thanks to all the registers the stubs don\u0027t actually change,\nbut it\u0027s confusing to have an incorrect declaration.\n\nI suspect that fcntl remains broken for aarch64; it happens to work for\nx86_64 because the first vararg argument gets placed in the right register\nanyway, but I have no reason to believe that\u0027s true for aarch64.\n\nThis patch adds a unit test, though, so we\u0027ll be able to tell when we get\nas far as running the unit tests.\n\nChange-Id: I58dd0054fe99d7d51d04c22781d8965dff1afbf3\n"
    }
  ]
}
