)]}'
{
  "log": [
    {
      "commit": "32c226d6ed6e1bf62e2bd46645905210bbf20989",
      "tree": "c0253596b4bdea4dbf14ef64b99488219e2c16a9",
      "parents": [
        "058d6d88b959efc00d7ba9777e447bc55c409569",
        "f39a3fe67d7f1faa21a39ea8e1f57a6596c8cadb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 10 13:45:49 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 13:45:49 2012 -0800"
      },
      "message": "Merge \"Allow C++ to call fdprintf\""
    },
    {
      "commit": "058d6d88b959efc00d7ba9777e447bc55c409569",
      "tree": "267905681e7975a066a9ba4682f583a2747e001b",
      "parents": [
        "1625c7a837d73b6729f97edb32c497d289c0220c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 16:14:28 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 16:14:28 2012 -0800"
      },
      "message": "Update bionic to know users and isolated uids for uid string representation.\n\nChange-Id: I6681bacd69299a7f9837ef8025a80c5562081bad\n"
    },
    {
      "commit": "f39a3fe67d7f1faa21a39ea8e1f57a6596c8cadb",
      "tree": "4b348d687db7a7a27af9840571ccbb8ff8dc847a",
      "parents": [
        "1625c7a837d73b6729f97edb32c497d289c0220c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 10:15:45 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 10:15:45 2012 -0800"
      },
      "message": "Allow C++ to call fdprintf\n\nChange-Id: I1adb7b165ab9f62eaee4e7a9108e8b461350b347\n"
    },
    {
      "commit": "1625c7a837d73b6729f97edb32c497d289c0220c",
      "tree": "cf18c3d2a948a069a2405bab819b491bdaeaa29f",
      "parents": [
        "9db064a0d3985bc1e4bb9f88ec81c7c2715c410c"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 11:53:55 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Feb 07 11:53:55 2012 -0800"
      },
      "message": "Use the new NativeDaemonConnector style.\n\nPrepend a 0 to match the new sequence-number style, though this module\ndoesn\u0027t really need/use it.\n\nbug:5864209\nChange-Id: Iacbcddaced6fe8bb01d186596a916e4fb4805fef\n"
    },
    {
      "commit": "25b7a16a6ee73248192909862f03f95d2363ad14",
      "tree": "97d420779e6b79917ba5ac65b9bc182a8ceaa68d",
      "parents": [
        "b118b9c5cd6a99fd3368a01ee9de8849d869afc7",
        "c4cb87f367fc33b36c9988b4f42fc07876abccd1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "message": "Merge c4cb87f3\n\nChange-Id: I4cc14eba43fde75a7702fdc7ad07d3d949e9c092\n"
    },
    {
      "commit": "c4cb87f367fc33b36c9988b4f42fc07876abccd1",
      "tree": "04772e71faec8bb3b1a4f35ac8c2e0d57e134ff3",
      "parents": [
        "cc12c74f7f65c571778989cd902eb5b9fa74fb11",
        "5b892aa7e581c0b247262a95d70db20991121afe"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 07:12:13 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 07:12:13 2012 -0800"
      },
      "message": "Merge 5b892aa7\n\nChange-Id: Ic82bc2866bdb0c93822c94281301fa127fd4bb0c\n"
    },
    {
      "commit": "70b1668a76d3b719ae690903ea790fda964a5458",
      "tree": "674232e6152fa67c0db8b07b0083bb3ac6c9bd8c",
      "parents": [
        "e80044455961005ac95e405c8d553f2418d8e50c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 30 17:17:58 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jan 31 20:28:23 2012 +0100"
      },
      "message": "remove obsolete SuperH support\n\nWe don\u0027t have a toolchain anymore, we don\u0027t have working original\nkernel headers, and nobody is maintaining this so there is really\nno point in keeping this here. Details of the patch:\n\n- removed code paths from Android.mk files related to the SuperH\n  architecture (\"sh\")\n\n- removed libc/arch-sh, linker/arch-sh, libc/kernel/arch-sh\n\n- simplified libc/SYSCALLS.TXT\n\n- simplified the scripts in libc/tools/ and libc/kernel/tools\n\nChange-Id: I26b0e1422bdc347489e4573e2fbec0e402f75560\n\nSigned-off-by: David \u0027Digit\u0027 Turner \u003cdigit@android.com\u003e\n"
    },
    {
      "commit": "b118b9c5cd6a99fd3368a01ee9de8849d869afc7",
      "tree": "ffa492625a3357de8a714e31edee419f6340545b",
      "parents": [
        "a7ad3399104048b9d730cc8044d9fd96badbe229",
        "e1414aa96bb62057b1a25c6a9ea1797dd38dce59"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 31 11:02:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 11:02:33 2012 -0800"
      },
      "message": "Merge \"libc: remove global lock from recursive mutex implementation.\""
    },
    {
      "commit": "a7ad3399104048b9d730cc8044d9fd96badbe229",
      "tree": "4664c3eac38242793111c893b0ad7688d631183f",
      "parents": [
        "f5d1693e3ca8cfd089e6259f320044833eae2991",
        "3452e301ecfce42bd3da5ce1b322d89f8a132ee6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jan 31 10:05:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 10:05:35 2012 -0800"
      },
      "message": "Merge \"Add new suspend-block input ioctls.\""
    },
    {
      "commit": "e1414aa96bb62057b1a25c6a9ea1797dd38dce59",
      "tree": "86dd372e2ea90adceefa57cf324fc29c5ae64faf",
      "parents": [
        "b70659d8ea4a0f67694125a340186da96afa4210"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 15:26:54 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 30 10:13:41 2012 +0100"
      },
      "message": "libc: remove global lock from recursive mutex implementation.\n\nThis optimization improves the performance of recursive locks\ndrastically. When running the thread_stress program on a Xoom,\nthe total time to perform all operations goes from 1500 ms to\n500 ms on average after this change is pushed to the device.\n\nChange-Id: I5d9407a9191bdefdaccff7e7edefc096ebba9a9d\n"
    },
    {
      "commit": "632c07c09297324565fd7adeda7322f1fafb3a1a",
      "tree": "1d597901499ef4ee2c8f049ac31da9427e999000",
      "parents": [
        "514126b2b59105427da8014a11fb1fc32e6a751c",
        "cc12c74f7f65c571778989cd902eb5b9fa74fb11"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 27 21:09:07 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 27 21:09:07 2012 -0800"
      },
      "message": "am cc12c74f: am e8004445: Merge \"Make sure __u64 is defined even for strict ansi or -std\u003dc99\"\n\n* commit \u0027cc12c74f7f65c571778989cd902eb5b9fa74fb11\u0027:\n  Make sure __u64 is defined even for strict ansi or -std\u003dc99\n"
    },
    {
      "commit": "cc12c74f7f65c571778989cd902eb5b9fa74fb11",
      "tree": "5be793e1708bb0eed1e08a632af3f34f0367433e",
      "parents": [
        "482d59a42f6c81e3a142ffbf23c67a903836f203",
        "e80044455961005ac95e405c8d553f2418d8e50c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 27 07:41:43 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 27 07:41:43 2012 -0800"
      },
      "message": "am e8004445: Merge \"Make sure __u64 is defined even for strict ansi or -std\u003dc99\"\n\n* commit \u0027e80044455961005ac95e405c8d553f2418d8e50c\u0027:\n  Make sure __u64 is defined even for strict ansi or -std\u003dc99\n"
    },
    {
      "commit": "514126b2b59105427da8014a11fb1fc32e6a751c",
      "tree": "e9ef4cd0bbd737c2f96ff9969e2b1d194bde2327",
      "parents": [
        "1fc51769ded79c74f15d59611c5ae4bd0547b32b",
        "52764f5546362d0ffab99afaffe8e8c7f21f8ef2"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 26 14:51:08 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 14:51:08 2012 -0800"
      },
      "message": "Merge \"Increase the size of the system-wide dns cache\""
    },
    {
      "commit": "52764f5546362d0ffab99afaffe8e8c7f21f8ef2",
      "tree": "6a3533eb82bac3bea5137b1e4276396c3f271764",
      "parents": [
        "b70659d8ea4a0f67694125a340186da96afa4210"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jan 25 15:16:03 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jan 25 15:36:58 2012 -0800"
      },
      "message": "Increase the size of the system-wide dns cache\n\n32 enteries perhaps was ok for per-process caching with ipv4 only\nbut adding ipv6 records makes it effectively 16 entries and making\nit system wide makes is pretty useless.  Increasing to 640 entries.\n\nbug:5841178\nChange-Id: I879f8bf4d3c4d8c1708bb46d46a67c1f64b1861f\n"
    },
    {
      "commit": "738b175a932e9eba424750926e753f2227b4d1bc",
      "tree": "b26540e615e53db53c8072488cba838825c957b8",
      "parents": [
        "e22dfc46b763e9b0c6300b7068609d2db60a9b2c"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Jan 25 23:25:09 2012 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Jan 25 23:41:19 2012 +0200"
      },
      "message": "Make sure __u64 is defined even for strict ansi or -std\u003dc99\n\nThe x86 asm headers define __u64 regardless of __STRICT_ANSI__.\nThe linux/videodev2.h header requires __u64 to be defined, thus\nthis fixes compiling with -std\u003dc99 when including the\nlinux/videodev2.h header.\n\nIn glibc, the asm/types.h header defines __u64 regardless of\n__STRICT_ANSI__.\n\nThis is the change for the generated arch-arm/asm/types.h\nheader, as produced by the update_all.py script (without all\nthe other unrelated changes that the script produces).\n\nFWIW, the same issue also is present in\narch-sh/asm/types.h, but there are no source headers for\narch-sh in external/kernel-headers (and regenerating the\nheaders simply removes that file).\n\nChange-Id: If05fcc9ed6ff5943602be121c7be140116e361fe\n"
    },
    {
      "commit": "8584a922dca76fc60e7d18f3b03f0b1ec3a42097",
      "tree": "129bf062b1af1bc173702e627161a207acdbb23e",
      "parents": [
        "b70659d8ea4a0f67694125a340186da96afa4210",
        "482d59a42f6c81e3a142ffbf23c67a903836f203"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jan 25 08:57:30 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 25 08:57:30 2012 -0800"
      },
      "message": "am 482d59a4: am e22dfc46: Merge \"execvp: bcopy() is deprecated. Use memcpy() instead\"\n\n* commit \u0027482d59a42f6c81e3a142ffbf23c67a903836f203\u0027:\n  execvp: bcopy() is deprecated. Use memcpy() instead\n"
    },
    {
      "commit": "482d59a42f6c81e3a142ffbf23c67a903836f203",
      "tree": "f0efb57b8acc3bdb0be14edad8e8b812fe4bd0b1",
      "parents": [
        "c83c1da54831ef1c9ff59cf9df8d5c0173893ee5",
        "e22dfc46b763e9b0c6300b7068609d2db60a9b2c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 15:07:56 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 15:07:56 2012 -0800"
      },
      "message": "am e22dfc46: Merge \"execvp: bcopy() is deprecated. Use memcpy() instead\"\n\n* commit \u0027e22dfc46b763e9b0c6300b7068609d2db60a9b2c\u0027:\n  execvp: bcopy() is deprecated. Use memcpy() instead\n"
    },
    {
      "commit": "e22dfc46b763e9b0c6300b7068609d2db60a9b2c",
      "tree": "93f1a386a4cd69d3f72699e903f79a7d23e4cd08",
      "parents": [
        "cee8425f22cfe268614c7bb47b2f5874ac6a0e4b",
        "28a7c35feac8d73b94f99493534dad069afe5049"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 14:26:34 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 14:26:36 2012 -0800"
      },
      "message": "Merge \"execvp: bcopy() is deprecated. Use memcpy() instead\""
    },
    {
      "commit": "b70659d8ea4a0f67694125a340186da96afa4210",
      "tree": "51438c99b533ef2b8439004725467d783fdc70bf",
      "parents": [
        "f20d59e69137336a2555844ce9f74ece96ad60ea",
        "b57db7581cabb98651c4d8940d65c5c404b914ad"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 09:28:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 09:28:29 2012 -0800"
      },
      "message": "Merge \"libc: Fix recursive mutex lock implementation.\""
    },
    {
      "commit": "b57db7581cabb98651c4d8940d65c5c404b914ad",
      "tree": "f2f75b325541d06da64cb6a2d6e1a58771b2e30e",
      "parents": [
        "79fcc6948d139878b9ae0423c2fe804636433ad8"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 13:20:38 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jan 24 13:20:38 2012 +0100"
      },
      "message": "libc: Fix recursive mutex lock implementation.\n\nThis fixes a bug that was introduced in the latest pthread optimization.\nIt happens when a recursive lock is contented by several threads. The main\nissue was that the atomic counter increment in _recursive_increment() could\nbe annihilated by a non-conditional write in pthread_mutex_lock() used to\nupdate the value\u0027s lower bits to indicate contention.\n\nThis patch re-introduces the use of the global recursive lock in\n_recursive_increment(). This will hit performance, but a future patch\nwill be provided to remove it from the source code.\n\nChange-Id: Ie22069d376cebf2e7d613ba00b6871567f333544\n"
    },
    {
      "commit": "73fa5fdaf9ec27741a17b0b793ff6890e6dcecd5",
      "tree": "6ea04b41beb695e792e21018b1e7c0ea6e79a5b5",
      "parents": [
        "d8545e2690c0c179f36c0e4a15c5589bdd6265ce",
        "2f80f07d8106782ac94b05f529c8cbb1fd1c6f64"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 16:47:01 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 16:47:01 2012 -0800"
      },
      "message": "Merge 2f80f07d\n\nChange-Id: Iff51b8530dbee01499ba4af0ecd6ab837c8c94fb\n"
    },
    {
      "commit": "2f80f07d8106782ac94b05f529c8cbb1fd1c6f64",
      "tree": "9617b50e1bf6a35cbaf55cd0d5003595c41bc2c0",
      "parents": [
        "8eb948d8c8b66d8442a45d398db4e970fb3bf68b",
        "23f56bbb6ae053996dd821f29379aea0c7166055"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 11:54:47 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 11:54:47 2012 -0800"
      },
      "message": "am 23f56bbb: Merge \"Add extended attribute (xattr) system call wrappers to bionic.\"\n\n* commit \u002723f56bbb6ae053996dd821f29379aea0c7166055\u0027:\n  Add extended attribute (xattr) system call wrappers to bionic.\n"
    },
    {
      "commit": "23f56bbb6ae053996dd821f29379aea0c7166055",
      "tree": "cda01bb165e43f09f7952e80f410fd7d21f4ab97",
      "parents": [
        "eae1f1fba33cb105302227b044a14e5abcbe55e7",
        "5eb686d105ebd7cea332fd1ef0bb3af9386e19f7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 10:29:21 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 20 10:29:22 2012 -0800"
      },
      "message": "Merge \"Add extended attribute (xattr) system call wrappers to bionic.\""
    },
    {
      "commit": "3452e301ecfce42bd3da5ce1b322d89f8a132ee6",
      "tree": "7f748983afd39b9d037ff37380f816236d12c721",
      "parents": [
        "df49ebabfe58af3e5d5dd0016d17d109151d3da8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 19 14:27:30 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 19 14:27:30 2012 -0800"
      },
      "message": "Add new suspend-block input ioctls.\n\nChange-Id: I8cfd63d22ecf8e08f261eb576d6ea448f396f709\n"
    },
    {
      "commit": "79fcc6948d139878b9ae0423c2fe804636433ad8",
      "tree": "e9750f58b22df996e11220a5bc7be5ccb3db0445",
      "parents": [
        "df49ebabfe58af3e5d5dd0016d17d109151d3da8",
        "208898ee776117f42815c2fcb15903b2781bf0aa"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jan 19 04:15:38 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 04:15:38 2012 -0800"
      },
      "message": "Merge \"libc: remove private declarations from \u003ctime.h\u003e and \u003cresolv.h\u003e\""
    },
    {
      "commit": "dac52ff9f5591afda2b8c2a3d41aa08d7cab179e",
      "tree": "fcffb0cb0a26a8758674f2f26309fc265d597c91",
      "parents": [
        "b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702",
        "e8e1efeafb8754ea8358e78cfe3d0f7ad4e809b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 16:34:01 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 18 16:34:01 2012 -0800"
      },
      "message": "am e8e1efea: Update to tzdata2011n.\n\n* commit \u0027e8e1efeafb8754ea8358e78cfe3d0f7ad4e809b2\u0027:\n  Update to tzdata2011n.\n"
    },
    {
      "commit": "df49ebabfe58af3e5d5dd0016d17d109151d3da8",
      "tree": "82c33ecf929bd5a8230b17bc6c43801ee185eb3e",
      "parents": [
        "5f926c26795c3a72987652870a2ae6f3fb1ac49c",
        "ea29cd5a4a0b1fc49a63a789ace1668283a6a280"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 18 08:53:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 08:53:51 2012 -0800"
      },
      "message": "Merge \"Eliminate duplicate copies of constants.\""
    },
    {
      "commit": "5eb686d105ebd7cea332fd1ef0bb3af9386e19f7",
      "tree": "3df9e137dcdcc8b78cb9ca78aee8c5de50316e87",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Fri Jan 13 07:45:16 2012 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Jan 18 08:02:23 2012 -0500"
      },
      "message": "Add extended attribute (xattr) system call wrappers to bionic.\n\nThe xattr system calls are required for the SE Android userspace in\norder to get and set file security contexts.  In particular, libselinux\nrequires these calls.\n\nChange-Id: I78f5eb3d8f3384aed0a5e7c6a6f001781d982017\n"
    },
    {
      "commit": "5f926c26795c3a72987652870a2ae6f3fb1ac49c",
      "tree": "ae53c2fa6e04b92bd40dd520d2d4ce62e47483f5",
      "parents": [
        "d6045cba4e572cf9ed0b87efddce93f3c4a80a8f",
        "b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 17 18:18:29 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 18:18:29 2012 -0800"
      },
      "message": "am b00d7a33: am eae1f1fb: Merge \"res_send: Avoid spurious close()s and (rare) failure\"\n\n* commit \u0027b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702\u0027:\n  res_send: Avoid spurious close()s and (rare) failure\n"
    },
    {
      "commit": "b00d7a331c9f2a578a4cfc4dfe0d626aa58fa702",
      "tree": "49fda4fb66b0e3f5fb08029aca582aaebc3c5cbf",
      "parents": [
        "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e",
        "eae1f1fba33cb105302227b044a14e5abcbe55e7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 17 18:16:10 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 18:16:10 2012 -0800"
      },
      "message": "am eae1f1fb: Merge \"res_send: Avoid spurious close()s and (rare) failure\"\n\n* commit \u0027eae1f1fba33cb105302227b044a14e5abcbe55e7\u0027:\n  res_send: Avoid spurious close()s and (rare) failure\n"
    },
    {
      "commit": "e8e1efeafb8754ea8358e78cfe3d0f7ad4e809b2",
      "tree": "7672e9c24da57867c389a5129e59934b3197f6a8",
      "parents": [
        "f44de270bba32c9b1b5eff8a34be07b10ddff238"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 31 14:11:32 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 17:47:59 2012 -0800"
      },
      "message": "Update to tzdata2011n.\n\nThere are three changes of note - most urgently, Cuba (America/Havana)\nhas extended summer time by two weeks, now to end on Nov 13, rather than\nthe (already past) Oct 30.   Second, the Pridnestrovian Moldavian Republic\n(Europe/Tiraspol) decided not to split from the rest of Moldova after\nall, and consequently that zone has been removed (again) and reinstated\nin the \"backward\" file as a link to Europe/Chisinau.   And third, the\nend date for Fiji\u0027s summer time this summer was moved forward from the\nearlier planned Feb 26, to Jan 22.\n\nApart from that, Moldova (MD) returns to a single entry in zone.tab\n(and the incorrect syntax that was in the 2011m version of that file\nis so fixed - it would have been fixed in a different way had this\nchange not happened - that\u0027s the \"missing\" sccs version id).\n\nBug: 5863692\n\nChange-Id: I78e29c682c623b1dec0b0ea2cb6545713ae9eed0\n"
    },
    {
      "commit": "ea29cd5a4a0b1fc49a63a789ace1668283a6a280",
      "tree": "fe277d68df56dffaa54f7e9127b4f33970dbd32d",
      "parents": [
        "d6045cba4e572cf9ed0b87efddce93f3c4a80a8f"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 17:21:33 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 17:28:42 2012 -0800"
      },
      "message": "Eliminate duplicate copies of constants.\n\nsys/personality.h and linux/personality.h contain mostly\nidentical contents. Eliminate dups.\n\nChange-Id: Ie786edcb5dca57af7ee5b5fdad2949369f1bc4e4\n"
    },
    {
      "commit": "d6045cba4e572cf9ed0b87efddce93f3c4a80a8f",
      "tree": "fe644600155a4aa33c0a66ca7129661dc80c0946",
      "parents": [
        "fc5ea79c5eec404c5790a74478255b8e2ad1e837"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 15:56:26 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 15:56:26 2012 -0800"
      },
      "message": "Don\u0027t generate sys/linux-unistd.h\n\nlinux-unistd.h was here for reference purposes, but shouldn\u0027t\nhave been accessible to client code. Delete it.\n\nChange-Id: I60c264ff6ca489a48117914bdf6daa486737af8c\n"
    },
    {
      "commit": "fc5ea79c5eec404c5790a74478255b8e2ad1e837",
      "tree": "1bd073dfdc61da74b4acf723e208caa15c17e8fb",
      "parents": [
        "023e5409df07a5d5ead6efb1825f6df92bcf50da",
        "b6f40f0027c736af0e0a7ed08ee910caccf47792"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 15:46:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 15:46:54 2012 -0800"
      },
      "message": "Merge \"update personality.h\""
    },
    {
      "commit": "023e5409df07a5d5ead6efb1825f6df92bcf50da",
      "tree": "fb62c1b226535e429cd337ec4114372c1a097649",
      "parents": [
        "697011d3c4d3bfb6b8b070ea9ac7c393b85f9f5e",
        "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 13:09:53 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 13:09:53 2012 -0800"
      },
      "message": "am 06f51ba1: am f44de270: add personality() system call.\n\n* commit \u002706f51ba1af2fafeec7fdfcba5d635bd001a31b3e\u0027:\n  add personality() system call.\n"
    },
    {
      "commit": "b6f40f0027c736af0e0a7ed08ee910caccf47792",
      "tree": "0dc7efd4c32342601ea7214e3d5fa71cd6f57288",
      "parents": [
        "697011d3c4d3bfb6b8b070ea9ac7c393b85f9f5e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 13:03:11 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 13:03:11 2012 -0800"
      },
      "message": "update personality.h\n\nPull in an updated version of personality.h from the linux\nkernel.\n\nThis file was generated using the following command:\n\ncd bionic/libc/kernel/\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/personality.h\n\nChange-Id: I860ce21110ebf7e7499fb8165584d296a73aa602\n"
    },
    {
      "commit": "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e",
      "tree": "f8221ac70c84c7708a97e9963aa772e83f11923f",
      "parents": [
        "82c4be54da0825ebe74b524932c9db733419057a",
        "f44de270bba32c9b1b5eff8a34be07b10ddff238"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 11:45:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 11:45:25 2012 -0800"
      },
      "message": "am f44de270: add personality() system call.\n\n* commit \u0027f44de270bba32c9b1b5eff8a34be07b10ddff238\u0027:\n  add personality() system call.\n"
    },
    {
      "commit": "87043f9c89593125a27199d0c1b4069d088672d7",
      "tree": "161f017fed7022c8a8f898fd880ab3306577a9e2",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Dec 12 16:32:56 2011 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Sat Jan 14 11:30:00 2012 +0800"
      },
      "message": "res_send: Avoid spurious close()s and (rare) failure\n\nWhen looping over the current list of sockets we are connected to,\nuse getpeername() not getsockname() to find out who the remote\nend is.  This change avoids spurious close() and (rare) failure.\n\nOrigin: ISC bug #18625 and fixed in libbind 6.0\n\nChange-Id: I5e85f9ff4b98c237978e4bf4bd85ba0a90d768e6\n"
    },
    {
      "commit": "28a7c35feac8d73b94f99493534dad069afe5049",
      "tree": "6c9f36d08271a8870bf1886388bd6c9d1c025bf4",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Mon Dec 12 16:17:22 2011 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Sat Jan 14 11:22:36 2012 +0800"
      },
      "message": "execvp: bcopy() is deprecated. Use memcpy() instead\n\nThe function bcopy() is marked as LEGACY in POSIX.1-2001 and removed in\nPOSIX.1-2008. memcpy (POSIX.1-2001) is its recommended replacement.\n\nChange-Id: I2cc0cc4673d1368255afd11132ddbfd3f87b530b\n"
    },
    {
      "commit": "f44de270bba32c9b1b5eff8a34be07b10ddff238",
      "tree": "79597af69be025eb643e495bf9a635077717cc8a",
      "parents": [
        "ecd0e95a0276c1ba72c7331f5e4617815f015f22"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 13 14:03:01 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 13 15:50:40 2012 -0800"
      },
      "message": "add personality() system call.\n\nChange-Id: Ie899def8ea1d705930ed83adae1343c1353e7c57\n"
    },
    {
      "commit": "697011d3c4d3bfb6b8b070ea9ac7c393b85f9f5e",
      "tree": "1afa454075641951e825e30c3b2a5b8fc3a6fe29",
      "parents": [
        "c61f99056634119806916d5dfb58505d432e6732",
        "11f3d5a4319e6e37e5280cf187b3d173e1ac0adb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 14:25:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 14:25:25 2012 -0800"
      },
      "message": "Merge \"libc: Copy private C library declarations to private/\""
    },
    {
      "commit": "c61f99056634119806916d5dfb58505d432e6732",
      "tree": "e0122e41506b805eb153c7185aa49826df0f5f31",
      "parents": [
        "e4ade69654d9026310ce7a895f14aa67947b4f31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 19 11:27:50 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 13 07:41:20 2012 -0800"
      },
      "message": "Fix misspelled Python variable name and typos\n\nTypos:\n - Update pathname in README.txt\n - Fix missing newlines in header update script.\n\nChange-Id: Ib0e053f92a27ff10071b9805fa64e5653ab31b0c\n"
    },
    {
      "commit": "208898ee776117f42815c2fcb15903b2781bf0aa",
      "tree": "ad3cf092397fa7e398e37c65312e4675016a1da3",
      "parents": [
        "11f3d5a4319e6e37e5280cf187b3d173e1ac0adb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 14:24:08 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 14:24:08 2012 +0100"
      },
      "message": "libc: remove private declarations from \u003ctime.h\u003e and \u003cresolv.h\u003e\n\nThis patch is used to remove private C library declarations from the\npublic headers (that are exported to the NDK). It should *only* be\nsubmitted after all other patches modifying the users of said\nprivate functions have been submitted to the tree, to avoid\nbreakages.\n\nChange-Id: I0a5e3014f8e3ac9ed8df86a5cdae506337c23252\n"
    },
    {
      "commit": "11f3d5a4319e6e37e5280cf187b3d173e1ac0adb",
      "tree": "8c67346daa2fab7c3b2a0ab62defbfbf5a53acd5",
      "parents": [
        "68d03fdbd8eb4d0e40dcdfbfa5e6c6dd931b467a"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 13:26:50 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 13 13:26:50 2012 +0100"
      },
      "message": "libc: Copy private C library declarations to private/\n\nThis patch is the first in a series that aims at cleaning up the\npublic C library headers (which end up being distributed with the NDK).\n\n\u003cresolv.h\u003e and \u003ctime.h\u003e contain declarations that should not be public.\nThey are used by other parts of the platform, but NDK applications should\nnot use or rely on them.\n\nSo copy them to private \u003cbionic_time.h\u003e and \u003cresolv_iface.h\u003e headers\nand use a guard macro to avoid conflicts when both headers are included\nat the same time.\n\nThe idea is that we\u0027re going to fix the other platform modules to\ninclude these private headers. After this is done, we will remove the\nduplicate definitions from \u003cresolv.h\u003e and \u003ctime.h\u003e\n\nChange-Id: I121c11936951c98ca7165e811126ed8a4a3a394d\n"
    },
    {
      "commit": "e4ade69654d9026310ce7a895f14aa67947b4f31",
      "tree": "74a187c0cc105ac86e380f5563fb86d17057c589",
      "parents": [
        "5977ee02f634964b9c6ac936c9705a182f8b506d",
        "82c4be54da0825ebe74b524932c9db733419057a"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 12 15:05:57 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 12 15:05:57 2012 -0800"
      },
      "message": "am 82c4be54: am ecd0e95a: Adding a timeout to tcp dns lookup connects.\n\n* commit \u002782c4be54da0825ebe74b524932c9db733419057a\u0027:\n  Adding a timeout to tcp dns lookup connects.\n"
    },
    {
      "commit": "82c4be54da0825ebe74b524932c9db733419057a",
      "tree": "619227d91d52cc01c295225624a1b5610c4de3fd",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf",
        "ecd0e95a0276c1ba72c7331f5e4617815f015f22"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 12 15:03:52 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 12 15:03:52 2012 -0800"
      },
      "message": "am ecd0e95a: Adding a timeout to tcp dns lookup connects.\n\n* commit \u0027ecd0e95a0276c1ba72c7331f5e4617815f015f22\u0027:\n  Adding a timeout to tcp dns lookup connects.\n"
    },
    {
      "commit": "ecd0e95a0276c1ba72c7331f5e4617815f015f22",
      "tree": "e54104270c6705bcb9fe3ca159b3ac69d852390e",
      "parents": [
        "94963af28e445384e19775a838a29e6a71708179"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Jan 11 10:04:48 2012 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 12 14:26:41 2012 -0800"
      },
      "message": "Adding a timeout to tcp dns lookup connects.\n\nTCP isn\u0027t supported on some dns servers, which makes the old code\nhang forever.\n\nNOT adding a stopship to remove debugging stuff - it was too painful\n(14s timeout on failed tcp dns lookups) so we decided not to bother people.\n\nbug:5766949\nChange-Id: I381c20c3e11b8e994438d4f7c58ef643cd36554e\n"
    },
    {
      "commit": "68d03fdbd8eb4d0e40dcdfbfa5e6c6dd931b467a",
      "tree": "ef8b4301dea68af3d466bc4f679c732c5d40e7a3",
      "parents": [
        "6519c8124ee9f2b1ed341cc683b78cf26809678d",
        "7c0c3793722aea293c45921ef50e4adcdf9645ce"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 05 14:05:30 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 05 14:05:30 2012 -0800"
      },
      "message": "Merge \"implement pthread mutex deadlock detection\""
    },
    {
      "commit": "6519c8124ee9f2b1ed341cc683b78cf26809678d",
      "tree": "2dc3f350fa429f85e263ab913b534ac4dc7972ab",
      "parents": [
        "334379dadaf481785909367cfc26600514b6119c",
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Jan 03 18:37:28 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 03 18:37:28 2012 -0800"
      },
      "message": "am e30e9093: sreadahead: adding readahead system call into bionic libc\n\n* commit \u0027e30e909363c5c706f394050d9cd00ce222caadbf\u0027:\n  sreadahead: adding readahead system call into bionic libc\n"
    },
    {
      "commit": "e30e909363c5c706f394050d9cd00ce222caadbf",
      "tree": "33dcf8fcbca380db7910ff3519cfc4cf362ab917",
      "parents": [
        "a37f3729730e4e7345977915d67adc3eea93dfe4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Jul 13 10:23:50 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Jan 03 15:18:04 2012 -0800"
      },
      "message": "sreadahead: adding readahead system call into bionic libc\n\nAdd bionic libc to support readahead system call.\nThis is needed to enable sreadahead to work.\n\nChange-Id: I3856e1a3833db82e6cf42fd34af7631bd40cc723\nAuthor: Winson Yung \u003cwinson.w.yung@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "334379dadaf481785909367cfc26600514b6119c",
      "tree": "aeb82cfa85e949e61f22204e2ce8d4879755ea5a",
      "parents": [
        "5936e36f6bc4785363d25ab6420002d6daa9cad2",
        "85aad909560508410101c18c6ecc6633df39c596"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Tue Dec 20 15:06:52 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 20 15:06:52 2011 -0800"
      },
      "message": "Merge \"Add the posix_memalign(3) function to bionic\""
    },
    {
      "commit": "5936e36f6bc4785363d25ab6420002d6daa9cad2",
      "tree": "fd5c8bb3507380315d7b51f5510fb1cf548539a1",
      "parents": [
        "a5cb76bca00b1ce44a04687fb179809c12ea9cd3",
        "a37f3729730e4e7345977915d67adc3eea93dfe4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 19 11:36:48 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 19 11:36:48 2011 -0800"
      },
      "message": "am a37f3729: readdir: fix interface to kernel getdents64 function\n\n* commit \u0027a37f3729730e4e7345977915d67adc3eea93dfe4\u0027:\n  readdir: fix interface to kernel getdents64 function\n"
    },
    {
      "commit": "a37f3729730e4e7345977915d67adc3eea93dfe4",
      "tree": "b292c186e3959bdae3a6f558eb7436f75cf01331",
      "parents": [
        "c2d5944e19863bb2d831b13893a3bb78e0d53783"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Aug 02 06:43:52 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Dec 19 09:38:48 2011 -0800"
      },
      "message": "readdir: fix interface to kernel getdents64 function\n\nIssue:\n  The kernel will pad the entry-\u003ed_reclen in a getdents64 call to a\n  long-word boundary.  For very long records, this could exceed the\n  size of a struct dirent. The mismatch in the size was causing error\n  paranoid checking code in bionic to fail... thus causing an early\n  \"end\" when reading the dirent structures from the kernel buffer.\n\nTest:\n ls\n mkdir abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstu\n ls\n\nChange-Id: I75d1f8e45e1655fdd7bac4a08a481d086f28073a\nAuthor: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "85aad909560508410101c18c6ecc6633df39c596",
      "tree": "1da341473c2090fa35afc5d22351603bd49ac79c",
      "parents": [
        "a5cb76bca00b1ce44a04687fb179809c12ea9cd3"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Dec 14 20:50:01 2011 -0800"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Dec 14 20:55:43 2011 -0800"
      },
      "message": "Add the posix_memalign(3) function to bionic\n\nThe posix_memalign(3) function is very similar to the traditional\nmemalign(3) function, but with better error reporting and a guarantee\nthat the memory it allocates can be freed.  In bionic, memalign(3)\nallocated memory can be freed, so posix_memalign(3) is just a wrapper\naround memalign(3).\n\nChange-Id: I62ee908aa5ba6b887d8446a00d8298d080a6a299\n"
    },
    {
      "commit": "a5cb76bca00b1ce44a04687fb179809c12ea9cd3",
      "tree": "16c42ffde3fc4b588418501465d6d1c18702395c",
      "parents": [
        "f6aa779383f5f5e61969a2b4fdb8bf435c5194b1"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 14 18:23:40 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 14 18:23:40 2011 +0100"
      },
      "message": "libc: x86: Use SSE2 or SSSE3 optimized routines when possible.\n\nThis patch uses the new hardware feature macros for x86 to define\nvarious compile-time macros used to make the C library use\nSSE2 and/or SSSE3 optimized memory functions for target CPUs\nthat support these features.\n\nNote that previously, we relied on the macros being defined by\nbuild/core/combo/TARGET_linux-x86.mk, but this is no longer the\ncase.\n\nChange-Id: Ieae5ff5284c0c839bc920953fb6b91d2f2633afc\n"
    },
    {
      "commit": "ddaa771cd5de6c41df2431cb3e535232f176dbe2",
      "tree": "eac68ca979d9f3c2c8e7e11b23eb653a899434e9",
      "parents": [
        "e2bb45a7c0c45116c51a3577d6118c74f6f8007f",
        "8d28b043e93d323684add3406ebae6b8fe6475d5"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 17:29:12 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 13 17:29:12 2011 -0800"
      },
      "message": "am 8d28b043: am 94963af2: update video/dsscomp.h\n\n* commit \u00278d28b043e93d323684add3406ebae6b8fe6475d5\u0027:\n  update video/dsscomp.h\n"
    },
    {
      "commit": "8d28b043e93d323684add3406ebae6b8fe6475d5",
      "tree": "41ea43cb85c24f330a01963d8d1c5413eb8d45a6",
      "parents": [
        "f3087c6e86f54874538669d899d8a2ede59f7433",
        "94963af28e445384e19775a838a29e6a71708179"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 16:02:50 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 13 16:02:50 2011 -0800"
      },
      "message": "am 94963af2: update video/dsscomp.h\n\n* commit \u002794963af28e445384e19775a838a29e6a71708179\u0027:\n  update video/dsscomp.h\n"
    },
    {
      "commit": "94963af28e445384e19775a838a29e6a71708179",
      "tree": "3d83d0844a6a658a68c2570baf9ae017b29571dd",
      "parents": [
        "bba5c314b2420483e2c0e3e441bf54bda6935bc1"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 14:48:51 2011 -0800"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Dec 13 14:48:51 2011 -0800"
      },
      "message": "update video/dsscomp.h\n\nChange-Id: I9da47f7fb7f34f9c4baa860bb767cb8fd4f8020c\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "e2bb45a7c0c45116c51a3577d6118c74f6f8007f",
      "tree": "501f7f33ced9aa002a41920856128a90a2e64001",
      "parents": [
        "cb4d9c0e1d0861358cd5e023f90c8d04cbeea1cf",
        "f3087c6e86f54874538669d899d8a2ede59f7433"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 12 15:39:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 15:39:04 2011 -0800"
      },
      "message": "am f3087c6e: am af96d4da: x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\n* commit \u0027f3087c6e86f54874538669d899d8a2ede59f7433\u0027:\n  x86: libc may use the gcc flags from TARGET_linux-x86.mk\n"
    },
    {
      "commit": "cb4d9c0e1d0861358cd5e023f90c8d04cbeea1cf",
      "tree": "990398fc6a6ae316d20546596ba3dc4613bc5561",
      "parents": [
        "e2cb764778f62819f4e6c0b1d22a5272a9d71ba2",
        "68ec71ebd6df12596dc5688c907c76ea4b32c9b4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 12 15:30:11 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 15:30:11 2011 -0800"
      },
      "message": "am 68ec71eb: am 7d03c9cb: pathconf: dead loop in bionic function __2_symlinks\n\n* commit \u002768ec71ebd6df12596dc5688c907c76ea4b32c9b4\u0027:\n  pathconf: dead loop in bionic function __2_symlinks\n"
    },
    {
      "commit": "61f90d189833e10c624893a8ab86d25eeb28a0b6",
      "tree": "71e6a11df5b08936f7f2d4c570e0eeef726b6c9d",
      "parents": [
        "b7590d784f55af66804ccaf58a6b2cf52993ded6",
        "ffe65783b4afc3f687a54b582a4e236caa22ed30"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Mon Dec 12 12:34:57 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 12 12:34:57 2011 -0800"
      },
      "message": "am ffe65783: am bba5c314: update video/dsscomp.h\n\n* commit \u0027ffe65783b4afc3f687a54b582a4e236caa22ed30\u0027:\n  update video/dsscomp.h\n"
    },
    {
      "commit": "f3087c6e86f54874538669d899d8a2ede59f7433",
      "tree": "2f2a20ce917ba7ea826f53636ad0d4a4570a18bf",
      "parents": [
        "68ec71ebd6df12596dc5688c907c76ea4b32c9b4",
        "af96d4dadc3f3d8466dbbeaf3a816e6871715fbc"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 16:19:30 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 09 16:19:30 2011 -0800"
      },
      "message": "am af96d4da: x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\n* commit \u0027af96d4dadc3f3d8466dbbeaf3a816e6871715fbc\u0027:\n  x86: libc may use the gcc flags from TARGET_linux-x86.mk\n"
    },
    {
      "commit": "7c0c3793722aea293c45921ef50e4adcdf9645ce",
      "tree": "f8cf3c609929a34bbdf40d83396545f00d1fd6b5",
      "parents": [
        "022d303116f742cd337852d37547e2ea24d97a25"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias.agopian@gmail.com",
        "time": "Mon Sep 05 23:54:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 09 14:38:57 2011 -0800"
      },
      "message": "implement pthread mutex deadlock detection\n\nthis works by building a directed graph of acquired\npthread mutexes and making sure there are no loops in\nthat graph.\n\nthis feature is enabled with:\n\n    setprop debug.libc.pthread 1\n\nwhen a potential deadlock is detected, a large warning is\noutput to the log with appropriate back traces.\n\ncurrently disabled at compile-time. set PTHREAD_DEBUG_ENABLED\u003d1\nto enable.\n\nChange-Id: I916eed2319599e8aaf8f229d3f18a8ddbec3aa8a\n"
    },
    {
      "commit": "af96d4dadc3f3d8466dbbeaf3a816e6871715fbc",
      "tree": "f5e3a6a34739c5889ea2f18e35f6b8ba6acbc747",
      "parents": [
        "7d03c9cbcedb1dc7e3a8210ac0001120558ec6df"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 13:52:19 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 13:54:20 2011 -0800"
      },
      "message": "x86: libc may use the gcc flags from TARGET_linux-x86.mk\n\nChange-Id: Iaf4d864d4b6fe388bd3c2d7c4d7d6e42aebb0d35\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "68ec71ebd6df12596dc5688c907c76ea4b32c9b4",
      "tree": "7011e4316685aa8068bddb1100203bdc14f3da5d",
      "parents": [
        "c14ea96f2f4e36f7a3b3d9676df845afb09c2245",
        "7d03c9cbcedb1dc7e3a8210ac0001120558ec6df"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Dec 09 10:19:37 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 09 10:19:37 2011 -0800"
      },
      "message": "am 7d03c9cb: pathconf: dead loop in bionic function __2_symlinks\n\n* commit \u00277d03c9cbcedb1dc7e3a8210ac0001120558ec6df\u0027:\n  pathconf: dead loop in bionic function __2_symlinks\n"
    },
    {
      "commit": "ffe65783b4afc3f687a54b582a4e236caa22ed30",
      "tree": "98d21bddda93f88f6024ddba59ef135d6e12fcaf",
      "parents": [
        "c448c082cf834f95afcfa3296eba2c67780727cf",
        "bba5c314b2420483e2c0e3e441bf54bda6935bc1"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Dec 08 14:57:00 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 08 14:57:00 2011 -0800"
      },
      "message": "am bba5c314: update video/dsscomp.h\n\n* commit \u0027bba5c314b2420483e2c0e3e441bf54bda6935bc1\u0027:\n  update video/dsscomp.h\n"
    },
    {
      "commit": "bba5c314b2420483e2c0e3e441bf54bda6935bc1",
      "tree": "4343fc251a93b8d732a4089922cbf0dbc23fdfd5",
      "parents": [
        "0d9f87a3b71057cf804b2d7aa8589e3bf94eab28"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Dec 08 14:42:04 2011 -0800"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Dec 08 14:42:04 2011 -0800"
      },
      "message": "update video/dsscomp.h\n\nChange-Id: Ic5f1c01add1f2adb5a09d05c94129f3dc9cc3f1f\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "022d303116f742cd337852d37547e2ea24d97a25",
      "tree": "cf4b8c74b7cd13fb0eb0e470ae7f81379436c2c8",
      "parents": [
        "6c6de44f0479b202c39555f5c22ef8c494837d3c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 07 14:02:17 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 07 22:09:48 2011 +0100"
      },
      "message": "libc: optimize pthread mutex lock/unlock operations (1/2)\n\nThis patch provides several small optimizations to the\nimplementation of mutex locking and unlocking. Note that\na following patch will get rid of the global recursion\nlock, and provide a few more aggressive changes, I\nthough it\u0027d be simpler to split this change in two parts.\n\n+ New behaviour: pthread_mutex_lock et al now detect\n  recursive mutex overflows and will return EAGAIN in\n  this case, as suggested by POSIX. Before, the counter\n  would just wrap to 0.\n\n- Remove un-necessary reloads of the mutex value from memory\n  by storing it in a local variable (mvalue)\n\n- Remove un-necessary reload of the mutex value by passing\n  the \u0027shared\u0027 local variable to _normal_lock / _normal_unlock\n\n- Remove un-necessary reload of the mutex value by using a\n  new macro (MUTEX_VALUE_OWNER()) to compare the thread id\n  for recursive/errorcheck mutexes\n\n- Use a common inlined function to increment the counter\n  of a recursive mutex. Also do not use the global\n  recursion lock in this case to speed it up.\n\nChange-Id: I106934ec3a8718f8f852ef547f3f0e9d9435c816\n"
    },
    {
      "commit": "6c6de44f0479b202c39555f5c22ef8c494837d3c",
      "tree": "cad3f812fe4ac0edab614c73fab734d98bf06a63",
      "parents": [
        "6e9d51701eabe26d2132a214e07b10384ea60a8c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 07 12:20:44 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 07 22:06:36 2011 +0100"
      },
      "message": "libc: optimize pthread_once() implementation.\n\nThis patch changes the implementation of pthread_once()\nto avoid the use of a single global recursive mutex. This\nshould also slightly speed up the non-common case where\nwe have to call the init function, or wait for another\nthread to finish the call.\n\nChange-Id: I8a93f4386c56fb89b5d0eb716689c2ce43bdcad9\n"
    },
    {
      "commit": "7d03c9cbcedb1dc7e3a8210ac0001120558ec6df",
      "tree": "b2ee12be2fee00fae82b89608563a2112a3b9062",
      "parents": [
        "177ba8cb42ed6d232e7c8bcad5e6ee21fc51a0e8"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Fri Oct 21 10:16:11 2011 +0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Dec 07 09:47:20 2011 -0800"
      },
      "message": "pathconf: dead loop in bionic function __2_symlinks\n\nFix dead loops in file ./bionic/libc/unistd/pathconf.c\n\nChange-Id: I7a1e6bcd9879c96bacfd376b88a1f899793295c8\nAuthor: Jin Wei \u003cwei.a.jin@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "6e9d51701eabe26d2132a214e07b10384ea60a8c",
      "tree": "bc353c391d47c583d3b395683a0f069a72ce6112",
      "parents": [
        "c5819d427de4186780391d7e067850a9e4a09ec7",
        "a73de44b7c0a50908ea8afe16134316cfc6cfbbe"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin.vincent@stericsson.com",
        "time": "Tue Dec 06 16:04:56 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 06 16:04:56 2011 -0800"
      },
      "message": "am a73de44b: am 177ba8cb: Prevent deadlock when using fork\n\n* commit \u0027a73de44b7c0a50908ea8afe16134316cfc6cfbbe\u0027:\n  Prevent deadlock when using fork\n"
    },
    {
      "commit": "a73de44b7c0a50908ea8afe16134316cfc6cfbbe",
      "tree": "f36166b9bafaf98797fa9f4a545a14fefd72298e",
      "parents": [
        "35765066b921a5bce26e3799b9e20c661771adfc",
        "177ba8cb42ed6d232e7c8bcad5e6ee21fc51a0e8"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin.vincent@stericsson.com",
        "time": "Tue Dec 06 13:59:56 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 06 13:59:56 2011 -0800"
      },
      "message": "am 177ba8cb: Prevent deadlock when using fork\n\n* commit \u0027177ba8cb42ed6d232e7c8bcad5e6ee21fc51a0e8\u0027:\n  Prevent deadlock when using fork\n"
    },
    {
      "commit": "177ba8cb42ed6d232e7c8bcad5e6ee21fc51a0e8",
      "tree": "03f7fbd00c889bd2069b088f769e53ff9cfd40e9",
      "parents": [
        "e4a21c89a8b24b32f7a2637b45522dfa59f2aaa4"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin.vincent@stericsson.com",
        "time": "Fri Apr 08 08:50:48 2011 +0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Dec 06 08:39:18 2011 -0800"
      },
      "message": "Prevent deadlock when using fork\n\nWhen forking of a new process in bionic, it is critical that it\ndoes not allocate any memory according to the comment in\njava_lang_ProcessManager.c:\n\"Note: We cannot malloc() or free() after this point!\nA no-longer-running thread may be holding on to the heap lock, and\nan attempt to malloc() or free() would result in deadlock.\"\nHowever, as fork is using standard lib calls when tracing it a bit,\nthey might allocate memory, and thus causing the deadlock.\nThis is a rewrite so that the function cpuacct_add, that fork calls,\nwill use system calls instead of standard lib calls.\n\nSigned-off-by: christian bejram \u003cchristian.bejram@stericsson.com\u003e\n\nChange-Id: Iff22ea6b424ce9f9bf0ac8e9c76593f689e0cc86\n"
    },
    {
      "commit": "c5819d427de4186780391d7e067850a9e4a09ec7",
      "tree": "0d012d23687824a0f5a99d1e3ec886957e703073",
      "parents": [
        "6d77a81456610b6720482459596c3af58058d8b9",
        "35765066b921a5bce26e3799b9e20c661771adfc"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Dec 06 08:35:08 2011 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Dec 06 08:35:08 2011 -0800"
      },
      "message": "Merge 35765066 from ics-mr1-plus-aosp\n\nChange-Id: Ibaeb49dc20f3c736417d5cb68769e7b501a61632\n"
    },
    {
      "commit": "6d77a81456610b6720482459596c3af58058d8b9",
      "tree": "92876dac5db8de6718277623f82f160cb047aaa6",
      "parents": [
        "aed4a4c90b46f9e91ef2a52a3360a990cca957e7",
        "cb835cd77c8e60b4a9fb8a54a06d4fd4039ae1b0"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 05 22:13:21 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 05 22:13:21 2011 -0800"
      },
      "message": "am cb835cd7: am cb1df916: string: Fix wrong comparison semantics\n\n* commit \u0027cb835cd77c8e60b4a9fb8a54a06d4fd4039ae1b0\u0027:\n  string: Fix wrong comparison semantics\n"
    },
    {
      "commit": "35765066b921a5bce26e3799b9e20c661771adfc",
      "tree": "9ada65b43593956097a7fd27190fbae37bd1d90b",
      "parents": [
        "cb835cd77c8e60b4a9fb8a54a06d4fd4039ae1b0",
        "e4a21c89a8b24b32f7a2637b45522dfa59f2aaa4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 05 22:12:08 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 05 22:12:08 2011 -0800"
      },
      "message": "am e4a21c89: signal: Align the sigset_t size passed to from user space to kernel.\n\n* commit \u0027e4a21c89a8b24b32f7a2637b45522dfa59f2aaa4\u0027:\n  signal: Align the sigset_t size passed to from user space to kernel.\n"
    },
    {
      "commit": "cb835cd77c8e60b4a9fb8a54a06d4fd4039ae1b0",
      "tree": "0aa845ad0d4d2bee7d625f9fa138563f4cae4ce0",
      "parents": [
        "75039bafde8e6f03caffa9d6aa7142a09ba50952",
        "cb1df9161666db2a312814752de67fc623149a9b"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 05 22:12:07 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 05 22:12:07 2011 -0800"
      },
      "message": "am cb1df916: string: Fix wrong comparison semantics\n\n* commit \u0027cb1df9161666db2a312814752de67fc623149a9b\u0027:\n  string: Fix wrong comparison semantics\n"
    },
    {
      "commit": "e4a21c89a8b24b32f7a2637b45522dfa59f2aaa4",
      "tree": "2eeac63eccc2d9f120e9626fcd5ed44974bb0e36",
      "parents": [
        "cb1df9161666db2a312814752de67fc623149a9b"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 05 11:25:37 2011 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Dec 05 18:37:33 2011 -0800"
      },
      "message": "signal: Align the sigset_t size passed to from user space to kernel.\n\nPass kernel space sigset_t size to __rt_sigprocmask to workaround\nthe miss-match of NSIG/sigset_t definition between kernel and bionic.\n\nNote: Patch originally from Google...\nChange-Id: I4840fdc56d0b90d7ce2334250f04a84caffcba2a\nSigned-off-by: Chenyang Du \u003cchenyang.du@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "cb1df9161666db2a312814752de67fc623149a9b",
      "tree": "aa6db13b060299aad917d756bce73d0c84306a4d",
      "parents": [
        "89d3fdcae26980bf81a4622c3c83e48ead4c1c3a"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Oct 25 13:06:09 2011 +0400"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Dec 05 18:37:10 2011 -0800"
      },
      "message": "string: Fix wrong comparison semantics\n\nChars are signed for x86 -- correct the comparison semantics.\n\nChange-Id: I2049e98eb063c0b4e83ea973d3fcae49c6817dde\nAuthor: Liubov Dmitrieva \u003cliubov.dmitrieva@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "aed4a4c90b46f9e91ef2a52a3360a990cca957e7",
      "tree": "ff3c459788b55e2801f11582a6c18b51fae3cdf1",
      "parents": [
        "253b7631606e47de720f38082394a5791fe4bf0d",
        "75039bafde8e6f03caffa9d6aa7142a09ba50952"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 05 17:02:20 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 05 17:02:20 2011 -0800"
      },
      "message": "am 75039baf: am 89d3fdca: MALLOC_DEBUG: enable the option libc.debug.malloc \u003d 10\n\n* commit \u002775039bafde8e6f03caffa9d6aa7142a09ba50952\u0027:\n  MALLOC_DEBUG: enable the option libc.debug.malloc \u003d 10\n"
    },
    {
      "commit": "75039bafde8e6f03caffa9d6aa7142a09ba50952",
      "tree": "ac1c4a3850965295966a7d2c09fae46396593b61",
      "parents": [
        "0c3d21e63c6e75ae73aaf2b8d64af0bd8caa6beb",
        "89d3fdcae26980bf81a4622c3c83e48ead4c1c3a"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 05 17:01:13 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 05 17:01:13 2011 -0800"
      },
      "message": "am 89d3fdca: MALLOC_DEBUG: enable the option libc.debug.malloc \u003d 10\n\n* commit \u002789d3fdcae26980bf81a4622c3c83e48ead4c1c3a\u0027:\n  MALLOC_DEBUG: enable the option libc.debug.malloc \u003d 10\n"
    },
    {
      "commit": "89d3fdcae26980bf81a4622c3c83e48ead4c1c3a",
      "tree": "c58fbe8957357a72479ee8b409d9233ede22f075",
      "parents": [
        "e480fc83b2887388d469eb3bf58c86c610f5b082"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Sep 21 12:44:05 2011 +0200"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Mon Dec 05 14:58:55 2011 -0800"
      },
      "message": "MALLOC_DEBUG: enable the option libc.debug.malloc \u003d 10\n\nFix the compile warning to let the libc.debug.malloc\u003d10 works well\nDue to unsuitable value comparison, which cause compiler optimize the\ncode of comparing two digits.\n\nChange-Id: I0bedd596c9ca2ba308fb008da20ecb328d8548f5\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\nAuthor: liu chuansheng \u003cchuansheng.liu@intel.com\u003e\n"
    },
    {
      "commit": "bec5dec947b1ad097c200888365a3ec61f9e7a28",
      "tree": "ee6d8a4aa949c13c9f2e95da9936972b53ebe242",
      "parents": [
        "338a06f4bcb12c4418e66a6c3210a236259c1bf8",
        "0c3d21e63c6e75ae73aaf2b8d64af0bd8caa6beb"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Wed Nov 30 10:50:59 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 10:50:59 2011 -0800"
      },
      "message": "am 0c3d21e6: am e480fc83: bionic: fix pthread_{create, exit}/signal race condition\n\n* commit \u00270c3d21e63c6e75ae73aaf2b8d64af0bd8caa6beb\u0027:\n  bionic: fix pthread_{create, exit}/signal race condition\n"
    },
    {
      "commit": "338a06f4bcb12c4418e66a6c3210a236259c1bf8",
      "tree": "d1fed7584b5cde3b1234f2f84bfe4803775ca70a",
      "parents": [
        "0e0bd586319b25e6e8e797b426a0adcce7612577",
        "621df52644cc19001688c0964ad425c5ed6c8990"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Wed Nov 30 10:50:58 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 10:50:58 2011 -0800"
      },
      "message": "am 621df526: am 31e72bc3: bionic: fix __get_tls( ) crash issue\n\n* commit \u0027621df52644cc19001688c0964ad425c5ed6c8990\u0027:\n  bionic: fix __get_tls( ) crash issue\n"
    },
    {
      "commit": "0c3d21e63c6e75ae73aaf2b8d64af0bd8caa6beb",
      "tree": "c9e2bbe6c0480c619d8efdbf3c5830060ffe4547",
      "parents": [
        "621df52644cc19001688c0964ad425c5ed6c8990",
        "e480fc83b2887388d469eb3bf58c86c610f5b082"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Tue Nov 29 22:42:32 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 29 22:42:32 2011 -0800"
      },
      "message": "am e480fc83: bionic: fix pthread_{create, exit}/signal race condition\n\n* commit \u0027e480fc83b2887388d469eb3bf58c86c610f5b082\u0027:\n  bionic: fix pthread_{create, exit}/signal race condition\n"
    },
    {
      "commit": "621df52644cc19001688c0964ad425c5ed6c8990",
      "tree": "bfcc5c0a708f39245c038f6808c7fa84c8bcb45b",
      "parents": [
        "1ad08626a143dc684e92f56754c7176cc4914ce8",
        "31e72bc3289acdd85b0b745fbf64c5949ca33432"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Tue Nov 29 22:42:31 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 29 22:42:31 2011 -0800"
      },
      "message": "am 31e72bc3: bionic: fix __get_tls( ) crash issue\n\n* commit \u002731e72bc3289acdd85b0b745fbf64c5949ca33432\u0027:\n  bionic: fix __get_tls( ) crash issue\n"
    },
    {
      "commit": "e480fc83b2887388d469eb3bf58c86c610f5b082",
      "tree": "c595c2a61a1a4aa4d5049762a0130af7c0442437",
      "parents": [
        "31e72bc3289acdd85b0b745fbf64c5949ca33432"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Wed Sep 21 12:44:11 2011 +0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Nov 29 17:09:51 2011 -0800"
      },
      "message": "bionic: fix pthread_{create, exit}/signal race condition\n\n(1) in pthread_create:\n    If the one signal is received before esp is subtracted by 16 and\n    __thread_entry( ) is called, the stack will be cleared by kernel\n    when it tries to contruct the signal stack frame. That will cause\n    that __thread_entry will get a wrong tls pointer from the stack\n    which leads to the segment fault when trying to access tls content.\n\n(2) in pthread_exit\n    After pthread_exit called system call unmap(), its stack will be\n    freed.  If one signal is received at that time, there is no stack\n    available for it.\n\nFixed by subtracting the child\u0027s esp by 16 before the clone system\ncall and by blocking signal handling before pthread_exit is started.\n\nAuthor: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "31e72bc3289acdd85b0b745fbf64c5949ca33432",
      "tree": "e67e3743e9ceeeb8afdfe25121fbe62dc1608bce",
      "parents": [
        "897815a1feff230be3ea42655a77dcbb9a8dcca9"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Aug 01 18:44:55 2011 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Nov 29 17:09:15 2011 -0800"
      },
      "message": "bionic: fix __get_tls( ) crash issue\n\nWhen running the stress test of pthread create/destroy, a crash may\noocur in __get_tls(). That is caused by the race condition with __set_tls( ):\n\nAuthor: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "e796d39d80d97ebe0e36476dff3189d155a99c98",
      "tree": "b03d8ac1b4a068c0db0109536cf3d294438a8be1",
      "parents": [
        "495f16cbac001f96944acf3f908766f7769632a4",
        "ca6fe7bebe3cc6ed7e2db5a3ede2de0fcddf411d"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Nov 29 15:48:48 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 15:48:48 2011 -0800"
      },
      "message": "Merge \"Request both v4 and v6 dns when on secondary net\""
    },
    {
      "commit": "495f16cbac001f96944acf3f908766f7769632a4",
      "tree": "b5d51194343e92934daec512bf0af44aa0cbd913",
      "parents": [
        "f1a39dce60be0b453416e1b82a6d445a7677eb4b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Nov 28 13:41:21 2011 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Nov 28 13:42:50 2011 -0800"
      },
      "message": "update capabilities.h\n\nPull in an updated version of capabilities.h from the linux\nkernel.\n\nThis file was generated using the following command:\n\ncd bionic/libc/kernel/\n./tools/clean_header.py -u ../../../external/kernel-headers/original/linux/capability.h\n\nChange-Id: I43c8f014954f543858006f24e60a2e69955349da\n"
    },
    {
      "commit": "f1a39dce60be0b453416e1b82a6d445a7677eb4b",
      "tree": "8a439b3a8a38480b20cb6e9800d50d0f5e1909a6",
      "parents": [
        "de44d0b2bd32a2c2cc5e2ffb64f8356efd893bca"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 23 14:38:36 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 23 14:38:36 2011 +0100"
      },
      "message": "libc: Fix typo that broke NDK compatibility.\n\nThe function must be named __atomic_cmpxchg, not __android_cmpxchg.\nThis typo broke existing prebuilt binaries (they couldn\u0027t be loaded\nat runtime anymore).\n\nChange-Id: I25ca7d18329817f0056e616a0409113269ad7b1f\n"
    },
    {
      "commit": "ca6fe7bebe3cc6ed7e2db5a3ede2de0fcddf411d",
      "tree": "c8644c6e427f477c9f7ed31a8dd0ade1b81a94a7",
      "parents": [
        "7e2daefe6cec40e143f519c46aec877ee053b407"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Mon Nov 21 15:14:19 2011 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Nov 22 15:24:44 2011 -0800"
      },
      "message": "Request both v4 and v6 dns when on secondary net\n\nWe can\u0027t easily tell the protocol family of the secondary network,\nso try both and trust that the carrier has configured dns servers\naccording to the protocols supported on its network.\n\nbug:5468224\nChange-Id: If4f017573d313a6ad8354574076de6d63d43b444\n"
    },
    {
      "commit": "de44d0b2bd32a2c2cc5e2ffb64f8356efd893bca",
      "tree": "7b83cab0619d43bef90d24e2590032759d5e1a7d",
      "parents": [
        "95a17848d3a96000f90cdbfc7ff922182f0003b3",
        "0fec6b9d88ee5a9e359b2208038f9806c0804538"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 22 02:10:06 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 22 02:10:06 2011 -0800"
      },
      "message": "Merge \"libc: provide atomic operations will full barriers for NDK apps.\""
    },
    {
      "commit": "95a17848d3a96000f90cdbfc7ff922182f0003b3",
      "tree": "8fff82284e51129617fd070f4bf904f4b70c8351",
      "parents": [
        "f638339d0955ec1d00580842604df7578c40833b",
        "10c8ce59a40a1d8ae8f49145eca365b364aabe58"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 21 13:13:26 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 21 13:13:26 2011 -0800"
      },
      "message": "Merge \"Add tgkill syscall.\""
    },
    {
      "commit": "10c8ce59a40a1d8ae8f49145eca365b364aabe58",
      "tree": "5157c1d270cda4e2933a0e7fedf8b5ed6b920f96",
      "parents": [
        "4b469eae40368913b2841b390dada6c58296c602"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 18 15:17:07 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 18 16:40:48 2011 -0800"
      },
      "message": "Add tgkill syscall.\n\nUse tgkill instead of tkill to implement pthread_kill.\nThis is safer in the event that the thread has already terminated\nand its id has been reused by a different process.\n\nChange-Id: Ied715e11d7eadeceead79f33db5e2b5722954ac9\n"
    },
    {
      "commit": "5f64df4bc3bc281f661d520773894c729c2b4835",
      "tree": "2976c55910c4a2c3c8cdaa6b07d1de4d4401de5f",
      "parents": [
        "7e2daefe6cec40e143f519c46aec877ee053b407"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Nov 17 12:58:20 2011 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 18 10:07:12 2011 -0800"
      },
      "message": "ASLR: enable pthread stack location randomization\n\nAllow the kernel to choose a memory location to put the\nthread stack, rather than hard coding 0x10000000\n\nChange-Id: Ib1f37cf0273d4977e8d274fbdab9431ec1b7cb4f\n"
    },
    {
      "commit": "0fec6b9d88ee5a9e359b2208038f9806c0804538",
      "tree": "09eeea71b53e27010352ac913e886459f2ed6c6c",
      "parents": [
        "b38522983712432ba143c046343ba4fa01baf7c8"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 17:37:15 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 17:37:15 2011 +0100"
      },
      "message": "libc: provide atomic operations will full barriers for NDK apps.\n\n__atomic_cmpxchg and other related atomic operations did not\nprovide memory barriers, which can be a problem for non-platform\ncode that links against them when it runs on multi-core devices.\n\nThis patch does two things to fix this:\n\n- It modifies the existing implementation of the functions\n  that are exported by the C library to always provide\n  full memory barriers. We need to keep them exported by\n  the C library to prevent breaking existing application\n  machine code.\n\n- It also modifies \u003csys/atomics.h\u003e to only export\n  always-inlined versions of the functions, to ensure that\n  any application code compiled against the new header will\n  not rely on the platform version of the functions.\n\n  This ensure that said machine code will run properly on\n  all multi-core devices.\n\nThis is based on the GCC built-in sync primitives.\n\nThe end result should be only slightly slower than the\nprevious implementation.\n\nNote that the platform code does not use these functions\nat all. A previous patch completely removed their usage in\nthe pthread and libstdc++ code.\n\n+ rename arch-arm/bionic/atomics_arm.S to futex_arm.S\n+ rename arch-x86/bionic/atomics_x86.S to futex_x86.S\n+ remove arch-x86/include/sys/atomics.h which already\n  provided inlined functions to the x86 platform.\n\nChange-Id: I752a594475090cf37fa926bb38209c2175dda539\n"
    },
    {
      "commit": "b38522983712432ba143c046343ba4fa01baf7c8",
      "tree": "dda761ca6d2ea14ee7f181fb89625fc4c97e1f28",
      "parents": [
        "90c4c1e82b946c838f22be9c0bb3dcf81eaf26ca",
        "9831ad3ce6bd5b22da16a275ed67e7236eae3d1f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 07:31:31 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 16 07:31:31 2011 -0800"
      },
      "message": "Merge \"libc: speed-up flockfile()/funlockfile()\""
    },
    {
      "commit": "90c4c1e82b946c838f22be9c0bb3dcf81eaf26ca",
      "tree": "7e25ee5cbb82a8d291cd0f05a904373b42c09ad2",
      "parents": [
        "fd7d5acdeb5b32a97640941539de2e56cf6b27f9",
        "e31bfae2baa96742f998155ee26e56c826a8ce3a"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 07:29:59 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 16 07:29:59 2011 -0800"
      },
      "message": "Merge \"bionic: Do not use \u003csys/atomics.h\u003e for platform code.\""
    },
    {
      "commit": "e31bfae2baa96742f998155ee26e56c826a8ce3a",
      "tree": "b12cfb44ad035c26278f42fa9b19095e90b79e95",
      "parents": [
        "8180b08fb2f27052f9df2ae4787bb5bf409f13e0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Nov 15 15:47:02 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 16:28:10 2011 +0100"
      },
      "message": "bionic: Do not use \u003csys/atomics.h\u003e for platform code.\n\nWe\u0027re going to modify the __atomic_xxx implementation to provide\nfull memory barriers, to avoid problems for NDK machine code that\nlink to these functions.\n\nFirst step is to remove their usage from our platform code.\nWe now use inlined versions of the same functions for a slight\nperformance boost.\n\n+ remove obsolete atomics_x86.c (was never compiled)\n\nNOTE: This improvement was benchmarked on various devices.\n      Comparing a pthread mutex lock + atomic increment + unlock\n      we get:\n\n  - ARMv7 emulator, running on a 2.4 GHz Xeon:\n       before: 396 ns    after: 288 ns\n\n  - x86 emulator in KVM mode on same machine:\n       before: 27 ns     after: 27 ns\n\n  - Google Nexus S, in ARMv7 mode (single-core):\n       before: 82 ns     after: 76 ns\n\n  - Motorola Xoom, in ARMv7 mode (multi-core):\n       before: 121 ns    after: 120 ns\n\nThe code has also been rebuilt in ARMv5TE mode for correctness.\n\nChange-Id: Ic1dc72b173d59b2e7af901dd70d6a72fb2f64b17\n"
    }
  ],
  "next": "fd7d5acdeb5b32a97640941539de2e56cf6b27f9"
}
