)]}'
{
  "log": [
    {
      "commit": "280d54680d8842df5b0e37ec50acde48957d8e7a",
      "tree": "d714bd5c1de90e5a76d724162dd8df118c2e36cc",
      "parents": [
        "55f87a0c0bb587ee85b5662967563462d52db560"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 28 10:14:17 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 28 10:31:12 2015 -0700"
      },
      "message": "Fix bug number for linker related workarounds\n\nBug: 24425865\nChange-Id: I2021674a9df0e768f312ca024d906302db1c494f\n"
    },
    {
      "commit": "0aa96aedbe8db44148b7e41fd1a58ff8ad00964a",
      "tree": "2b19f9e06003a9dc4e4bef88300d4072bdba12d5",
      "parents": [
        "1399759118f50071d499f88b18828e36aa2bad00"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 22 16:30:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 22 16:49:40 2015 -0700"
      },
      "message": "Prevent the build system from hiding our ABI.\n\nUnfortunately --exclude-libs (now passed globally) clobbers our\nversion script, so we have to prevent the build system from using this\nflag.\n\nBug: http://b/24166967\nChange-Id: I33c766d399c418fdc17983c8c0a56608d463201e\n"
    },
    {
      "commit": "7fda8d2aa4d24ab400f6f0cb9f792488b634afae",
      "tree": "d81ce371104bff97fa70f76b76eefe05b0c588f5",
      "parents": [
        "90fc8e24876412a816776d44bedc77e1f1888a13"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 10 15:40:24 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 17 14:07:24 2015 -0700"
      },
      "message": "Implement setjmp cookies on ARM.\n\nReuse the top bits of _JB_SIGFLAG field previously used to store a\nboolean to store a cookie that\u0027s validated by [sig]longjmp to make it\nharder to use as a ROP gadget. Additionally, encrypt saved registers\nwith the cookie so that an attacker can\u0027t modify a register\u0027s value to\na specific value without knowing the cookie.\n\nBug: http://b/23942752\nChange-Id: Id0eb8d06916e89d5d776bfcaa9458f8826717ba3\n"
    },
    {
      "commit": "14545d4ce3dd446f20a14dcff37d60ff8d756f7a",
      "tree": "b869dad1c78b09de665ad001df795810da97455c",
      "parents": [
        "44c8ac8bd7747d907720c63538625a4b95245234",
        "26a83229728c099f5572edb65dedce7163dbff71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 15 15:13:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 15:13:35 2015 +0000"
      },
      "message": "Merge \"Move several FreeBSD functions to OpenBSD.\""
    },
    {
      "commit": "26a83229728c099f5572edb65dedce7163dbff71",
      "tree": "533e5ebee1e83f83e0ff3c6df1214358dbed304b",
      "parents": [
        "cd0ed2f174d9015da5ae7206bc4c5190cd0bb51e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 14 19:01:58 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 14 19:01:58 2015 -0700"
      },
      "message": "Move several FreeBSD functions to OpenBSD.\n\nThere\u0027s no difference between the two BSDs for these functions, so let\u0027s go\nwith the majority.\n\nChange-Id: Ic296f23153a48bed5ad152f5b31989c4e00e60bd\n"
    },
    {
      "commit": "71927a82379f7a72559ea96e6678d6215090937f",
      "tree": "1ec3dde6fb57f4c00aa0d3849e0e5e328ada58a0",
      "parents": [
        "cd0ed2f174d9015da5ae7206bc4c5190cd0bb51e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 14 18:45:52 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 14 18:45:52 2015 -0700"
      },
      "message": "Sync with upstream NetBSD lib/libc/regex.\n\nBug: http://b/22850181\nChange-Id: I11a51a2031e68a953ccd5691da98c699c7d01904\n"
    },
    {
      "commit": "32bf43f44a4c0ccf04c6a60094aff574d50ecfe7",
      "tree": "9f4ee4ace8e764e5ee7dc5ee285d58d26d0d0be1",
      "parents": [
        "a992004c9edf4db0c11aae8610cce6ebf13d53b4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 01 16:01:50 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 01 16:01:50 2015 -0700"
      },
      "message": "Rename debug_stacktrace to debug_backtrace.\n\nAll the functions say \"backtrace\", so it\u0027s weird that the filename\nsays \"stacktrace\".\n\nChange-Id: I1c88a56c1f9adb1bae4615edc8af3e73db270a8c\n"
    },
    {
      "commit": "46c7bc83ab0324983312f16bd40cc1cdfe11cce6",
      "tree": "80e900ba5dbe10d065e0d89334798622bec32fb0",
      "parents": [
        "bfaee4bd6ad901a699df21fd44d95f34e2e7444d",
        "cc6461861e6f09e0e0dd98e9409a11ea2c356d88"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 27 22:20:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 22:20:51 2015 +0000"
      },
      "message": "Merge \"Don\u0027t re-export libunwind_llvm.\""
    },
    {
      "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": "cc6461861e6f09e0e0dd98e9409a11ea2c356d88",
      "tree": "8dc22049e97ba6e76548d3bba403ad03bbe7f182",
      "parents": [
        "53f2abb5ffc103b9ea7fbe2fee13edead2553f3a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 25 16:29:00 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 25 16:29:28 2015 -0700"
      },
      "message": "Don\u0027t re-export libunwind_llvm.\n\nChange-Id: Ic16be4ada4cff374209d5eea89a7f81ed2fff398\n"
    },
    {
      "commit": "4d7d05bd60b1d0bc20c95dd764fc2d916a12bb74",
      "tree": "c28190a9d36ad5c12442c0e6911f6ac404aeddfe",
      "parents": [
        "5f7a5125a53951543e27276877fa6b71eb08a5d8",
        "3d0142227245250a28f138807d723b7a2e0dc244"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Aug 24 06:59:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 24 06:59:43 2015 +0000"
      },
      "message": "Merge \"Revert \"fix incompatibility with -fstack-protector-strong\"\""
    },
    {
      "commit": "3d0142227245250a28f138807d723b7a2e0dc244",
      "tree": "d658def4a42a6dcf4d3003f45437cfb59781dc30",
      "parents": [
        "96dd2b6e85e03ca9ab2600c2031490c22d5626ad"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Aug 24 06:58:39 2015 +0000"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Aug 24 06:58:39 2015 +0000"
      },
      "message": "Revert \"fix incompatibility with -fstack-protector-strong\"\n\nReports of devices not booting with a build range including\nthis patch. Reverting while I investigate.\n\nThis reverts commit 96dd2b6e85e03ca9ab2600c2031490c22d5626ad.\n\nBug: 23470962\nChange-Id: I056f1d8668f52d31412868975f2143249fc7e8f0\n"
    },
    {
      "commit": "5f7a5125a53951543e27276877fa6b71eb08a5d8",
      "tree": "256f0b1d94cc8167ad94324a32d46ee1baffecc5",
      "parents": [
        "62c26ed93e76ca9b3dd265f41eb3685ed2e72808",
        "96dd2b6e85e03ca9ab2600c2031490c22d5626ad"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun Aug 23 16:21:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Aug 23 16:21:18 2015 +0000"
      },
      "message": "Merge \"fix incompatibility with -fstack-protector-strong\""
    },
    {
      "commit": "62c26ed93e76ca9b3dd265f41eb3685ed2e72808",
      "tree": "c28190a9d36ad5c12442c0e6911f6ac404aeddfe",
      "parents": [
        "49715dcc8a8be1b4545b91e453467e1c45343e51",
        "afdd15456ad0c7223c690731f5eb0af54cdb0024"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Aug 21 03:03:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 03:03:22 2015 +0000"
      },
      "message": "Merge \"add fortified implementations of write/pwrite{,64}\""
    },
    {
      "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": "5341691955e2fc2b271b722c37496d72a0e8c683",
      "tree": "8b6a350a4898241663c6ccc58685a3362738e8ec",
      "parents": [
        "ff4afc136ef5d00d33a611e7bc1950249db9fbcf"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "message": "Move up to C++14.\n\nThe default standard version is now ahead of us. Stop specifying C++11\nso we get that too.\n\nChange-Id: Ic96942cd7fd134118e29b744601b0119e49b6ac4\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": "667dc75ee1c7c922f8610ccc6b70002642141f08",
      "tree": "e8a34188f223e0afb4845d7c2c6375514e32faa8",
      "parents": [
        "4955cde2c55d4860f12039a96d14fc756b1308a3"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jul 28 08:51:17 2015 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jul 28 08:51:17 2015 -0700"
      },
      "message": "deprecate TARGET_USES_LOGD\n\nThis is not the kernel logger you are looking for\n\nBug: 22787659\nChange-Id: I340d8bb5cdaa73be9565521681ee238b7033934b\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": "96dd2b6e85e03ca9ab2600c2031490c22d5626ad",
      "tree": "92f39ce36f0d4b66f5c2a93ed19dd6537d036ab2",
      "parents": [
        "cd588f847f3f23a9c60e32ab1e37c170e9f5be57"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Sat Apr 04 00:42:28 2015 -0400"
      },
      "committer": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Thu Jul 16 17:07:43 2015 -0400"
      },
      "message": "fix incompatibility with -fstack-protector-strong\n\nThe __libc_init_tls function in libc_init_common.cpp takes a reference\nto a local variable so it ends up being protected. Since this happens\nbefore TLS and the stack guard value are initialized, it breaks.\n\nThe libc_init_common code needs to be compiled with -fno-stack-protector\nand can then be merged into libc_bionic.\n\nChange-Id: Ie95ea2ff533d4af1cfad1c9bc59e49f20a8e119d\n"
    },
    {
      "commit": "e79d06b0e852c5ae854bb27de9c9de7f29b4343d",
      "tree": "36802b2a41b01b0412893b8ab241fe26dc2daad9",
      "parents": [
        "a8993c994e45ec2dc00dcef15910560e22d67be9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jun 23 14:18:14 2015 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jun 23 23:13:39 2015 +0000"
      },
      "message": "Use gcc to build and test x86_64 long double code.\n\nClang/llvm x86_64 configuration of long double is still\nincompatible with gcc.\nhttps://llvm.org/bugs/show_bug.cgi?id\u003d23897\n\nBUG: 21899249\nChange-Id: I47fd6d0ce2daa84ae0035e7885a4d90e4c3056f7\n"
    },
    {
      "commit": "b628b7db3952594d06c8063dc863a4dd6eaa8b89",
      "tree": "8da6b2b5a45f80f4442a960913f6b064b3dfb87b",
      "parents": [
        "9876aa273da6795aa6d257de5b779a68a0c2eccf",
        "11ea08c5cbc47db16f6c024338fbe9f6f456ce80"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 16 21:23:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 16 21:23:50 2015 +0000"
      },
      "message": "Merge \"Use new sanitizer option.\""
    },
    {
      "commit": "11ea08c5cbc47db16f6c024338fbe9f6f456ce80",
      "tree": "aa7f4b50ac77ecff24b4f214c1779acbce3e99af",
      "parents": [
        "df11f340cac2e7aa5ef69c3180d0f4089f46c96b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 16 13:57:54 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 16 13:57:54 2015 -0700"
      },
      "message": "Use new sanitizer option.\n\nChange-Id: I21b04a1f3be3b10ee557bf9e0caa5db638686364\n"
    },
    {
      "commit": "665607a6b7a7a8f129c30ee73c6606f4a56cea0c",
      "tree": "08596689cfa1e02ef862b6250b70e504f2b2b91b",
      "parents": [
        "713ae464abb942dafcafd738d9e00fcc8c3bb601"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jun 03 17:48:51 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 16 10:32:07 2015 -0700"
      },
      "message": "Add version to libc.so symbols\n\nBug: http://b/21617095\nBug: http://b/20139821\nChange-Id: If3d42d2a0b4a0c49721fd9b9ecbb4f7bee5a1eff\n"
    },
    {
      "commit": "e1d0810cd7e2aa045d5cc1e7d2b8697acd8467be",
      "tree": "335466a8a2f403dfa11394fa6c0d723873a4acf8",
      "parents": [
        "966f84b11dca7caf53c67664d811b99567cab7ee"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:23:26 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:25:41 2015 -0700"
      },
      "message": "Add O_PATH support for flistxattr()\n\nA continuation of commit 2825f10b7f61558c264231a536cf3affc0d84204.\n\nAdd O_PATH compatibility support for flistxattr(). This allows\na process to list out all the extended attributes associated with\nO_PATH file descriptors.\n\nChange-Id: Ie2285ac7ad2e4eac427ddba6c2d182d41b130f75\n"
    },
    {
      "commit": "19fee2ca8beb4fae5b5c142de19757410171dc93",
      "tree": "6247060c105b5aaf01b5cedb94507d8df99f36dd",
      "parents": [
        "12ca831b0e03e85a2f5588bdf834dc6046d1ac6c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 04 19:24:07 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 04 19:40:50 2015 -0700"
      },
      "message": "Fix a few libc makefile mishaps.\n\nThese are the problems fixed in this CL:\n\n- The ndk_cruft.cpp file was not compiled for 64 bit.\n- Some files where not compiled for libc_bionic.a due to a missing\n  patch-up-arch-specific-flags call.\n- The libc_bionic_ndk.a patch up call was using bionic src, not\n  the bionic_ndk_src_files.\n- Move mmap.cpp to the ndk src list where it was before because of\n  the above errors.\n\nBug: 21640784\nChange-Id: I31e97bc8bf347c8e584cc17aa4b984a7d122b298\n"
    },
    {
      "commit": "2825f10b7f61558c264231a536cf3affc0d84204",
      "tree": "a5b968e9591cd0aa3289c0d2195e0326ef2e353f",
      "parents": [
        "ef607cdae24363c5e6b6fc72607a4cff78623851"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun May 31 13:43:13 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 01 15:51:56 2015 -0700"
      },
      "message": "libc: Add O_PATH support for fgetxattr / fsetxattr\n\nSupport O_PATH file descriptors when handling fgetxattr and fsetxattr.\nThis avoids requiring file read access to pull extended attributes.\n\nThis is needed to support O_PATH file descriptors when calling\nSELinux\u0027s fgetfilecon() call. In particular, this allows the querying\nand setting of SELinux file context by using something like the following\ncode:\n\n  int dirfd \u003d open(\"/path/to/dir\", O_DIRECTORY);\n  int fd \u003d openat(dirfd, \"file\", O_PATH | O_NOFOLLOW);\n  char *context;\n  fgetfilecon(fd, \u0026context);\n\nThis change was motivated by a comment in\nhttps://android-review.googlesource.com/#/c/152680/1/toys/posix/ls.c\n\nChange-Id: Ic0cdf9f9dd0e35a63b44a4c4a08400020041eddf\n"
    },
    {
      "commit": "c05554ec5c9aff5e0f1e83de9bb62c3569eecca2",
      "tree": "13991325cce91a9fd76f42303946c21e67106aea",
      "parents": [
        "c02bdc76a21f6149c7867982e66ab16982e01c1b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue May 19 18:17:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 20 14:20:33 2015 -0700"
      },
      "message": "Fix error handling for negative size in ftruncate.\n\nBug: 21309901\nChange-Id: I54692ab8105dd09db6af7a2c0894a17bdd118aa0\n"
    },
    {
      "commit": "9185e04f72c16d2a66d92ac89b38ee926d7f706b",
      "tree": "e6cf2006eb78c9fbd28a64573a40370508f91624",
      "parents": [
        "0378d8f65126b2d94c731f2719a68773e370f615"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 15 17:53:39 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 15 18:42:14 2015 -0700"
      },
      "message": "Apply work around b/19059885 to x86\n\nBug: http://b/19059885\nBug: http://b/21203348\nChange-Id: Ic375e9f877d68de8f866d17362879a7dde638465\n(cherry picked from commit 69a5fb951d69689dedd83cb033ae3dcd0ef05b65)\n"
    },
    {
      "commit": "972d7fe63a2e0636b070bec266479c27e0bb8c5f",
      "tree": "1da2e70413da03601eb970420b8dcc834c4c6e50",
      "parents": [
        "c9310266dcdd65e4c5a55ab85d2f9e67a52750bf",
        "33f33515b503b634d9fbc57dda7123ea9cf23fc6"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 12 04:31:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 04:31:10 2015 +0000"
      },
      "message": "Merge \"Use unified syntax to compile with both llvm and gcc.\""
    },
    {
      "commit": "33f33515b503b634d9fbc57dda7123ea9cf23fc6",
      "tree": "0f588a4d5834681be091f3aba213baa9b7c69efc",
      "parents": [
        "11fc3f47afa6c9566875df02f880dc317cb94437"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 11 11:21:19 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 11 17:15:03 2015 -0700"
      },
      "message": "Use unified syntax to compile with both llvm and gcc.\n\nAll arch-arm and arch-arm64 .S files were compiled\nby gcc with and without this patch. The output object files\nwere identical. When compiled with llvm and this patch,\nthe output files were also identical to gcc\u0027s output.\n\nBUG: 18061004\nChange-Id: I458914d512ddf5496e4eb3d288bf032cd526d32b\n"
    },
    {
      "commit": "88e777d6f46709abebab88421e8c4ea7a9e3d9c4",
      "tree": "ea6dc75182db322876ba7828778791c7cd6ba21a",
      "parents": [
        "11fc3f47afa6c9566875df02f880dc317cb94437"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 08 12:05:47 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 08 12:06:20 2015 -0700"
      },
      "message": "Switch libc/libcstdc++/libm to hash-style\u003dboth\n\nBug: http://b/19059885\nChange-Id: Ie42703d91f291fd689a1cf9c35bcab5c487b9a84\n"
    },
    {
      "commit": "7c2c01d681d7f2faa256a263996a35ac3edc94b3",
      "tree": "512630d70277cea81482c7972d2db76ab152bb52",
      "parents": [
        "6f0d7005f9bc6d293e5cfcd60c13a6af0ffa99fc"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 15:12:24 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 15:12:24 2015 -0700"
      },
      "message": "Revert \"Fix volantis boot.\"\n\nBug: http://b/20065774\nThis reverts commit 76e1cbca75e9fdaf7a7943f2c58e65433b283f4a.\n"
    },
    {
      "commit": "62d6533c1ac4b32568ffcbebb41d480a730eb8bb",
      "tree": "f979d033a646a84ae7b4acd0a047406bf9a02955",
      "parents": [
        "6fa65e7cd54aeffbb2eb2116e30d2d34a5b655a2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 14:52:47 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 28 15:05:20 2015 -0700"
      },
      "message": "Do not pack relocations for libc.so\n\nBug: http://b/20645321\nBug: http://b/20655855\n(cherry picked from commit 452742d2bf4247106055696c11bc4e59ca630f11)\n\nChange-Id: Ic9125cc1bc4c9ba9eb20d030de72e3ce1fb86fa6\n"
    },
    {
      "commit": "59bce688c7edfa2479f63a76268cc30f98d1044c",
      "tree": "f4b7bdc40e8525bff6e1750f79c8016e14d9f36c",
      "parents": [
        "682a240c5d6a479ed3b8187ea99044627bf2394c",
        "0a93df369cf3f44d40ca1f0cb4a58aeab42fb39c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Apr 27 17:17:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 17:17:45 2015 +0000"
      },
      "message": "Merge \"Fix opcode to compile with both gcc and llvm.\""
    },
    {
      "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": "ea295f68f1fae7c701baaa717f67296659d567ac",
      "tree": "745388310ffe715acbfd96b3cedfe55ccb50a2ca",
      "parents": [
        "ebfb55e4cdf03473d66eaf5928fb3c3a8b0c2f85"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 20 20:47:02 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 17:57:37 2015 -0700"
      },
      "message": "Unregister pthread_atfork handlers on dlclose()\n\nBug: http://b/20339788\nChange-Id: I874c87faa377645fa9e0752f4fc166d81fd9ef7e\n"
    },
    {
      "commit": "6c63ee41ac5a246fb46c51753cd4d50ccae0dd8f",
      "tree": "3ed0595fe98662464ea1ad7d6d5e75af9ff851b5",
      "parents": [
        "41ebceaf3ad392b4a3f40d96d5750d95ef206546",
        "094f58fb2a57d1ed5736ae3588bf0355618f915b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 03:49:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 03:49:30 2015 +0000"
      },
      "message": "Merge \"Revert \"Unregister pthread_atfork handlers on dlclose()\"\""
    },
    {
      "commit": "094f58fb2a57d1ed5736ae3588bf0355618f915b",
      "tree": "8f41a50086a97f88be5bf98d2a2806a26d854d5a",
      "parents": [
        "6df122f8528f9b9fcf7dfea14ae98b0ef66274e1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 03:45:59 2015 +0000"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 03:46:57 2015 +0000"
      },
      "message": "Revert \"Unregister pthread_atfork handlers on dlclose()\"\n\n The visibility control in pthread_atfork.h is incorrect.\n It breaks 64bit libc.so by hiding pthread_atfork.\n\n This reverts commit 6df122f8528f9b9fcf7dfea14ae98b0ef66274e1.\n\nChange-Id: I21e4b344d500c6f6de0ccb7420b916c4e233dd34\n"
    },
    {
      "commit": "e3ecedd306ec16ecb31c6b7d6f9fdcb65c03b70f",
      "tree": "7857fbd884df8bb1edb0abf37b1dad04a9cce08c",
      "parents": [
        "3da9373fe0ada19d13c6c3f9831dee93ec0ba7a6",
        "7280e507b61851bce9b18259368d65b9e950c330"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 23 21:50:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 21:50:15 2015 +0000"
      },
      "message": "Merge \"Remove jemalloc.a from libc_nomalloc.a\""
    },
    {
      "commit": "0a93df369cf3f44d40ca1f0cb4a58aeab42fb39c",
      "tree": "76ac32a264a8a007634eb2067e7b9607c8aab93b",
      "parents": [
        "913fe559f69395aaf160653c1d3994df3272810b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 23 14:27:10 2015 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 23 21:40:31 2015 +0000"
      },
      "message": "Fix opcode to compile with both gcc and llvm.\n\nBUG: 17302991\n\nChange-Id: I31febd9ad24312388068803ce247b295bd73b607\n"
    },
    {
      "commit": "3da9373fe0ada19d13c6c3f9831dee93ec0ba7a6",
      "tree": "ef5f36fd86ed71b516a9b88959e2d0ae7ff88b57",
      "parents": [
        "dc405b5230c3d72107b57798a2c23b1a46069f4d",
        "3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 23 21:14:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 21:14:25 2015 +0000"
      },
      "message": "Merge \"Simplify close(2) EINTR handling.\""
    },
    {
      "commit": "7280e507b61851bce9b18259368d65b9e950c330",
      "tree": "570080db918c1f3cbaa1858940f0e4bb330fc441",
      "parents": [
        "dc405b5230c3d72107b57798a2c23b1a46069f4d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 23 12:24:43 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 23 12:24:43 2015 -0700"
      },
      "message": "Remove jemalloc.a from libc_nomalloc.a\n\nChange-Id: I86edc1a6cf3a26c46e6daef2c859459c1b0f29af\n"
    },
    {
      "commit": "3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208",
      "tree": "310c54610766a838a0569f8e44b33e7805b2d42c",
      "parents": [
        "ff18108981aa1fa73696d6db1919cdc38788bd4e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 22 21:40:38 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 23 08:41:45 2015 -0700"
      },
      "message": "Simplify close(2) EINTR handling.\n\nThis doesn\u0027t affect code like Chrome that correctly ignores EINTR on\nclose, makes code that tries TEMP_FAILURE_RETRY work (where before it might\nhave closed a different fd and appeared to succeed, or had a bogus EBADF),\nand makes \"goto fail\" code work (instead of mistakenly assuming that EINTR\nmeans that the close failed).\n\nWho loses? Anyone actively trying to detect that they caught a signal while\nin close(2). I don\u0027t think those people exist, and I think they have better\nalternatives available.\n\nBug: https://code.google.com/p/chromium/issues/detail?id\u003d269623\nBug: http://b/20501816\nChange-Id: I11e2f66532fe5d1b0082b2433212e24bdda8219b\n"
    },
    {
      "commit": "6df122f8528f9b9fcf7dfea14ae98b0ef66274e1",
      "tree": "5a59eb4d1148b6218b8a06895baf6176f17b995b",
      "parents": [
        "ff18108981aa1fa73696d6db1919cdc38788bd4e"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 20 20:47:02 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 22 19:19:37 2015 -0700"
      },
      "message": "Unregister pthread_atfork handlers on dlclose()\n\nChange-Id: I326fdf6bb06bed12743f08980b5c69d849c015b8\n"
    },
    {
      "commit": "a00a9f0b7ed39589a768798de6a584a4baae030b",
      "tree": "80732a5c48eaf573106794d7962818f0824463b7",
      "parents": [
        "da3c4f2f0d86b7e249c9b9b6cdf3bc0225b7178e",
        "6fb8e96e5f6ff2dd3b3aa8eda0a6766d6b3a63f2"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Apr 21 23:44:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 21 23:44:59 2015 +0000"
      },
      "message": "Merge \"Allow building libc long double code with clang/llvm.\""
    },
    {
      "commit": "6fb8e96e5f6ff2dd3b3aa8eda0a6766d6b3a63f2",
      "tree": "f88e0d48c62c381c1ecee547ab2b940cce2a8948",
      "parents": [
        "9923c8cd13d1e8305a908ef23712c7d3e4d4131d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Mar 16 13:49:40 2015 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Apr 21 21:20:37 2015 +0000"
      },
      "message": "Allow building libc long double code with clang/llvm.\n\nThis requires fix of clang\u0027s Android x86 long double size and format.\nThat bug has been fixed in https://android-review.git.corp.google.com/#/c/146254/\n\nChange-Id: I182c6c493085212f88c694356659f72227c8b8c7\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": "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": "a40cb0ca7fe8ddc146831e92ec543be9feb26a65",
      "tree": "4bf0c59669d2bb2bce605a400a49de7eaf62c723",
      "parents": [
        "12d89027457b4d5dce6c3a7fd01a2951f273d9a9",
        "163ab8ba86deb991c73152e6828f270cc71dc4c5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 16 08:06:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 08:06:03 2015 +0000"
      },
      "message": "Merge \"Call __cxa_thread_finalize for the main thread.\""
    },
    {
      "commit": "163ab8ba86deb991c73152e6828f270cc71dc4c5",
      "tree": "fdaf88cdc6ae4788a95f2f527e35fa869398397f",
      "parents": [
        "8f3f04184a5772b421867b59acd3d0dfbc6fa4eb"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 15:31:51 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 16:24:21 2015 -0700"
      },
      "message": "Call __cxa_thread_finalize for the main thread.\n\nBug: http://b/20231984\nBug: http://b/16696563\nChange-Id: I71cfddd0d404d1d4a593ec8d3bca9741de8cb90f\n"
    },
    {
      "commit": "66aa0b61f736678e97a0cfaf975052881a23651b",
      "tree": "0377a161a2d6745f88c73bd6474916efb1dcaa99",
      "parents": [
        "cafc948069d447aa1e4dde599ee83bf6c0c5d5d8"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 14:07:28 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 15 14:23:00 2015 -0700"
      },
      "message": "Hide emutls* symbols in libc.so\n\n Also make thread_local in test static to avoid ld.bfd\n warning for arm64.\n\nChange-Id: I09a3f2aa9b73a4fafa3f3bbc64ddc2a128ad50ee\n"
    },
    {
      "commit": "76e1cbca75e9fdaf7a7943f2c58e65433b283f4a",
      "tree": "71f98b1cf8521c3c2111bf375707d8aebf653cf9",
      "parents": [
        "06b6e3c51d38d70c5ca99f3a3f795697031ac27f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 03 11:27:53 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 03 12:37:03 2015 -0700"
      },
      "message": "Fix volantis boot.\n\nNVIDIA binary blobs are assuming that __cache_clear, _Unwind_Backtrace,\nand _Unwind_GetIP are all in some library that they link, but now we\u0027ve\ncleaned up this leakage, they\u0027re no longer getting it. Deliberately leak\nthe symbols from libc.so until we get new blobs.\n\nBug: http://b/20065774\nChange-Id: I92ef07b2bce8d1ad719bf40dab41d745cd6904d4\n"
    },
    {
      "commit": "d6bf3d5e19f192dc1949b573d931d487c42730fa",
      "tree": "6cf22de9eb63e28b7447f58b13b326f69dce4ca4",
      "parents": [
        "b023799a6027924aad13b0f91c0b5b7f1b9cfe2d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Apr 01 16:26:54 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Apr 01 16:31:57 2015 -0700"
      },
      "message": "Don\u0027t export new/delete from libc shared libraries.\n\nThis used to be handled by -fvisibility\u003dhidden on libc_cxa, but that\nwas broken by the resolution of https://llvm.org/PR22419 (introduced\nto Android in today\u0027s clang update).\n\nNow we just use a version script that prevents these from being\nre-exported from our shared libraries.\n\nChange-Id: Ib290e1d0d7426e09ad17a91178162fff6dbdcfa9\n"
    },
    {
      "commit": "402d19945092eee87cfb6c029c98ccb4fb40d2c6",
      "tree": "fed0256e34404fee5603fe4a862190a949f8c522",
      "parents": [
        "cd79a59b18f8e81b5f37258f376a726dc8acb81a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 27 15:27:07 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 27 15:27:07 2015 -0700"
      },
      "message": "Fix libstdc++.so hash-style.\n\nBug: 19059885\nBug: 19958712\nChange-Id: I167457a54cc688d64912a50f5fb75e4e2f3e3937\n"
    },
    {
      "commit": "df79c330d895af31f39ee301dee62731fa586168",
      "tree": "7129c6e46b2c150027605af4c6f08c1e6de24815",
      "parents": [
        "0c3b632bd6570064bab1055d2b8a51cfb85e60bb"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 25 17:38:10 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 25 18:07:59 2015 -0700"
      },
      "message": "Initial implementation of __cxa_thread_atexit_impl\n\n  This is initial implementations; does not yet handle\n  dlclose - undefined behavior, needs linker support to\n  handle it right.\n\nBug: 19800080\nBug: 16696563\nChange-Id: I7a3e21ed7f7ec01e62ea1b7cb2ab253590ea0686\n"
    },
    {
      "commit": "673b15e4ee2c6d99b150aedddc0f389e29f98e1b",
      "tree": "edc101b54c689960bdf1262e6378b21082d3e277",
      "parents": [
        "4149dc944bbe3c5f1c14fc998106975e68bdd6bf"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Mar 19 14:19:19 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Mar 23 19:03:49 2015 -0700"
      },
      "message": "Let g_thread_list_lock only protect g_thread_list.\n\nAs glibc/netbsd don\u0027t protect access to thread struct members by a global\nlock, we don\u0027t want to do it either. This change reduces the\nresponsibility of g_thread_list_lock to only protect g_thread_list.\n\nBug: 19636317\nChange-Id: I897890710653dac165d8fa4452c7ecf74abdbf2b\n"
    },
    {
      "commit": "2e16d2cf1e477af1db92efde389a5ce0a8e6fbb3",
      "tree": "b94bcc714add9028cf875933cade2e284b951b85",
      "parents": [
        "be86f87711ee71ff971da2e2ae7a092081177951"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 13 12:43:30 2015 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 13 19:48:03 2015 +0000"
      },
      "message": "Switch libc and libm to sysv-only hash style\n\nBug: 19059885\nChange-Id: I60a23dc5f9c756994d566818332ca42b305b4a05\n"
    },
    {
      "commit": "1156508265422f407c7072788ce6c32c35411941",
      "tree": "8396de72d1b950b695df57fe39a679c9e37ff440",
      "parents": [
        "a94cf791c1c9b93d49f5573716de93348757ae15"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@imgtec.com",
        "time": "Tue Mar 10 17:11:39 2015 +0100"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 10 10:01:50 2015 -0700"
      },
      "message": "Generate gnu hash for arm only\n\nFixes build failure caused by:\nhttps://android-review.googlesource.com/#/c/139660\n\nAs previously discussed [1], MIPS does not support GNU-style ELF hashes.\n\n[1] https://android-review.googlesource.com/#/c/49282/2/tests/Android.mk\n\nChange-Id: I9a7966eebfd1ef0a587a20b71faefde38e84ab62\n"
    },
    {
      "commit": "4a55c46d308deae70d7d8669c50514d521813dc2",
      "tree": "58d3ded6c3fe7002348e118f45435c668cfac5d8",
      "parents": [
        "017f94d34eedfaca1c62cb35a65b8436f04b8f62"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 09 19:38:56 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 09 19:38:56 2015 -0700"
      },
      "message": "Generate sysv hash for libc, libstdc++ and libm\n\nBug: 19059885\nChange-Id: I35e2a9cd0bb3914d9d0c82d163bfaf0fff844667\n"
    },
    {
      "commit": "35778253a5ed71e87a608ca590b63729d9f88567",
      "tree": "d9e6112654bf2faa754abd9f28bc20c2ccccff57",
      "parents": [
        "2aef607b25c463baed5ae70d14212e24ea7bcf2b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "message": "Fix \"faccessat ignores flags\"\n\nThe kernel system call faccessat() does not have any flags arguments,\nso passing flags to the kernel is currently ignored.\n\nFix the kernel system call so that no flags argument is passed in.\n\nEnsure that we don\u0027t support AT_SYMLINK_NOFOLLOW. This non-POSIX\n(http://pubs.opengroup.org/onlinepubs/9699919799/functions/access.html)\nflag is a glibc extension, and has non-intuitive, error prone behavior.\n\nFor example, consider the following code:\n\n  symlink(\"foo.is.dangling\", \"foo\");\n  if (faccessat(AT_FDCWD, \"foo\", R_OK, AT_SYMLINK_NOFOLLOW) \u003d\u003d 0) {\n    int fd \u003d openat(AT_FDCWD, \"foo\", O_RDONLY | O_NOFOLLOW);\n  }\n\nThe faccessat() call in glibc will return true, but an attempt to\nopen the dangling symlink will end up failing. GLIBC documents this\nas returning the access mode of the symlink itself, which will\nalways return true for any symlink on Linux.\n\nSome further discussions of this are at:\n\n  * http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003617.html\n  * http://permalink.gmane.org/gmane.linux.lib.musl.general/6952\n\nAT_SYMLINK_NOFOLLOW seems broken by design. I suspect this is why this\nfunction was never added to POSIX. (note that \"access\" is pretty much\nbroken by design too, since it introduces a race condition between\ncheck and action). We shouldn\u0027t support this until it\u0027s clearly\ndocumented by POSIX or we can have it produce intuitive results.\n\nDon\u0027t support AT_EACCESS for now. Implementing it is complicated, and\npretty much useless on Android, since we don\u0027t have setuid binaries.\nSee http://git.musl-libc.org/cgit/musl/commit/?id\u003d0a05eace163cee9b08571d2ff9d90f5e82d9c228\nfor how an implementation might look.\n\nBug: 18867827\nChange-Id: I25b86c5020f3152ffa3ac3047f6c4152908d0e04\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": "2c678e6644a0ac7bfdfb8f199ac2cd0d4ea1153f",
      "tree": "65f48180347c969cf7b95eb73958656142bde268",
      "parents": [
        "5890ec3e229cbe115308e103111fec471f2319b7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Feb 18 17:37:52 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Feb 18 17:37:52 2015 -0800"
      },
      "message": "Parameterize use of clang in libc_ndk.\n\nWe still have issues with clang coverage in static libraries, so we\nneed to make sure we follow suit with the rest of libc for now.\n\nBug: 17574078\nChange-Id: I2ab58a84b1caa0d8d08415d240c35adec5b1e150\n"
    },
    {
      "commit": "a6395e1fd0ccc818ed6424797690b12f8b690755",
      "tree": "5e86f2e854024b8fcd0496119fb0caf4b0df7f81",
      "parents": [
        "9a9ea3a28099602fe22e36638a44fa36df80fe8e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Feb 12 16:35:09 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 17 17:02:42 2015 -0800"
      },
      "message": "Update NDK compatlib for 4.1.2.\n\nThe replacement new failures present in newer versions are present\nhere as well, with the following new issues:\n\nXPASS std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp\n\nThis is from the -NaN formatting fix in bionic. We previously had this\nwrong, and the upstream test is also wrong. There\u0027s currently an XFAIL\nfor Android in this test because I haven\u0027t fixed the upstream test\nyet. After that is done, I\u0027ll need to teach the test runner how to\nXFAIL older Android versions...\n\nFAIL std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp\n    dtor.pass.cpp:39: int main(): assertion \"globalMemCounter.checkDeleteArrayCalledEq(1)\" failed\n\nHaven\u0027t investigated this one yet. http://b/19412688\n\nNote that this also needs the libgcc link ordering to be fixed in the\nbuild system, as we\u0027ll otherwise depend on libgcc symbols from libc\nthat may or may not have been there.\n\nThe build fix can\u0027t be submitted because the proper link order causes\nthe libgcc unwinder to be used instead of the EHABI one:\nhttp://b/18471342\n\nBug: 18471532\nChange-Id: Icf560485a9b8f5ebbe01e4458703e62ec94df5e1\n"
    },
    {
      "commit": "9a9ea3a28099602fe22e36638a44fa36df80fe8e",
      "tree": "ff71dda7ec4193daf9055a5c7ce75c4c54d1747e",
      "parents": [
        "54b61b7ca7d7c9c7474e2beb35d20a9ab635529f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Feb 09 17:45:22 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Feb 17 17:02:34 2015 -0800"
      },
      "message": "Update the NDK compatlib for 4.4.4 and ToT.\n\nNow passes all libc++ tests for these targets, with the exception of\nthe usual failing replacement new tests since libc uses new/delete for\nthings. I don\u0027t know if we can ever really fix these.\n\nBug: 18471532\nChange-Id: Ibc0a15f26b0e4613249b5e15ecf3cf80e523467c\n"
    },
    {
      "commit": "e09ab2cc2ff41ce7519c143d448371ddd62afc59",
      "tree": "27aeb6b9af0e2cee7200e1683a9650f013b49396",
      "parents": [
        "f9fb52ab309c97d5b2ef4f8e1daff3eed4cf4024"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 12 17:03:22 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 12 21:37:20 2015 -0800"
      },
      "message": "Make .note.android.ident section type SH_NOTE\n\nThe .note.android.ident section is only used by GDB, which doesn\u0027t\ncare what section type the section is, but it would be convenient\nfor readelf -n to be able to find the section too.\n\nThe old way of getting the .note.android.ident section to be of type\nSH_NOTE involved compiling from .c to .s using gcc, running sed to\nchange progbits to note, and then compiling from .s to .o using gcc.\nSince crtbrand.c only contains a section containing data, a\ncrtbrand.S can be checked in that will compile on all platforms,\navoiding the need for sed.\n\nAlso add crtbrand.o to crtbegin_so.o so that libraries also get\nthe note, and to the crt workaround in arm libc.so.\n\nChange-Id: Ica71942a6af4553b56978ceaa288b3f4c15ebfa2\n"
    },
    {
      "commit": "44e88db185cc65b49373dd76d8ed27264b7299ed",
      "tree": "03ec9aa6aa8e30da41b9f007532f2d2f53c3066e",
      "parents": [
        "bda85a12392b10555dc03ac377c8450b8f0790d6",
        "91b403cef62a5f1c727c3ed7395ea83852c4a2ab"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 06 22:45:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 06 22:45:59 2015 +0000"
      },
      "message": "Merge \"Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs\""
    },
    {
      "commit": "91b403cef62a5f1c727c3ed7395ea83852c4a2ab",
      "tree": "d521eae49865dfdf00bbbb625ca1c52fef6862ef",
      "parents": [
        "5b869c0bbf8a2924ab69d86a98e9a25558d33494"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 06 14:16:17 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 06 14:16:17 2015 -0800"
      },
      "message": "Use LOCAL_C_INCLUDES instead of LOCAL_CFLAGS for include dirs\n\nChange-Id: If61d6faae5d91c3bbe198e733e5922cd877ba353\n"
    },
    {
      "commit": "6e54c3e519892ca13f15bdcea0d431befbadac25",
      "tree": "914bdd8c31ba4d8cd205fefb8f0b95669a425189",
      "parents": [
        "8e5f9bc8a46872e3f0ac4799558fdfd5999f9c20"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 05 12:05:34 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 05 12:05:34 2015 -0800"
      },
      "message": "Use the libcxxabi __cxa_demangle.\n\nBug: 18930951\nChange-Id: If2ea3633ac6dfd4ec975c0f16bdf3dd58e05c614\n"
    },
    {
      "commit": "da2c0a708ed6c0091f3f89fd8838292579dad800",
      "tree": "366ffdc2136629ea65b5086c3b3a1bbd3a582c14",
      "parents": [
        "17976019a13a94ae428849bfe297f8e531f95013",
        "5b869c0bbf8a2924ab69d86a98e9a25558d33494"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 05 01:57:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 05 01:57:28 2015 +0000"
      },
      "message": "Merge changes Ib87855e8,I4b46ae20,I66364a5c,Id3fcf680\n\n* changes:\n  Use LOCAL_LDFLAGS_64 instead of enumerating 64-bit architectures\n  Fix typo in cpu variant makefile depenendency for arm64\n  Remove libc_static_common_src_files\n  Share LP32 makefile settings between arches\n"
    },
    {
      "commit": "5b869c0bbf8a2924ab69d86a98e9a25558d33494",
      "tree": "dd21061e073d1d6ea6549a353d63c7499cb0281f",
      "parents": [
        "a6b6ed5fe9dd247684de5f35a0367be65876339e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 04 17:40:29 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 04 17:40:29 2015 -0800"
      },
      "message": "Use LOCAL_LDFLAGS_64 instead of enumerating 64-bit architectures\n\nLOCAL_LDFLAGS_\u003carch\u003e was being set for arm64, mips64, and x86_64.\nUse LOCAL_LDFLAGS_64 instead.\n\nChange-Id: Ib87855e8a7783f82461b707fffa7f1663e6be9c8\n"
    },
    {
      "commit": "7dc502d01292f3303a5252ce20f80f621f4f15f5",
      "tree": "9190e89158198acffd7c69aa18fbdb3df8c78ce9",
      "parents": [
        "1742a32aea4108a8a967e8da2131de30c8808658"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 04 17:37:23 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 04 17:37:23 2015 -0800"
      },
      "message": "Remove libc_static_common_src_files\n\nlibc_static_common_src_files is never set after\nc3f114037dbf028896310609fd28cf2b3da99c4d, remove the remaining\nreferences to it.\n\nChange-Id: I66364a5c1b031ad69d608f6f44244049192944f6\n"
    },
    {
      "commit": "1742a32aea4108a8a967e8da2131de30c8808658",
      "tree": "2410fb404c8fad86685f79e1b867a37025744889",
      "parents": [
        "94335cc8e2f32638d9e38741ddabfd19a38e0840"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 04 17:35:49 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 04 17:35:49 2015 -0800"
      },
      "message": "Share LP32 makefile settings between arches\n\nAdd \u003cvar\u003e_32 to patch-up-arch-specific-flags, and move the LP32\ncruft varaibles from the 32-bit arch specific makefiles into the\ntop level Android.mk.\n\nChange-Id: Id3fcf6805d4af048c2524c94b1295416ebe7d057\n"
    },
    {
      "commit": "d80ec66121b5af96c6b3d07ba34353b3d517f5b3",
      "tree": "ac55af52647bb32468e477945a1da988778e9436",
      "parents": [
        "c57b5c5094f915ff975a256e086d58e2e7cfedf1",
        "3cbc6c627fe57c9a9783c52d148078f8d52f7b96"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Feb 02 22:03:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 02 22:03:41 2015 +0000"
      },
      "message": "Merge \"Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support\""
    },
    {
      "commit": "3cbc6c627fe57c9a9783c52d148078f8d52f7b96",
      "tree": "ea5b0dc49aaa16f25e2262cd5560070ae65923b9",
      "parents": [
        "21cdd22f035efd50902b7780fc6ea53bd1684357"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 31 19:57:46 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Feb 02 13:17:17 2015 -0800"
      },
      "message": "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support\n\nMany libc functions have an option to not follow symbolic\nlinks. This is useful to avoid security sensitive code\nfrom inadvertantly following attacker supplied symlinks\nand taking inappropriate action on files it shouldn\u0027t.\nFor example, open() has O_NOFOLLOW, chown() has\nlchown(), stat() has lstat(), etc.\n\nThere is no such equivalent function for chmod(), such as lchmod().\nTo address this, POSIX introduced fchmodat(AT_SYMLINK_NOFOLLOW),\nwhich is intended to provide a way to perform a chmod operation\nwhich doesn\u0027t follow symlinks.\n\nCurrently, the Linux kernel doesn\u0027t implement AT_SYMLINK_NOFOLLOW.\nIn GLIBC, attempting to use the AT_SYMLINK_NOFOLLOW flag causes\nfchmodat to return ENOTSUP. Details are in \"man fchmodat\".\n\nBionic currently differs from GLIBC in that AT_SYMLINK_NOFOLLOW\nis silently ignored and treated as if the flag wasn\u0027t present.\n\nThis patch provides a userspace implementation of\nAT_SYMLINK_NOFOLLOW for bionic. Using open(O_PATH | O_NOFOLLOW),\nwe can provide a way to atomically change the permissions on\nfiles without worrying about race conditions.\n\nAs part of this change, we add support for fchmod on O_PATH\nfile descriptors, because it\u0027s relatively straight forward\nand could be useful in the future.\n\nThe basic idea behind this implementation comes from\nhttps://sourceware.org/bugzilla/show_bug.cgi?id\u003d14578 , specifically\ncomment #10.\n\nChange-Id: I1eba0cdb2c509d9193ceecf28f13118188a3cfa7\n"
    },
    {
      "commit": "4674e3899afcc6b3ac8a48cdb716695d5489d26b",
      "tree": "b4dadb078646cbb46dd62a14c623b7e0d06619e3",
      "parents": [
        "ffbda83b302e3c3970135013d2bb92402e040fe5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 09:15:19 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 02 09:15:19 2015 -0800"
      },
      "message": "Fortify poll and ppoll.\n\nAnd remove the test for FD_ZERO fortification, which never made much\nsense anyway.\n\nChange-Id: Id1009c5298d461fa4722189e8ecaf22f0c529536\n"
    },
    {
      "commit": "76f8916b904db14facf811ae44e1265261349702",
      "tree": "cf49d5313eb0e5a05463dbe519de48d4fddf84a9",
      "parents": [
        "419ed122aa21cf04334f21baab135ac4f9f49840"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 13:34:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 14:28:41 2015 -0800"
      },
      "message": "Clean up \u003cstdlib.h\u003e slightly.\n\nInterestingly, this mostly involves cleaning up our implementation of\nvarious \u003cstring.h\u003e functions.\n\nChange-Id: Ifaef49b5cb997134f7bc0cc31bdac844bdb9e089\n"
    },
    {
      "commit": "247cfe03825f46e38371954d04fcb90a8b36c824",
      "tree": "cb138538b52c09d05ba131460ee18fb84a702efa",
      "parents": [
        "6eb5dc1d9c38ff8f717b70a2f66417c599aeb08c",
        "b8a8cf0d1a333401eae9c9e1d70b9c1b154ff9c9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 20:38:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 26 20:38:46 2015 +0000"
      },
      "message": "Merge \"Add \u003cerror.h\u003e.\""
    },
    {
      "commit": "b8a8cf0d1a333401eae9c9e1d70b9c1b154ff9c9",
      "tree": "1b6e04d81d4ab74f9928a79deeef386e689ae4a8",
      "parents": [
        "66eeec8e160feddc2b35c4ff9d20de92f37331dd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 18:36:29 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 26 11:57:11 2015 -0800"
      },
      "message": "Add \u003cerror.h\u003e.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d79170\nChange-Id: Id91765fac45124545e2674a5b2c814707c1a448b\n"
    },
    {
      "commit": "6e9e6ad3bf831ed0b25ce2e6ce586a790044f8da",
      "tree": "221bb53388ba9fd0ddd5036dce1f41fbc2db0361",
      "parents": [
        "31005ca4c8562f3e6dfbed079eeaff8361ff8cdc"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sun Jan 25 14:27:51 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sun Jan 25 14:27:51 2015 -0800"
      },
      "message": "Fix coverage build after adding clang coverage.\n\nStatic libraries are painful. Details are in the comment. I\u0027ll try to\nget prebuilts in to the tree so I can fix this on Monday. Until then,\nthis isn\u0027t actually a regression because we\u0027ve not had coverage\navailable for this library until now anyway.\n\nBug: 17574078\nChange-Id: I7505c8a94007203e15a6cf192caa06004849d7d9\n"
    },
    {
      "commit": "9c3fd59b00d6f477b1a7f8611cb4f829d64aa7ea",
      "tree": "45d811b69e56a9ddd197d8a752629de47ac71cb2",
      "parents": [
        "d1668a71df761eb1644496f3e2c77c16fd54bb06"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jan 21 17:50:29 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jan 21 18:12:15 2015 -0800"
      },
      "message": "Add a basic NDK compatibility library.\n\nWe know we can safely statically link `libm`, since it doesn\u0027t have\nany dependencies on the OS or the layout of a data type that has\nchanged between releases (like `pthread_t`).\n\nWe can safely statically link `libc_syscalls` because the user can\ncheck for and handle `ENOSYS`.\n\nUpdate `ndk_missing_symbols.py` to account for symbols that are in the\ncompatibility library.\n\nImprove `symbols.py` to be able to pull symbols from a static library.\n\nChange-Id: Ifb0ede1e8b4a8f0f33865d9fed72fb8b4d443fbc\n"
    },
    {
      "commit": "8b5df3920f2843c9cdf04160517c1e8b77c992f5",
      "tree": "a0a678ee8f107e5c25f937f444a970a0539d2af7",
      "parents": [
        "2a8c929aaf8d34d2b6e89ed9c8b6da163316143e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 21 16:19:07 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 21 17:09:58 2015 -0800"
      },
      "message": "Turn on -Wold-style-cast and fix the errors.\n\nA couple of dodgy cases where we cast away const, but otherwise pretty boring.\n\nChange-Id: Ibc39ebd525377792b5911464be842121c20f03b9\n"
    },
    {
      "commit": "8885dcc779bceae5016d5ad96caa73465a7bab90",
      "tree": "9a5851adf9ffa5755ff2e99da04e6320fc581f99",
      "parents": [
        "927d8be76d956fcda630e1088e9b89eb31be5146"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 20 16:18:32 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 20 16:18:32 2015 -0800"
      },
      "message": "Add TEMP_FAILURE_RETRY to stdio\u0027s low-level read/write functions.\n\nThis is correctness rather than performance, but found while investigating\nperformance.\n\nBug: 18593728\nChange-Id: Idbdfed89d1931fcfae65db29d662108d4bbd9b65\n"
    },
    {
      "commit": "3f61f89b559551164b13441ff4ff02ed0718530a",
      "tree": "3130e20b674ca997f6e351b36d1ab90a9ee4a9d6",
      "parents": [
        "3f1c604c9df459f5baecfdc04cbe8ecda07b70eb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 10 11:10:00 2014 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 10 11:10:00 2014 -0800"
      },
      "message": "Fix missing symbol for debug malloc.\n\nBug: 18686270\nChange-Id: I800a6f0940060218413df652d74aca91f6a339f8\n"
    },
    {
      "commit": "94926f8cfa0adf37c4e19256ade7261a97f72e51",
      "tree": "8c990320ebf445406d3d50be443db10cd58eee42",
      "parents": [
        "b033761cbf0e79ade9a8c956c2e63b42ee838183",
        "634816055f51c536d24dea30dfe930b7fe2fa603"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "message": "Merge \"support _POSIX_REALTIME_SIGNALS\""
    },
    {
      "commit": "634816055f51c536d24dea30dfe930b7fe2fa603",
      "tree": "5d3739b116df16774776010538254c10007c0a76",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 01 17:41:04 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 08 21:52:43 2014 -0800"
      },
      "message": "support _POSIX_REALTIME_SIGNALS\n\nBug: 18489947\nChange-Id: I2e834d68bc10ca5fc7ebde047b517a3074179475\n"
    },
    {
      "commit": "5afae64a1bac56638c6348f0c8f5e9d61b654029",
      "tree": "596b834f553f804c84a13615f30ff6ad67201303",
      "parents": [
        "230005c4bd3910ef974694f88d04e6f6a5a540b4"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Nov 25 20:17:27 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Dec 04 11:01:28 2014 -0800"
      },
      "message": "implement posix_madvise\n\nBug: 18472477\nChange-Id: I8183de6c281acf69ed5f7f88351b056b9827b162\n"
    },
    {
      "commit": "20841a137beac5caa824e3586c7bd91d879ff92e",
      "tree": "3ccc88081ddcdbe9a4448c462eb16e971007f86e",
      "parents": [
        "5cd127d3aa4a2f225be202af01581838fdd3c721"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 01 16:13:30 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 02 14:22:02 2014 -0800"
      },
      "message": "Avoid pathological behavior in OpenBSD\u0027s fread.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d81155\nBug: 18556607\nChange-Id: Idc60976b79610e2202cc42dc393dcb4ca6c42e05\n"
    },
    {
      "commit": "d5c652756bb1a52959cd5c62447b62462f90f983",
      "tree": "8804bb959d8d66a5a8557683416c254f2fc98530",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 14:04:26 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Nov 26 17:14:50 2014 -0800"
      },
      "message": "support _POSIX_CPUTIME\n\nBug: 18490039\nChange-Id: I01fa83b48e1b908de1f227b6e4f98e280bcd50ee\n"
    },
    {
      "commit": "2818279ace22fb854b00e668c224492c4dd072a4",
      "tree": "140347ce51972bf59c53cd9798ce97567d776dab",
      "parents": [
        "770198d3f707d5eccd6796f311015903aec31b26"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 21 19:25:27 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 21 19:27:28 2014 -0800"
      },
      "message": "Sync with upstream OpenBSD fts.c.\n\nChange-Id: Ia7e26b603f6461095b5a8d7e8a6cdf4f8279fa84\n"
    },
    {
      "commit": "bfbf7a4300ab5cd6334212f701e47ea449456048",
      "tree": "909f0faaaa23a394861672c95d271e8311df21d5",
      "parents": [
        "eef1eb64bb5be68bfb00f8e71d3118a2cfec99e7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 17 10:06:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 17 10:06:20 2014 -0800"
      },
      "message": "Remove remaining bionic support for TARGET_CPU_SMP being false.\n\nChange-Id: I02a0a1c0ae55ccb5c45d17fb99a09c374d71def4\n"
    },
    {
      "commit": "9d93986481b67a8135e57fc6400ca8c59f7375f6",
      "tree": "f73d192d6191ef495a63be7fc27130190ba9e79d",
      "parents": [
        "661423a453b2692d592df56307a876dfc35c50f2"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 15:51:58 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Nov 14 16:22:48 2014 -0800"
      },
      "message": "Add functions in sysinfo.h.\n\nBug: 17703902\n\nChange-Id: I699d12d76a8fc483c919be730c2ac63641b71a1d\n"
    },
    {
      "commit": "2f954bab2d524f6afed8a443c2a7ee32876db0fa",
      "tree": "7437b6e2e570e89df2b893f30d111e6b7acb3a1d",
      "parents": [
        "d94e7f0f1d95e0da73fca8d591fdb56b69d82653"
      ],
      "author": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Thu Oct 30 16:34:55 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 12 12:07:33 2014 -0800"
      },
      "message": "gethostname.c: change to report ENAMETOOLONG error when buflen is less\n\nchange to behaviour the same as glibc for the check about buflen\n\nChange-Id: I98265a8fe441df6fed2527686f89b087364ca53d\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "b20c24456e43df430ec5626a68e5dc0dc6929344",
      "tree": "c9b85b4d913f8f2738bdc8772b9b9a21d6ab51dc",
      "parents": [
        "08a70184b42ef2963794a56233b0253e0b367253"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 15:04:08 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 15:52:22 2014 -0800"
      },
      "message": "Implement all the POSIX _l functions.\n\nStrictly speaking, this only implements the _l variants of the functions\nwe actually have. We\u0027re still missing nl_langinfo_l, for example, but we\ndon\u0027t have nl_langinfo either.\n\nChange-Id: Ie711c7b04e7b9100932a13f5a5d5b28847eb4c12\n"
    },
    {
      "commit": "274afe8f0eab4139c94d5f8b1ee3d267f449ef42",
      "tree": "9424b40a8247c264e489358ce007b3ff4176d868",
      "parents": [
        "39ba30354a3890dd653ab55819d38eed3855edaa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 12:40:08 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 06 14:14:37 2014 -0800"
      },
      "message": "Add POSIX lcong48.\n\nChange-Id: I821046816661d77275cb02c8c99d526bb41afb9c\n"
    },
    {
      "commit": "dc6599e20f6a2a82c35533fba36d16fd43c53273",
      "tree": "cee1bf160dc3d5d0b1712126a6187325e24efd35",
      "parents": [
        "695781b6f0419f82939176a6ec1a240300d9f036"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Nov 04 12:09:35 2014 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Nov 04 12:09:35 2014 -0800"
      },
      "message": "Fix warning of missing field initializer.\n\nBUG: 18241135\nChange-Id: I91304eb608bc3336ce5fcd5744fbe080d64f1cc2\n"
    },
    {
      "commit": "6a03abcfd23f31d1df06eb0059830e22621282bb",
      "tree": "7a6a1e6ee2ece560d31580c662060bda3d2d004b",
      "parents": [
        "38ff8822763a30d4c9033a38ec8b71fcd17aba87"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 03 12:32:17 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 03 12:32:17 2014 -0800"
      },
      "message": "Ensure we initialize stdin/stdout/stderr\u0027s recursive mutexes.\n\nBug: 18208568\nChange-Id: I9da16ce0f9375bc363d1d02be706d73fd3b1e150\n"
    },
    {
      "commit": "ad136624b2bed5b6971cd7ba372969b1b352c223",
      "tree": "c584b5d30181173ea9ecbcc440034afb5d86add6",
      "parents": [
        "8f41d3d3bc7cf2375e5dd9202da619fd67a5928f",
        "5ba672ebcb0bbb77f22bbc6c98ec03867ac1711d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 21 18:28:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 18:28:19 2014 +0000"
      },
      "message": "Merge \"Never use ASAN.\""
    },
    {
      "commit": "5ba672ebcb0bbb77f22bbc6c98ec03867ac1711d",
      "tree": "3b7a40ebe95c90eb96c914d43dba854df2f978e8",
      "parents": [
        "dec4de456c046881fb1e8c7c7d0c27a11ef09eb7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Oct 17 10:33:25 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Oct 21 11:22:26 2014 -0700"
      },
      "message": "Never use ASAN.\n\nUnless we completely redo how we build bionic (so that the object\nfiles for libc.so get built separately from libc.a), we can\u0027t enable\nASAN here, as libc.a gets linked into static executables.\n\nChange-Id: I2ce4f51248bd51c4213a555ff481b6faabbf53f8\n"
    }
  ],
  "next": "a371750681a84c8f0445fa041e817582e12c125f"
}
