)]}'
{
  "log": [
    {
      "commit": "c20de902875dcaebde0ccd0b7a8351598f254d4c",
      "tree": "cb4a8a75dd787d93bca11fc0a2da944a7fc2e76f",
      "parents": [
        "849e162d3bedc5ca61bdf15486268b253b9f4e93"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 20 15:21:32 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 21 09:59:34 2014 +0000"
      },
      "message": "Remove ALIGNBYTES and ALIGN from \u003csys/param.h\u003e\n\nThere are only three users of bionic definition of ALIGN and keeping it\nin sys/param.h polutes the namespace.\n\nI inline the definition in the the three places that\u0027s used.\n\nBug: 13400663\nChange-Id: I565008e8426c38ffb07422f42cd8e547d53044e9\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": "61e699a133a4807fe878a6cb0d7190d7c96e21f8",
      "tree": "12dd46e7f8e5f7172a3fe0fd9075fa929cbb1001",
      "parents": [
        "5cde15eb17f4ddc0949c0cbd38a46e6c0bad7019"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 12 14:05:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 12 14:14:53 2013 -0700"
      },
      "message": "Clean up abort.\n\n* A dlmalloc usage error shouldn\u0027t call abort(3) because we want to\n  cause a SIGSEGV by writing the address dlmalloc didn\u0027t like to an\n  address the kernel won\u0027t like, so that debuggerd will dump the\n  memory around the address that upset dlmalloc.\n\n* Switch to the simpler FreeBSD/NetBSD style of registering stdio\n  cleanup. Hopefully this will let us simplify more of the stdio\n  implementation.\n\n* Clear the stdio cleanup handler before we abort because of a dlmalloc\n  corruption error. This fixes the reported bug, where we\u0027d hang inside\n  dlmalloc because the stdio cleanup reentered dlmalloc.\n\nBug: 9301265\nChange-Id: Ief31b389455d6876e5a68f0f5429567d37277dbc\n"
    },
    {
      "commit": "9831ad3ce6bd5b22da16a275ed67e7236eae3d1f",
      "tree": "2f5152add91760c209361fb918ad83a4f24b3502",
      "parents": [
        "4b469eae40368913b2841b390dada6c58296c602"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Aug 29 21:43:46 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 15 13:16:42 2011 +0100"
      },
      "message": "libc: speed-up flockfile()/funlockfile()\n\nFor Honeycomb, we added proper file thread-safety for\nall FILE* operations. However, we did implement that by\nusing an out-of-band hash table to map FILE* pointers\nto phtread_mutex_t mutexes, because we couldn\u0027t change\nthe size of \u0027struct _sFILE\u0027 without breaking the ABI.\n\nIt turns out that our BSD-derived code already has\nsome support code to extend FILE* objects, so use it\ninstead. See libc/stdio/fileext.h\n\nThis patch gets rid of the hash table, and put the\nmutex directly into the sFILE extension.\n\nChange-Id: If1c3fe0a0a89da49c568e9a7560b7827737ff4d0\n"
    },
    {
      "commit": "f582340a6a48588aa50da17e1620e8f91b146941",
      "tree": "d30c0ffb648b7a43ff469f89f05850f5008482ec",
      "parents": [
        "72f9a5c374bf559e9c69a62c1d95304f913ef6b2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Feb 12 07:13:44 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 14 09:32:56 2011 -0800"
      },
      "message": "Fix the handle locking in stdio\n\nFix the handle locking in stdio to use flockfile/funlockfile\ninternally when and where required.  Macros in \u003cstdio.h\u003e are updated\nto automatically call the underlying functions when the process is\nthreaded to obtain the necessary locking.  A private mutex is added\nto protect __sglue, the internal list of FILE handles, and another\nto protect the one-time initialization.  Some routines in libc that\nuse getc() change to use getc_unlocked() as they\u0027re either protected\nby their own lock or aren\u0027t thread-safe routines anyway.\n\nBased on OpenBSD change by guenther@openbsd.org\nhttp://www.mail-archive.com/source-changes@cvs.openbsd.org/msg01015.html\n\nBug: 3446659\nChange-Id: Ie82116e358c541718d6709ec45ca6796be5a007b\n"
    },
    {
      "commit": "b4867734b06a18494976934c6f33ff2549595e3f",
      "tree": "e0872aed3956ed9a5f8e66457acf71b0c066c96d",
      "parents": [
        "f67e5211e045af1b12f646448a5a35f96ba5e8f1"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 00:50:45 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 01:10:31 2010 +0800"
      },
      "message": "stdio: make internal symbols static/hidden\n\nAlthough header libc/stdio/local.h declares the macros and private\nvariables of stdio, there are several internal symbols exposed\nunexpectedly.\n\nChange-Id: Ie7a07f85b70322fb9cd05b3c8e1bcc416061eb4b\n"
    },
    {
      "commit": "a910abcd194830d2d113b3e183eb7df4d36cd92e",
      "tree": "291303f658796db61bcbf9b8107b3a88a4f83c79",
      "parents": [
        "1297428e89ead45849068989d334d8b7eae2f602"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:46:25 2010 -0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 17 09:34:13 2010 -0700"
      },
      "message": "improve readability of stdio: fix indentation and remove trailing spaces\n\nChange-Id: Ic51e58a7c75d20bf770dc0ebd7f97a338fbe0036\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
