)]}'
{
  "log": [
    {
      "commit": "d5ed63a6a8290de88802172ce178656fbafe70c6",
      "tree": "97bb7a00c975041f6e297fe7ff53a8b116f405bf",
      "parents": [
        "f97d8713a265f44279819ba6b245dd81aada34da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:27:40 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:30:00 2014 -0700"
      },
      "message": "Hide most of the private futex functions.\n\nAlso hide part of the system properties compatibility code, since\nwe needed to touch that to keep it building.\n\nI\u0027ll remove __futex_syscall4 and futex in a later patch.\n\nBug: 11156955\nChange-Id: Ibbf42414c5bb07fb9f1c4a169922844778e4eeae\n"
    },
    {
      "commit": "1728b2396591853345507a063ed6075dfd251706",
      "tree": "7083cd234073afa5179b94b3d978550c890af90c",
      "parents": [
        "bac795586bbc5dcbe886d8d781710f60c4c19d9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 14 10:02:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 14 10:02:03 2014 -0700"
      },
      "message": "Switch to g_ for globals.\n\nThat\u0027s what the Google style guide recommends, and we\u0027re starting\nto get a mix.\n\nChange-Id: Ib0c53a890bb5deed5c679e887541a715faea91fc\n"
    },
    {
      "commit": "0e714a5b41451e84c5ded93a42c9a4b0a9440691",
      "tree": "86e6519cc723fb66a9432193da16b380255c22f7",
      "parents": [
        "8e541b12237f597c186820b9e18b059b620bef54"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 03 16:42:47 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 10:27:58 2014 -0800"
      },
      "message": "Implement POSIX pthread_mutex_timedlock.\n\nThis replaces the non-standard pthread_mutex_lock_timeout_np, which we have\nto keep around on LP32 for binary compatibility.\n\nChange-Id: I098dc7cd38369f0c1bec1fac35687fbd27392e00\n"
    },
    {
      "commit": "cef3faec0ea40fdfe58e425fd0be64f00de6a26d",
      "tree": "1f33cbb2de225d0d76d3eb53ef8857b9ecc79bbe",
      "parents": [
        "1b2d214b62ad7bf46f37c79442a69d930aa29027"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 16:52:24 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 17:22:22 2013 -0800"
      },
      "message": "Clean up pthread_internal_t.\n\nBug: 11755300\nChange-Id: Ib509e8c5ec6b23513aa78b5ac5141d7c34ce2dc8\n"
    },
    {
      "commit": "36d6188f8cd8b948fb797f11d9620d63d0c2215a",
      "tree": "86b3162cac031151b2ae44b4d554fce4f9456147",
      "parents": [
        "318e86ed887e04e593f3db9b84b402d5501ced9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 13:31:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 14:08:54 2013 -0800"
      },
      "message": "Clean up forking and cloning.\n\nThe kernel now maintains the pthread_internal_t::tid field for us,\nand __clone was only used in one place so let\u0027s inline it so we don\u0027t\nhave to leave such a dangerous function lying around. Also rename\nfiles to match their content and remove some useless #includes.\n\nChange-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9\n"
    },
    {
      "commit": "c3f114037dbf028896310609fd28cf2b3da99c4d",
      "tree": "e463aeb3604177cd93cea8a58936a8dce4b34ee5",
      "parents": [
        "d0d0b52da375bfa85947a4257198791f615f18a8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 30 14:40:09 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 12:31:16 2013 -0700"
      },
      "message": "\u003cpthread.h\u003e fixes and pthread cleanup.\n\n\u003cpthread.h\u003e was missing nonnull attributes, noreturn on pthread_exit,\nand had incorrect cv qualifiers for several standard functions.\n\nI\u0027ve also marked the non-standard stuff (where I count glibc rather\nthan POSIX as \"standard\") so we can revisit this cruft for LP64 and\ntry to ensure we\u0027re compatible with glibc.\n\nI\u0027ve also broken out the pthread_cond* functions into a new file.\n\nI\u0027ve made the remaining pthread files (plus ptrace) part of the bionic code\nand fixed all the warnings.\n\nI\u0027ve added a few more smoke tests for chunks of untested pthread functionality.\n\nWe no longer need the libc_static_common_src_files hack for any of the\npthread implementation because we long since stripped out the rest of\nthe armv5 support, and this hack was just to ensure that __get_tls in libc.a\nwent via the kernel if necessary.\n\nThis patch also finishes the job of breaking up the pthread.c monolith, and\nadds a handful of new tests.\n\nChange-Id: Idc0ae7f5d8aa65989598acd4c01a874fe21582c7\n"
    },
    {
      "commit": "eb847bc8666842a3cfc9c06e8458ad1abebebaf0",
      "tree": "15e070fb706ba7599d5f402a8f934a7399541a6a",
      "parents": [
        "0c17099a71cb5d1b36b7aab66fd7341b3fc9106d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 15:50:50 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:00:17 2013 -0700"
      },
      "message": "Fix x86_64 build, clean up intermediate libraries.\n\nThe x86_64 build was failing because clone.S had a call to __thread_entry which\nwas being added to a different intermediate .a on the way to making libc.so,\nand the linker couldn\u0027t guarantee statically that such a relocation would be\npossible.\n\n  ld: error: out/target/product/generic_x86_64/obj/STATIC_LIBRARIES/libc_common_intermediates/libc_common.a(clone.o): requires dynamic R_X86_64_PC32 reloc against \u0027__thread_entry\u0027 which may overflow at runtime; recompile with -fPIC\n\nThis patch addresses that by ensuring that the caller and callee end up in the\nsame intermediate .a. While I\u0027m here, I\u0027ve tried to clean up some of the mess\nthat led to this situation too. In particular, this removes libc/private/ from\nthe default include path (except for the DNS code), and splits out the DNS\ncode into its own library (since it\u0027s a weird special case of upstream NetBSD\ncode that\u0027s diverged so heavily it\u0027s unlikely ever to get back in sync).\n\nThere\u0027s more cleanup of the DNS situation possible, but this is definitely a\nstep in the right direction, and it\u0027s more than enough to get x86_64 building\ncleanly.\n\nChange-Id: I00425a7245b7a2573df16cc38798187d0729e7c4\n"
    },
    {
      "commit": "2a0b873065edb304fa2d1c54f8de663ea638b8ab",
      "tree": "4753b74b87e713379965bb051482036e6726afb1",
      "parents": [
        "777a4ee6771e6fe3362ef4f24244a44fcd0aabe4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 18:50:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 13:39:13 2013 -0700"
      },
      "message": "Fix __errno for LP64 and clean up __get_tls.\n\nIf __get_tls has the right type, a lot of confusing casting can disappear.\n\nIt was probably a mistake that __get_tls was exposed as a function for mips\nand x86 (but not arm), so let\u0027s (a) ensure that the __get_tls function\nalways matches the macro, (b) that we have the function for arm too, and\n(c) that we don\u0027t have the function for any 64-bit architecture.\n\nChange-Id: Ie9cb989b66e2006524ad7733eb6e1a65055463be\n"
    },
    {
      "commit": "9d23e04c43dbb8480bea8be28b8a2f37423bec49",
      "tree": "e403288cf01ce40d6f330da09a317c7ad6dc2cb2",
      "parents": [
        "081318e3550b1a8d8384d98d7c94527681691120"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 15 19:21:51 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 19 12:21:41 2013 -0800"
      },
      "message": "Fix pthreads functions that should return ESRCH.\n\nimgtec pointed out that pthread_kill(3) was broken, but most of the\nother functions that ought to return ESRCH for invalid/exited threads\nwere equally broken.\n\nChange-Id: I96347f6195549aee0c72dc39063e6c5d06d2e01f\n"
    }
  ]
}
