)]}'
{
  "log": [
    {
      "commit": "5e2285d3ccdbb64a49ad2e5e521f50c897a3954d",
      "tree": "cd56c251f1710652fad3b84121248a12071b42e0",
      "parents": [
        "c9a840ac76c7cdbe6028ac91cdb8eb6698f0a854"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 22 12:19:05 2017 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 22 16:05:03 2017 -0800"
      },
      "message": "Allocate thread local buffers in __init_tls.\n\nThread local buffers were using pthread_setspecific for storage with\nlazy initialization. pthread_setspecific shares TLS slots between the\nlinker and libc.so, so thread local buffers being initialized in a\ndifferent order between libc.so and the linker meant that bad things\nwould happen (manifesting as snprintf not working because the\nlocale was mangled)\n\nBug: http://b/20464031\nTest: /data/nativetest64/bionic-unit-tests/bionic-unit-tests\n      everything passes\nTest: /data/nativetest/bionic-unit-tests/bionic-unit-tests\n      thread_local tests are failing both before and after (KUSER_HELPERS?)\nTest: /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static\n      no additional failures\nChange-Id: I9f445a77c6e86979f3fa49c4a5feecf6ec2b0c3f\n"
    },
    {
      "commit": "3679ade5333bf0727c374431cd4e4fa81ca241af",
      "tree": "ba9477163e0218483eefbd935a2bc68eac25d908",
      "parents": [
        "e2faf07d659b1c824002e50b9cdfa9caae62a31b"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Mar 04 10:07:35 2016 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Mar 25 14:16:58 2016 -0700"
      },
      "message": "Add hasmntopt(3)\n\nbionic has the Linux-specific mntent.h but is missing hasmntopt().\n\nChange-Id: I0ab7b83626c969704add4e64b37a6fc715d4a723\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "6170693e28dd72a1517c267f3f62b3f37477b8bb",
      "tree": "f7cf73e397d83074a6da0b6cce4459b51af334cf",
      "parents": [
        "611fd2cc91f79be6759f6e630e1e81998326dfe8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 31 10:56:58 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 31 10:56:58 2015 -0700"
      },
      "message": "Make ThreadLocalBuffer a class rather than a macro.\n\nBug: 19995392\nChange-Id: I497c512648fbe66257da3fb3bcd5c9911f983705\n"
    },
    {
      "commit": "75ef63d6cf83787233d1c45489c4ec03b0a67d16",
      "tree": "af1358c723e21ebfbd48a4dfd2abc3f262cb309d",
      "parents": [
        "f6640348876cd1d4d43cc95cf63306fedb83d8b9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Nov 21 00:18:07 2014 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Nov 21 10:26:09 2014 -0800"
      },
      "message": "Move some pthread functions to signal.h.\n\nPOSIX specifies that pthread_kill(3) and pthread_sigmask(3) are\nsupposed to live in signal.h rather than pthread.h.\n\nSince signal.h now needs pthread_t and pthread_attr_t, I\u0027ve moved\nthose defintions into include/machine/pthread_types.h to keep the\nnamespace clean. I also sorted some includes. The combination of these\ntwo things seems to have exploded into a cascade of missing includes,\nso this patch also cleans up all those.\n\nChange-Id: Icfa92a39432fe83f542a797e5a113289d7e4ad0c\n"
    },
    {
      "commit": "e3c4acf1e3ef36c2ab1f48b1261dec9a1d8330a4",
      "tree": "68632a0f7a6f832a2c4778a60739d5320673ce33",
      "parents": [
        "288fa03a5aa5ee69c321e7266cdc656d11d8c022"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 13 14:27:25 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 13 15:51:36 2014 -0800"
      },
      "message": "Fix our \u003cmntent.h\u003e implementation.\n\nUsed by toybox.\n\nChange-Id: I36a5053423e5cc54ae02a68f4fe110d75134accd\n"
    },
    {
      "commit": "eb664e24c074b88539b743668109d8b4eaa925bd",
      "tree": "20bd4bb4f2a733dcec384fa7c959c77661f156ba",
      "parents": [
        "dbcba8f5f9a59fac3d22dfc17a14d3d5cfb4f4b0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 10:44:07 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 10:44:07 2014 -0700"
      },
      "message": "Add getmntent_r to our collection of \u003cmntent.h\u003e compatibility stubs.\n\nThis helps build \u0027external/flo\u0027 out of the box.\n\nBug: 14841211\nChange-Id: I30dde77239cceaf1f5743163744eb3604d27a266\n"
    }
  ]
}
