)]}'
{
  "log": [
    {
      "commit": "631498de43cb958f32c864cb9cdb2e99dadc19e1",
      "tree": "a8176e5bf49d93ecf6a8bb09db05faadcd4fb046",
      "parents": [
        "fd49579f3a04125b23336c981739dca6c39712bb",
        "524c87c61c1d39dd60aaa8ae01ec3528ce212288"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 12:17:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 12:17:12 2012 -0700"
      },
      "message": "Merge \"Added event logging for some spoofed DNS queries.\""
    },
    {
      "commit": "fd49579f3a04125b23336c981739dca6c39712bb",
      "tree": "4ddfedaecd744900e449d68972157afb99f27908",
      "parents": [
        "8f2887be9376c204f574273abfec849823ac835e",
        "009f38478e6a1c47aa355b0aed80b69ba91b9c61"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 11:50:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 11:50:03 2012 -0700"
      },
      "message": "Merge \"Added actual event logging calls to the FORTIFY_SOURCE methods.\""
    },
    {
      "commit": "524c87c61c1d39dd60aaa8ae01ec3528ce212288",
      "tree": "f9721ed559801e4e404e94a14f59ea758f77e85c",
      "parents": [
        "76656afc6dd069fcfda5768e6e54bb85e4e99942"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 21:06:33 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 11:44:48 2012 -0700"
      },
      "message": "Added event logging for some spoofed DNS queries.\n\nChange-Id: I40909306e8cf922f1dd5a5685db89f732a709794\n"
    },
    {
      "commit": "009f38478e6a1c47aa355b0aed80b69ba91b9c61",
      "tree": "4ddfedaecd744900e449d68972157afb99f27908",
      "parents": [
        "76656afc6dd069fcfda5768e6e54bb85e4e99942"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 14:39:11 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon Jun 11 11:30:56 2012 -0700"
      },
      "message": "Added actual event logging calls to the FORTIFY_SOURCE methods.\n\nChange-Id: I3bf4fa8678c33187cb8ce4b75e666ddcd24403ab\n"
    },
    {
      "commit": "8f2887be9376c204f574273abfec849823ac835e",
      "tree": "8fc474895f6bffba90a06989e9a168fbaaaff99a",
      "parents": [
        "76656afc6dd069fcfda5768e6e54bb85e4e99942",
        "5ff025a50ccd7d30ea39c989d9ed8b1084ded47f"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 11 09:23:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 11 09:23:11 2012 -0700"
      },
      "message": "am 5ff025a5: Reconcile with jb-release\n\n* commit \u00275ff025a50ccd7d30ea39c989d9ed8b1084ded47f\u0027:\n"
    },
    {
      "commit": "5ff025a50ccd7d30ea39c989d9ed8b1084ded47f",
      "tree": "52277d831c864c127d99652874080db6274f060b",
      "parents": [
        "e4db460a54e4f024b83a7df9a3f9920d695da9f3",
        "ff7eae7b08ec84af95325067f8b01fd0697767bc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 11 09:20:36 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 11 09:20:36 2012 -0700"
      },
      "message": "Reconcile with jb-release\n\nChange-Id: I7cbfbab55783f245c0854543843c2052c4c2e932\n"
    },
    {
      "commit": "ff7eae7b08ec84af95325067f8b01fd0697767bc",
      "tree": "9abe9b2a8f018b9108d6a55862912d8513a67473",
      "parents": [
        "b7630f018abc83261acf78e8cf9a88c1df72f7f5",
        "db2e7a4cb6ff6e2b6a61f5c708f29235bdd8daa6"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Mon Jun 11 06:59:25 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Mon Jun 11 06:59:25 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "76656afc6dd069fcfda5768e6e54bb85e4e99942",
      "tree": "8fc474895f6bffba90a06989e9a168fbaaaff99a",
      "parents": [
        "f41855949d5f19e0fc1f8873278ae21c52dd5676"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 16:30:02 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 20:18:19 2012 -0700"
      },
      "message": "_FORTIFY_SOURCE: check for integer overflows\n\nEnsure that strcat / strncat check for integer overflows\nwhen computing the length of the resulting string.\n\nChange-Id: Ib806ad33a0d3b50876f384bc17787a28f0dddc37\n"
    },
    {
      "commit": "f41855949d5f19e0fc1f8873278ae21c52dd5676",
      "tree": "adec664ec6957a7263b04a6bbc94cc21cc24b14c",
      "parents": [
        "ec8addcc8af1dc2a1ae606af8a16362bf5471a63",
        "e4db460a54e4f024b83a7df9a3f9920d695da9f3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 08 15:33:31 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 15:33:31 2012 -0700"
      },
      "message": "am e4db460a: am b7630f01: Use new debuggerd protocol.\n\n* commit \u0027e4db460a54e4f024b83a7df9a3f9920d695da9f3\u0027:\n  Use new debuggerd protocol.\n"
    },
    {
      "commit": "e4db460a54e4f024b83a7df9a3f9920d695da9f3",
      "tree": "52277d831c864c127d99652874080db6274f060b",
      "parents": [
        "d06a73bcb330e1a560373158be9009daef10a046",
        "b7630f018abc83261acf78e8cf9a88c1df72f7f5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 08 15:30:39 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 15:30:39 2012 -0700"
      },
      "message": "am b7630f01: Use new debuggerd protocol.\n\n* commit \u0027b7630f018abc83261acf78e8cf9a88c1df72f7f5\u0027:\n  Use new debuggerd protocol.\n"
    },
    {
      "commit": "ec8addcc8af1dc2a1ae606af8a16362bf5471a63",
      "tree": "7baad32412d6632ba99d9d800509227575905ce5",
      "parents": [
        "7e5993bec7a2856f727c7029cb4e0b5b4a7436d4",
        "8b11c4cec21dc8eedd153866ce738614cfae57e6"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 12:17:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 12:17:11 2012 -0700"
      },
      "message": "Merge \"Adding event logging to libc.\""
    },
    {
      "commit": "8b11c4cec21dc8eedd153866ce738614cfae57e6",
      "tree": "ee313cc132aeda193792e290d1e4749f8f2e1712",
      "parents": [
        "158ad015c2eb8f0a7f0e91db706ca363e634f407"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu Jun 07 17:45:06 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Jun 08 12:14:48 2012 -0700"
      },
      "message": "Adding event logging to libc.\n\nI\u0027ve basically just copied the relevant bits out of liblog and\nEventLog.cpp. While this will let us do the uid logging we want\nto address the concerns in 245c07027f78565858dd489eb0d94c3d48743e9d\nit doesn\u0027t give us much else.\n\nChange-Id: Icac6ff20bc0a3ade5927f6f76fedffe1ae6f8522\n"
    },
    {
      "commit": "7e5993bec7a2856f727c7029cb4e0b5b4a7436d4",
      "tree": "bb2a465ab0028b533d5e1d6ff1b1138b79bd8bac",
      "parents": [
        "1a6b0bb3a6e7d19c45c446ba22f1748a98ecfad6",
        "71a18dd435e96564539b5af71b8ea5093a2109a1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:30:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 07 14:30:20 2012 -0700"
      },
      "message": "Merge \"_FORTIFY_SOURCE: add memset / bzero support\""
    },
    {
      "commit": "71a18dd435e96564539b5af71b8ea5093a2109a1",
      "tree": "fd59c2a7cc23b663d090b0b8843a5d19c97df7d0",
      "parents": [
        "7d11009a970732ea18f8a0599d63c94eab9ec3f0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:01:26 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 07 14:19:52 2012 -0700"
      },
      "message": "_FORTIFY_SOURCE: add memset / bzero support\n\nAdd _FORTIFY_SOURCE support for the following functions:\n\n* memset\n* bzero\n\nMove the __BIONIC_FORTIFY_INLINE definition to cdefs.h so it\ncan be used from multiple header files.\n\nChange-Id: Iead4d5e35de6ec97786d58ee12573f9b11135bb7\n"
    },
    {
      "commit": "1a6b0bb3a6e7d19c45c446ba22f1748a98ecfad6",
      "tree": "be34442cf6aad2f7b5bc8dcb1e025de2d03769e8",
      "parents": [
        "7d11009a970732ea18f8a0599d63c94eab9ec3f0",
        "f186a1819a4489c8d73485042670a3002742b683"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 07 11:43:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 07 11:43:47 2012 -0700"
      },
      "message": "Merge \"Support non-zero p_vaddr in first PT_LOAD segment\""
    },
    {
      "commit": "7d11009a970732ea18f8a0599d63c94eab9ec3f0",
      "tree": "966a2f02c4489d64428978b9f771c9d2edcef512",
      "parents": [
        "459049719cce0f5b1d595c2a9fa50e3a75550b2b",
        "d06a73bcb330e1a560373158be9009daef10a046"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 07 07:51:59 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 07 07:51:59 2012 -0700"
      },
      "message": "am d06a73bc: Reconcile with jb-release\n\n* commit \u0027d06a73bcb330e1a560373158be9009daef10a046\u0027:\n"
    },
    {
      "commit": "d06a73bcb330e1a560373158be9009daef10a046",
      "tree": "7f8bec490816965d4e4548c9864b7df53d553bb3",
      "parents": [
        "d0c250271c983c3de282ff02bd2528e74ad8b5f1",
        "db2e7a4cb6ff6e2b6a61f5c708f29235bdd8daa6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 07 07:48:47 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 07 07:48:47 2012 -0700"
      },
      "message": "Reconcile with jb-release\n\nChange-Id: I2c8264a9a4e3299bca7fc01d67063993b6b1b886\n"
    },
    {
      "commit": "b7630f018abc83261acf78e8cf9a88c1df72f7f5",
      "tree": "9abe9b2a8f018b9108d6a55862912d8513a67473",
      "parents": [
        "e1dd3c287ba836281de0197670018bd9bbfbd62b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 06 18:37:48 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 06 18:37:48 2012 -0700"
      },
      "message": "Use new debuggerd protocol.\n\nBug: 6615693\nChange-Id: Ibfddc0de3fa2a882f7d0238ab797e5b29296b54b\n"
    },
    {
      "commit": "459049719cce0f5b1d595c2a9fa50e3a75550b2b",
      "tree": "966a2f02c4489d64428978b9f771c9d2edcef512",
      "parents": [
        "158ad015c2eb8f0a7f0e91db706ca363e634f407",
        "d0c250271c983c3de282ff02bd2528e74ad8b5f1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 13:50:29 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 13:50:29 2012 -0700"
      },
      "message": "am d0c25027: am 2b89f1e3: Merge \"Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\"\n\n* commit \u0027d0c250271c983c3de282ff02bd2528e74ad8b5f1\u0027:\n  Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\n"
    },
    {
      "commit": "d0c250271c983c3de282ff02bd2528e74ad8b5f1",
      "tree": "7f8bec490816965d4e4548c9864b7df53d553bb3",
      "parents": [
        "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc",
        "2b89f1e37df838e466d382fc602728930bad4c68"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 13:48:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 13:48:07 2012 -0700"
      },
      "message": "am 2b89f1e3: Merge \"Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\"\n\n* commit \u00272b89f1e37df838e466d382fc602728930bad4c68\u0027:\n  Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\n"
    },
    {
      "commit": "2b89f1e37df838e466d382fc602728930bad4c68",
      "tree": "e46ef556b41c1462c43c4ad506659735e69f7f43",
      "parents": [
        "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d",
        "a985076bfe8c89f932fe33be45b887405c4fe7e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 13:32:19 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 06 13:32:19 2012 -0700"
      },
      "message": "Merge \"Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\""
    },
    {
      "commit": "a985076bfe8c89f932fe33be45b887405c4fe7e3",
      "tree": "e46ef556b41c1462c43c4ad506659735e69f7f43",
      "parents": [
        "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 12:04:38 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 12:04:38 2012 -0700"
      },
      "message": "Fix sysconf(_SC_NPROCESSORS_CONF) on ARM.\n\nBug: http://code.google.com/p/enh/issues/detail?id\u003d33\nChange-Id: I679b4cd888d362031042284e8edf01c5273a92aa\n"
    },
    {
      "commit": "158ad015c2eb8f0a7f0e91db706ca363e634f407",
      "tree": "47281e42bc28337e4bc2a322ceea88c4485778e6",
      "parents": [
        "204c6e5ff337cc3be2478172c58de9f4df80b7bd",
        "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 11:37:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 11:37:25 2012 -0700"
      },
      "message": "am 3069270d: am c2bba24d: Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\"\n\n* commit \u00273069270d8641c7bb57aa308d8f90b4d2dcbf66fc\u0027:\n  Give the timer_create SIGEV_THREAD helper threads sensible names.\n"
    },
    {
      "commit": "3069270d8641c7bb57aa308d8f90b4d2dcbf66fc",
      "tree": "4986b35e70c1586a78148c88f15af55aa1a25e41",
      "parents": [
        "252a5c854a08e89fc7337ea679220161fe4ea98f",
        "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 11:35:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 06 11:35:32 2012 -0700"
      },
      "message": "am c2bba24d: Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\"\n\n* commit \u0027c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d\u0027:\n  Give the timer_create SIGEV_THREAD helper threads sensible names.\n"
    },
    {
      "commit": "c2bba24d0a6b906f00d7b9f20ac9d32d63bb2e9d",
      "tree": "b463bd464e0f4864f444d71639f4b9b9a1149108",
      "parents": [
        "c7882ab2a99a74c8f772ab03fdfd9a3b53515e46",
        "470631ed79538ce912edb94505dee3e24af8db89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:44:31 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 06 10:44:32 2012 -0700"
      },
      "message": "Merge \"Give the timer_create SIGEV_THREAD helper threads sensible names.\""
    },
    {
      "commit": "470631ed79538ce912edb94505dee3e24af8db89",
      "tree": "b463bd464e0f4864f444d71639f4b9b9a1149108",
      "parents": [
        "c7882ab2a99a74c8f772ab03fdfd9a3b53515e46"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:32:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:32:56 2012 -0700"
      },
      "message": "Give the timer_create SIGEV_THREAD helper threads sensible names.\n\nBug: 6609676\nChange-Id: I286b197c75beee4d9930b0973f2d7dd47c14e91c\n"
    },
    {
      "commit": "204c6e5ff337cc3be2478172c58de9f4df80b7bd",
      "tree": "68431401132bae2b980f682e219940b62ade8bb5",
      "parents": [
        "0a2301598c207fd1b50015984942fee5e8511593",
        "9d40326830c2bd407427889c554adeb915ee6b4a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 06 08:54:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 06 08:54:22 2012 -0700"
      },
      "message": "Merge \"arm: rewrite crtbegin* as C files.\""
    },
    {
      "commit": "0a2301598c207fd1b50015984942fee5e8511593",
      "tree": "161496d8ec411c14f7f82990e82e970c7e328a2a",
      "parents": [
        "31431f454a9d3d3dde46de0e3c39cc409a39c436"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 04 15:20:25 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 05 15:44:31 2012 -0700"
      },
      "message": "libc: implement some FORTIFY_SOURCE functions\n\nAdd initial support for -D_FORTIFY_SOURCE to bionic for the\nfollowing functions:\n\n* memcpy\n* memmove\n* strcpy\n* strcat\n* strncpy\n* strncat\n\nThis change adds a new version of the above functions which passes\nthe size of the destination buffer to __builtin___*_chk.\n\nIf the compiler can determine, at compile time, that the destination\nbuffer is large enough, or the destination buffer can point to an object\nof unknown size, then the check call is bypassed.\n\nIf the compiler can\u0027t make a compile time decision, then it calls\nthe __*_chk() function, which does a runtime buffer size check\n\nThese options are only enabled if the code is compiled with\n-D_FORTIFY_SOURCE\u003d1 or 2, and only when optimizations are enabled.\n\nPlease see\n* http://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html\n* http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html\n\nfor additional details on FORTIFY_SOURCE.\n\nTesting: Compiled the entire Android tree with -D_FORTIFY_SOURCE\u003d1,\nand verified that everything appears to be working properly.\nAlso created a test buffer overflow, and verified that it was\ncaught by this change.\n\nChange-Id: I4fddb445bafe92b16845b22458d72e6dedd24fbc\n"
    },
    {
      "commit": "f186a1819a4489c8d73485042670a3002742b683",
      "tree": "aaefa1f83fcb5357ab0d4535a2400a3f27fb1cdb",
      "parents": [
        "31431f454a9d3d3dde46de0e3c39cc409a39c436"
      ],
      "author": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Thu May 31 20:20:36 2012 +0900"
      },
      "committer": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Mon Jun 04 07:44:10 2012 -0700"
      },
      "message": "Support non-zero p_vaddr in first PT_LOAD segment\n\nBefore changing mmap() permission to PROT_NONE in alloc_mem_region(),\nsuch libraries once worked with a bug that uses mmap\u0027ed region outside of\nmemory region allocated by alloc_mem_region().  This possibly incurs\nSIGSEGV because it can overwrite memory region of previously loaded\nlibrary, but it sometimes worked, depending on loading order.\n\nAfter PROT_NONE, this caused SIGSEGV earlier during calculation of\nsi-\u003ephdr in load_library(), but this was fixed by:\n\n    75917c84d16c35b8fceff6977fa717a3de9ef65d  Use mmap to read an ...\n\nNow the behaviour is the same as before applying PROT_NONE in\nalloc_mem_region().\n\nThis CL fixed the original issue, supporting shared libraries that have\nnon-zero p_vaddr in first (\u003d with lowest p_vaddr) PT_LOAD segment.\n\nBug: 6561258\nChange-Id: Ib6176dd3e44c4d99a340eb1cbd16fb037586b0bc\n"
    },
    {
      "commit": "db2e7a4cb6ff6e2b6a61f5c708f29235bdd8daa6",
      "tree": "a5138cb21c8de6be4ea4be61e44f95fb8bcb776e",
      "parents": [
        "e1dd3c287ba836281de0197670018bd9bbfbd62b",
        "e1d591540ec9e04cb30687fb2186eb100ae88f5c"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Sun Jun 03 05:59:30 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Sun Jun 03 05:59:30 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "31431f454a9d3d3dde46de0e3c39cc409a39c436",
      "tree": "6323e46ca9ba03d26b4dceb1acf9c3b9dc0675cf",
      "parents": [
        "143ad4cf31832537102ae8df7ad7360071b806af",
        "252a5c854a08e89fc7337ea679220161fe4ea98f"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:35:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 02 08:35:07 2012 -0700"
      },
      "message": "am 252a5c85: resolved conflicts for merge of e1dd3c28 to jb-dev-plus-aosp\n\n* commit \u0027252a5c854a08e89fc7337ea679220161fe4ea98f\u0027:\n  bionic: import heaptracker as chk_malloc\n"
    },
    {
      "commit": "143ad4cf31832537102ae8df7ad7360071b806af",
      "tree": "c8a9aae53d1972fdfb4e3bc2a2e9bb2004dfe5f5",
      "parents": [
        "857fc9eab912fbb3f27913c3582ed2268420bce9",
        "f0ddaa2fac00ac20059c0b2c142da9de2838a7b6"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:20:09 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 02 08:20:09 2012 -0700"
      },
      "message": "am f0ddaa2f: am 7d2e24eb: bionic: introduce libc.debug.malloc.program\n\n* commit \u0027f0ddaa2fac00ac20059c0b2c142da9de2838a7b6\u0027:\n  bionic: introduce libc.debug.malloc.program\n"
    },
    {
      "commit": "252a5c854a08e89fc7337ea679220161fe4ea98f",
      "tree": "8e0e154a5c1c94613138ba8cee0b77b8e34d0a49",
      "parents": [
        "f0ddaa2fac00ac20059c0b2c142da9de2838a7b6",
        "e1dd3c287ba836281de0197670018bd9bbfbd62b"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:14:36 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sat Jun 02 08:14:36 2012 -0700"
      },
      "message": "resolved conflicts for merge of e1dd3c28 to jb-dev-plus-aosp\n\nChange-Id: I58b9c13d20771aa39b703ec05cbff8aeaad38fe8\n"
    },
    {
      "commit": "f0ddaa2fac00ac20059c0b2c142da9de2838a7b6",
      "tree": "1e17b7a4afcfffe039a39875b468b4dcc4fb919b",
      "parents": [
        "5a095ef28716b54f86d9c1727b9a2493ba775255",
        "7d2e24eb167b6257f7935c7bd2023a708704ca1a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Jun 01 19:03:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 01 19:03:06 2012 -0700"
      },
      "message": "am 7d2e24eb: bionic: introduce libc.debug.malloc.program\n\n* commit \u00277d2e24eb167b6257f7935c7bd2023a708704ca1a\u0027:\n  bionic: introduce libc.debug.malloc.program\n"
    },
    {
      "commit": "e1dd3c287ba836281de0197670018bd9bbfbd62b",
      "tree": "a5138cb21c8de6be4ea4be61e44f95fb8bcb776e",
      "parents": [
        "7d2e24eb167b6257f7935c7bd2023a708704ca1a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 29 14:22:42 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Jun 01 15:54:34 2012 -0700"
      },
      "message": "bionic: import heaptracker as chk_malloc\n\nThis patch is a rewrite of libc.debug.malloc \u003d 10 (chk_malloc).  It provides\nthe same features as the original (poison freed memory, detect heap overruns\nand underruns), except that it provides more debugging information whenever it\ndetects a problem.\n\nIn addition to the original features, the new chk_malloc() implementation\ndetects multiple frees within a given range of the last N allocations, N being\nconfigurable via the system property libc.debug.malloc.backlog.\n\nFinally, this patch keeps track of all outstanding memory allocations.  On\nprogram exit, we walk that list and report each outstanding allocation.\n\n(There is support (not enabled) for a scanner thread periodically walks over\nthe list of outstanding allocations as well as the backlog of recently-freed\nallocations, checking for heap-usage errors.)\n\nFeature overview:\n\n  1) memory leaks\n  2) multiple frees\n  3) use after free\n  4) overrun\n\nImplementation:\n\n-- for each allocation, there is a:\n  1) stack trace at the time the allocation is made\n  2) if the memory is freed, there is also a stack trace at the point\n  3) a front and rear guard (fence)\n  4) the stack traces are kept together with the allocation\n\n-- the following lists and maintained\n\n  1) all outstanding memory allocations\n  3) a backlog of allocations what are freed; when you call free(), instead of\n     actually freed, the allocation is moved to this backlog;\n  4) when the backlog of allocations gets full, the oldest entry gets evicted\n     from it; at that point, the allocation is checked for overruns or\n     use-after-free errors, and then actually freed.\n  5) when the program exits, the list of outstanding allocations and the\n     backlog are inspected for errors, then freed;\n\nTo use this, set the following system properties before running the process or\nprocesses you want to inspect:\n\nlibc.malloc.debug.backlog # defaults to 100\nlibc.malloc.debug 10\n\nWhen a problem is detected, you will see the following on logcat for a multiple\nfree:\n\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 BYTES MULTIPLY FREED!\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 4009647c  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 FIRST FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096490  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 NOW BEING FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c6ac  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964a0  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a heap overrun and underrun:\n\nE/libc    ( 7233): +++ REAR GUARD MISMATCH [10, 11)\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 HAS A CORRUPTED REAR GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096438  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096462  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 HAS A CORRUPTED FRONT GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964ba  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964e4  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a memory leak:\n\nE/libc    ( 7233): +++ THERE ARE 1 LEAKED ALLOCATIONS\nE/libc    ( 7233): +++ DELETING 4096 BYTES OF LEAKED MEMORY AT 0x404b95e8 (1 REMAINING)\nE/libc    ( 7233): +++ ALLOCATION 0x404b95e8 SIZE 4096 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 0001bc94  /system/lib/libc.so\nE/libc    ( 7233):      #04  pc 0001edf6  /system/lib/libc.so\nE/libc    ( 7233):      #05  pc 0001b80a  /system/lib/libc.so\nE/libc    ( 7233):      #06  pc 0001c086  /system/lib/libc.so\nE/libc    ( 7233):      #07  pc 40096402  /system/bin/malloctest\nE/libc    ( 7233):      #08  pc 00016f24  /system/lib/libc.so\n\nChange-Id: Ic440e9d05a01e2ea86b25e8998714e88bc2d16e0\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "9d40326830c2bd407427889c554adeb915ee6b4a",
      "tree": "17c901c0eb9768711be1c299178cbd891624281b",
      "parents": [
        "857fc9eab912fbb3f27913c3582ed2268420bce9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu May 31 11:40:10 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 01 14:41:27 2012 -0700"
      },
      "message": "arm: rewrite crtbegin* as C files.\n\nRewrite\n crtbegin.S     -\u003e crtbegin.c\n crtbegin_so.S  -\u003e crtbegin_so.c\n\nThis change allows us to generate PIC code without relying\non text relocations.\n\nAs a consequence of this rewrite, also rewrite\n  __dso_handle.S    -\u003e __dso_handle.c\n  __dso_handle_so.S -\u003e __dso_handle_so.c\n  atexit.S          -\u003e atexit.c\n\nIn crtbegin.c _start, place the __PREINIT_ARRAY__, __INIT_ARRAY__,\n__FINI_ARRAY__, and __CTOR_LIST__ variables onto the stack, instead of\npassing a pointer to the text section of the binary.\n\nThis change appears sorta wonky, as I attempted to preserve,\nas much as possible, the structure of the original assembly.\nAs a result, you have C files including other C files, and other\nprogramming uglyness.\n\nResult: This change reduces the number of files with text-relocations\nfrom 315 to 19 on my Android build.\n\nBefore:\n  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l\n  315\n\nAfter:\n  $ scanelf -aR $OUT/system | grep TEXTREL | wc -l\n  19\n\nChange-Id: Ib9f98107c0eeabcb606e1ddc7ed7fc4eba01c9c4\n"
    },
    {
      "commit": "e1d591540ec9e04cb30687fb2186eb100ae88f5c",
      "tree": "f0a77c986e09fdcae8698a72e6e0ce21b2b4ee6d",
      "parents": [
        "03539a36b634bdfa61c06277cf25e0ca8e3105ba",
        "2481468f2232b1d9670657e0148c434c3359ce19"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Thu May 31 06:59:25 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Thu May 31 06:59:25 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "7d2e24eb167b6257f7935c7bd2023a708704ca1a",
      "tree": "827446ee24c7175462c76278a56db005233bbcaf",
      "parents": [
        "03539a36b634bdfa61c06277cf25e0ca8e3105ba"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 29 16:46:17 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed May 30 20:03:47 2012 -0700"
      },
      "message": "bionic: introduce libc.debug.malloc.program\n\nlibc.debug.malloc.program  provides an additional level of control over which\nprocesses to enable libc.debug.malloc functionality for.  The string value of\nlibc.debug.malloc.program is matched against the program name; if the value of\nlibc.debug.malloc.program is a substring of the program name, then malloc debug\nis applied to that program at whatever level libc.debug.malloc specifies.\n\nIf lib.debug.malloc.program is not specified, then libc.debug.malloc has the\nsame effect as before.\n\nFor example, to enable libc.deubug.malloc \u003d 10 only to the mediaserver, do the\nfollowing:\n\n   adb root # necessary for setprop\n   adb setprop libc.debug.malloc.program mediaserver\n   adb setprop libc.debug.malloc 10\n   adb kill -9 $(pid mediaserver)\n\nChange-Id: I6f01c12f033c8e2e015d73025369d7f1685ba200\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "857fc9eab912fbb3f27913c3582ed2268420bce9",
      "tree": "b3afc458526e73c6dba03f871b845798b4c7374f",
      "parents": [
        "207d7673e503508e644a4bd0a0acec4a6dc34a5e",
        "83a73d1afe972014f6c8ff2520fe6d3357421f87"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 13:29:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 30 13:29:58 2012 -0700"
      },
      "message": "Merge \"crtbegin: eliminate duplicate code\""
    },
    {
      "commit": "83a73d1afe972014f6c8ff2520fe6d3357421f87",
      "tree": "f7aea2d4044d20ff5236f53e0988d296e3ea8bd8",
      "parents": [
        "1ebb243d1ad7b82887b6b09c972f57f4c820a9f1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 11:45:12 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 30 11:45:12 2012 -0700"
      },
      "message": "crtbegin: eliminate duplicate code\n\ncrtbegin_dynamic and crtbegin_static are essentially identical,\nminus a few trivial differences (comments and whitespace).\n\nEliminate duplicates.\n\nChange-Id: Ic9fae6bc9695004974493b53bfc07cd3bb904480\n"
    },
    {
      "commit": "207d7673e503508e644a4bd0a0acec4a6dc34a5e",
      "tree": "f357b4afd514de049204ef0ab3998e89bf3ff288",
      "parents": [
        "1ebb243d1ad7b82887b6b09c972f57f4c820a9f1",
        "5a095ef28716b54f86d9c1727b9a2493ba775255"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed May 30 11:11:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 30 11:11:33 2012 -0700"
      },
      "message": "am 5a095ef2: am 03539a36: Merge \"Ensure that the port number and TXID are properly randomized.\" into jb-dev\n\n* commit \u00275a095ef28716b54f86d9c1727b9a2493ba775255\u0027:\n  Ensure that the port number and TXID are properly randomized.\n"
    },
    {
      "commit": "5a095ef28716b54f86d9c1727b9a2493ba775255",
      "tree": "da09ea4a54c141cba195426f0d723d51edb27b80",
      "parents": [
        "cb9ba3c88a97f34784559a55317ff5970d4c4dba",
        "03539a36b634bdfa61c06277cf25e0ca8e3105ba"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed May 30 11:09:05 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 30 11:09:05 2012 -0700"
      },
      "message": "am 03539a36: Merge \"Ensure that the port number and TXID are properly randomized.\" into jb-dev\n\n* commit \u002703539a36b634bdfa61c06277cf25e0ca8e3105ba\u0027:\n  Ensure that the port number and TXID are properly randomized.\n"
    },
    {
      "commit": "03539a36b634bdfa61c06277cf25e0ca8e3105ba",
      "tree": "f0a77c986e09fdcae8698a72e6e0ce21b2b4ee6d",
      "parents": [
        "c84ff11dad26435dc5760bceda18e8f1175a6061",
        "b23f193dcc0fa74b5be1978f85cc1c6811493c86"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed May 30 11:06:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 30 11:06:54 2012 -0700"
      },
      "message": "Merge \"Ensure that the port number and TXID are properly randomized.\" into jb-dev"
    },
    {
      "commit": "1ebb243d1ad7b82887b6b09c972f57f4c820a9f1",
      "tree": "eb74292f0f247806057cf5338581dc17514b8e60",
      "parents": [
        "1dd9efc5415148700ef33bb04c3a6cd8ddb86ada",
        "cb9ba3c88a97f34784559a55317ff5970d4c4dba"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 29 09:41:51 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 29 09:41:51 2012 -0700"
      },
      "message": "am cb9ba3c8: Reconcile with jb-release\n\n* commit \u0027cb9ba3c88a97f34784559a55317ff5970d4c4dba\u0027:\n  Print the corrupted address passed to free().\n"
    },
    {
      "commit": "cb9ba3c88a97f34784559a55317ff5970d4c4dba",
      "tree": "01c67f99eac10327b6db5a2fb0828bb343fa8ae5",
      "parents": [
        "d7b60b207be79513b99faf2ef576db333f9c7a78",
        "2481468f2232b1d9670657e0148c434c3359ce19"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 29 09:39:17 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 29 09:39:17 2012 -0700"
      },
      "message": "Reconcile with jb-release\n\nChange-Id: Id0b365ef6729dc36b88193f1675d3819e56bd426\n"
    },
    {
      "commit": "1dd9efc5415148700ef33bb04c3a6cd8ddb86ada",
      "tree": "eb74292f0f247806057cf5338581dc17514b8e60",
      "parents": [
        "41c2a112c2bfe25eef267ff38ca4f452ba397ee0",
        "75917c84d16c35b8fceff6977fa717a3de9ef65d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 25 15:11:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 25 15:11:35 2012 -0700"
      },
      "message": "Merge \"Use mmap to read an initial ELF header of library\""
    },
    {
      "commit": "75917c84d16c35b8fceff6977fa717a3de9ef65d",
      "tree": "a599da04e2e062dc747d27eed333b774b3df9cbb",
      "parents": [
        "15ed08d065e865c7a1a2937e429a1fe80a870461"
      ],
      "author": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Fri May 25 22:36:00 2012 +0900"
      },
      "committer": {
        "name": "Ji-Hwan Lee",
        "email": "jihwan@google.com",
        "time": "Sat May 26 06:15:50 2012 +0900"
      },
      "message": "Use mmap to read an initial ELF header of library\n\nAlso, fixes SIGSEV during calculation of si-\u003ephdr in load_library(),\nwhich is caused by accessing PHDR area, which is not guaranteed to be\nloaded.\n\nNote that this usually does not happen because program header area is\ncovered by immediately following PT_LOAD entry.  But it does not hold\nalways.\n\nBug: 6561258\nChange-Id: Ie376253c773b5420279ca89044e81b1aad5a5736\n"
    },
    {
      "commit": "2481468f2232b1d9670657e0148c434c3359ce19",
      "tree": "b98c5e82098b71100b9ccf082b9913628d77142a",
      "parents": [
        "4dc3a7e1ed4dc9b76e47bc2a941c398dbebf0ef2"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Thu May 24 16:56:53 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Fri May 25 11:14:20 2012 -0700"
      },
      "message": "Print the corrupted address passed to free().\n\nFor example:\n\n@@@ ABORTING: INVALID HEAP ADDRESS IN dlfree addr\u003d0x5c3bfbd0\nFatal signal 11 (SIGSEGV) at 0xdeadbaad (code\u003d1), thread 2942\n\nThe addr\u003d0x5c3bfbd0 part is new.\n\nChange-Id: I8670144b2b0a3a6182384150d762c97dfee5452f\n"
    },
    {
      "commit": "41c2a112c2bfe25eef267ff38ca4f452ba397ee0",
      "tree": "572e31425a2037795fb9b9e88aaecadaf06af69a",
      "parents": [
        "15ed08d065e865c7a1a2937e429a1fe80a870461",
        "d7b60b207be79513b99faf2ef576db333f9c7a78"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Thu May 24 17:23:43 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 24 17:23:43 2012 -0700"
      },
      "message": "am d7b60b20: am c84ff11d: Print the corrupted address passed to free().\n\n* commit \u0027d7b60b207be79513b99faf2ef576db333f9c7a78\u0027:\n  Print the corrupted address passed to free().\n"
    },
    {
      "commit": "d7b60b207be79513b99faf2ef576db333f9c7a78",
      "tree": "01c67f99eac10327b6db5a2fb0828bb343fa8ae5",
      "parents": [
        "d155ba57a32ce3182d8a5b79ff27bc5e7fa55df9",
        "c84ff11dad26435dc5760bceda18e8f1175a6061"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Thu May 24 17:21:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 24 17:21:03 2012 -0700"
      },
      "message": "am c84ff11d: Print the corrupted address passed to free().\n\n* commit \u0027c84ff11dad26435dc5760bceda18e8f1175a6061\u0027:\n  Print the corrupted address passed to free().\n"
    },
    {
      "commit": "c84ff11dad26435dc5760bceda18e8f1175a6061",
      "tree": "b98c5e82098b71100b9ccf082b9913628d77142a",
      "parents": [
        "08e72d0161e39e99ff1003bf1ce894f37d7b7eb4"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Thu May 24 16:56:53 2012 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Thu May 24 17:06:43 2012 -0700"
      },
      "message": "Print the corrupted address passed to free().\n\nFor example:\n\n@@@ ABORTING: INVALID HEAP ADDRESS IN dlfree addr\u003d0x5c3bfbd0\nFatal signal 11 (SIGSEGV) at 0xdeadbaad (code\u003d1), thread 2942\n\nThe addr\u003d0x5c3bfbd0 part is new.\n\nChange-Id: I8670144b2b0a3a6182384150d762c97dfee5452f\n"
    },
    {
      "commit": "b23f193dcc0fa74b5be1978f85cc1c6811493c86",
      "tree": "966ca3c99c6fe3f01205d7c9c320cd24ec94d0fe",
      "parents": [
        "08e72d0161e39e99ff1003bf1ce894f37d7b7eb4"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Mon May 21 14:20:59 2012 -0700"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu May 24 15:26:12 2012 -0700"
      },
      "message": "Ensure that the port number and TXID are properly randomized.\n\nThis fix reads from /dev/urandom to get the required entropy.\n\nBug: 6535492\nChange-Id: Ibc2fec3f71a67607b608ad9b767b0b6504993c1d\n"
    },
    {
      "commit": "15ed08d065e865c7a1a2937e429a1fe80a870461",
      "tree": "793d0933b2b96b37c5809e57ba7cacfb34e5f8a6",
      "parents": [
        "7cce04381a61848c8a1d34c213121d4af928d5d0",
        "d155ba57a32ce3182d8a5b79ff27bc5e7fa55df9"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 21 12:41:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 21 12:41:30 2012 -0700"
      },
      "message": "am d155ba57: am c7882ab2: Merge \"bionic: add clean kernel header ucontext.h\"\n\n* commit \u0027d155ba57a32ce3182d8a5b79ff27bc5e7fa55df9\u0027:\n  bionic: add clean kernel header ucontext.h\n"
    },
    {
      "commit": "7cce04381a61848c8a1d34c213121d4af928d5d0",
      "tree": "9af2c9301e24ec1b15f753f2ecce49b327580d04",
      "parents": [
        "d8f919864435375bd4cfcd92eed9de6ac9074ecc",
        "dc6c2b779b4fa8bf44e51b18785f44ab9c7e0a18"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 17 17:15:01 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 17 17:15:01 2012 -0700"
      },
      "message": "resolved conflicts for merge of dc6c2b77 to master\n\nChange-Id: Ifab4573a825cf5caa7158d8888243bb8d5d01148\n"
    },
    {
      "commit": "d155ba57a32ce3182d8a5b79ff27bc5e7fa55df9",
      "tree": "b08b79eb2bd38347ba65fe5b992ccab1216d0212",
      "parents": [
        "dc6c2b779b4fa8bf44e51b18785f44ab9c7e0a18",
        "c7882ab2a99a74c8f772ab03fdfd9a3b53515e46"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu May 17 13:28:10 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 17 13:28:10 2012 -0700"
      },
      "message": "am c7882ab2: Merge \"bionic: add clean kernel header ucontext.h\"\n\n* commit \u0027c7882ab2a99a74c8f772ab03fdfd9a3b53515e46\u0027:\n  bionic: add clean kernel header ucontext.h\n"
    },
    {
      "commit": "c7882ab2a99a74c8f772ab03fdfd9a3b53515e46",
      "tree": "5dde8423cda590181047809bdf25d35789366ea1",
      "parents": [
        "70cf0bc0496a1d4c0e83fe3f1933f667ab66c148",
        "c425bc053285f9073277e9b03c795d2fd785b82f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu May 17 12:25:01 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 17 12:25:02 2012 -0700"
      },
      "message": "Merge \"bionic: add clean kernel header ucontext.h\""
    },
    {
      "commit": "dc6c2b779b4fa8bf44e51b18785f44ab9c7e0a18",
      "tree": "5a5226dc83b2ca42b6a90047ae5bc08e775d0a1c",
      "parents": [
        "1727a041b59995b00c1d497022600be929bcaf3e",
        "70cf0bc0496a1d4c0e83fe3f1933f667ab66c148"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 17:18:23 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 17:18:23 2012 -0700"
      },
      "message": "am 70cf0bc0: Merge \"Remove the last references to SuperH.\"\n\n* commit \u002770cf0bc0496a1d4c0e83fe3f1933f667ab66c148\u0027:\n  Remove the last references to SuperH.\n"
    },
    {
      "commit": "70cf0bc0496a1d4c0e83fe3f1933f667ab66c148",
      "tree": "a716f29090aec47bbd62f5b66e2494e751e51183",
      "parents": [
        "cf8e554c72af1dd634d4f36a9065e34e853f8714",
        "e33af61c7073719b027e038fbcdde49363b604ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 09:56:37 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 16 09:56:37 2012 -0700"
      },
      "message": "Merge \"Remove the last references to SuperH.\""
    },
    {
      "commit": "d8f919864435375bd4cfcd92eed9de6ac9074ecc",
      "tree": "42ace96c6f5df709233c65760e572b223e65ef1d",
      "parents": [
        "38e81b4294b78e6718d97b36a326140717bc9815",
        "1727a041b59995b00c1d497022600be929bcaf3e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:17:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:17:32 2012 -0700"
      },
      "message": "am 1727a041: am cf8e554c: (-s ours) Merge \"Make the linker relocatable.\"\n\n* commit \u00271727a041b59995b00c1d497022600be929bcaf3e\u0027:\n  Make the linker relocatable.\n"
    },
    {
      "commit": "38e81b4294b78e6718d97b36a326140717bc9815",
      "tree": "42ace96c6f5df709233c65760e572b223e65ef1d",
      "parents": [
        "ed434302f0f09b86f9f72db2932d4549a93a4255",
        "574e8ec28fac106a5e9b2c98b7b5a4e9532ecf5c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:15:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:15:15 2012 -0700"
      },
      "message": "am 574e8ec2: am 36e0345a: Merge \"linker: set LOCAL_NO_CRT :\u003d true\"\n\n* commit \u0027574e8ec28fac106a5e9b2c98b7b5a4e9532ecf5c\u0027:\n  linker: set LOCAL_NO_CRT :\u003d true\n"
    },
    {
      "commit": "ed434302f0f09b86f9f72db2932d4549a93a4255",
      "tree": "42ace96c6f5df709233c65760e572b223e65ef1d",
      "parents": [
        "82576526e3e46555ccad8c87ce66760507bbb7f1",
        "ee6916c00718185df3930a18050e5b47685ef524"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:15:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:15:14 2012 -0700"
      },
      "message": "am ee6916c0: am 1adc7c03: Merge \"linker: Fix the computation of si-\u003ebase\"\n\n* commit \u0027ee6916c00718185df3930a18050e5b47685ef524\u0027:\n  linker: Fix the computation of si-\u003ebase\n"
    },
    {
      "commit": "82576526e3e46555ccad8c87ce66760507bbb7f1",
      "tree": "42ace96c6f5df709233c65760e572b223e65ef1d",
      "parents": [
        "75931ee6e11b3f6d36d501f5b8f5ad3656e13120",
        "c62d55cbaef8001c7eb0a8d5e85e2fc72283063a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:15:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:15:07 2012 -0700"
      },
      "message": "am c62d55cb: am cd6b2007: (-s ours) Merge \"Add linker support for PIE\"\n\n* commit \u0027c62d55cbaef8001c7eb0a8d5e85e2fc72283063a\u0027:\n  Add linker support for PIE\n"
    },
    {
      "commit": "1727a041b59995b00c1d497022600be929bcaf3e",
      "tree": "9ff65c1ccaaa7b107756e7a203d04f8bcdac85d0",
      "parents": [
        "574e8ec28fac106a5e9b2c98b7b5a4e9532ecf5c",
        "cf8e554c72af1dd634d4f36a9065e34e853f8714"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:14:22 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:14:22 2012 -0700"
      },
      "message": "am cf8e554c: (-s ours) Merge \"Make the linker relocatable.\"\n\n* commit \u0027cf8e554c72af1dd634d4f36a9065e34e853f8714\u0027:\n  Make the linker relocatable.\n"
    },
    {
      "commit": "574e8ec28fac106a5e9b2c98b7b5a4e9532ecf5c",
      "tree": "9ff65c1ccaaa7b107756e7a203d04f8bcdac85d0",
      "parents": [
        "ee6916c00718185df3930a18050e5b47685ef524",
        "36e0345af89e2ed768ed38dcdf016a7640cf8ba5"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:11:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:11:52 2012 -0700"
      },
      "message": "am 36e0345a: Merge \"linker: set LOCAL_NO_CRT :\u003d true\"\n\n* commit \u002736e0345af89e2ed768ed38dcdf016a7640cf8ba5\u0027:\n  linker: set LOCAL_NO_CRT :\u003d true\n"
    },
    {
      "commit": "ee6916c00718185df3930a18050e5b47685ef524",
      "tree": "9ff65c1ccaaa7b107756e7a203d04f8bcdac85d0",
      "parents": [
        "c62d55cbaef8001c7eb0a8d5e85e2fc72283063a",
        "1adc7c03898ee1f6a4c7f8cffa3c07507b9da5a9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:11:50 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:11:50 2012 -0700"
      },
      "message": "am 1adc7c03: Merge \"linker: Fix the computation of si-\u003ebase\"\n\n* commit \u00271adc7c03898ee1f6a4c7f8cffa3c07507b9da5a9\u0027:\n  linker: Fix the computation of si-\u003ebase\n"
    },
    {
      "commit": "c62d55cbaef8001c7eb0a8d5e85e2fc72283063a",
      "tree": "9ff65c1ccaaa7b107756e7a203d04f8bcdac85d0",
      "parents": [
        "918e6a730cd059392ee6d8b5c5a0f5fa0e5bbd93",
        "cd6b2007b851f1cfa47d8bcc7ec859dfa7557382"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed May 16 09:11:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 09:11:49 2012 -0700"
      },
      "message": "am cd6b2007: (-s ours) Merge \"Add linker support for PIE\"\n\n* commit \u0027cd6b2007b851f1cfa47d8bcc7ec859dfa7557382\u0027:\n  Add linker support for PIE\n"
    },
    {
      "commit": "75931ee6e11b3f6d36d501f5b8f5ad3656e13120",
      "tree": "42ace96c6f5df709233c65760e572b223e65ef1d",
      "parents": [
        "fc9e525fe07846c1efa23235a59575f8dad69c53",
        "918e6a730cd059392ee6d8b5c5a0f5fa0e5bbd93"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 16 08:34:13 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 08:34:13 2012 -0700"
      },
      "message": "am 918e6a73: Reconcile with jb-release nakasi-factoryrom-release\n\n* commit \u0027918e6a730cd059392ee6d8b5c5a0f5fa0e5bbd93\u0027:\n  Revert \"linker: remove STB_LOCAL hack\"\n  Revert \"Reference __dso_handle in PIC way\"\n  Revert \"Use the new NativeDaemonConnector style.\"\n  libc: Add __aeabi_llsl and __aeabi_llsr to libgcc_compat\n"
    },
    {
      "commit": "918e6a730cd059392ee6d8b5c5a0f5fa0e5bbd93",
      "tree": "9ff65c1ccaaa7b107756e7a203d04f8bcdac85d0",
      "parents": [
        "f2f7bf76dfd1d6014ed3baa1e27b221388e70a09",
        "4dc3a7e1ed4dc9b76e47bc2a941c398dbebf0ef2",
        "4dc3a7e1ed4dc9b76e47bc2a941c398dbebf0ef2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 16 08:31:49 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 16 08:31:49 2012 -0700"
      },
      "message": "Reconcile with jb-release nakasi-factoryrom-release\n\nChange-Id: I5a5b95da6c33afbc36893e162f3b57c09c161ee2\n"
    },
    {
      "commit": "e33af61c7073719b027e038fbcdde49363b604ee",
      "tree": "a716f29090aec47bbd62f5b66e2494e751e51183",
      "parents": [
        "cf8e554c72af1dd634d4f36a9065e34e853f8714"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 15 17:03:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 15 17:08:41 2012 -0700"
      },
      "message": "Remove the last references to SuperH.\n\nChange-Id: Icb44c1f94cb178d90b4c2b1e8f6d175586aec4e1\n"
    },
    {
      "commit": "fc9e525fe07846c1efa23235a59575f8dad69c53",
      "tree": "42ace96c6f5df709233c65760e572b223e65ef1d",
      "parents": [
        "1b56aaa659174c56cd602dc54f119b40c5ca1af6"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 15 15:15:11 2012 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 15 15:15:11 2012 -0700"
      },
      "message": "Rename the misleading var name TARGET_OUT_STATIC_LIBRARIES\n\nTARGET_OUT_STATIC_LIBRARIES is actually the same as\nTARGET_OUT_INTERMEDIATE_LIBRARIES.\n\nChange-Id: I11ac35256031d461d20156cd4c19ed7eae781d22\n"
    },
    {
      "commit": "cf8e554c72af1dd634d4f36a9065e34e853f8714",
      "tree": "5b92b1b76771a543093f38ead4d1c86eba630532",
      "parents": [
        "36e0345af89e2ed768ed38dcdf016a7640cf8ba5",
        "dcbc3787bfb9a272a010f13ac149d546b4b741d8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 15:10:24 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 15:10:24 2012 -0700"
      },
      "message": "Merge \"Make the linker relocatable.\""
    },
    {
      "commit": "36e0345af89e2ed768ed38dcdf016a7640cf8ba5",
      "tree": "a54f7186b43128c8ef4d37bb17ea9ffe0dd9cac8",
      "parents": [
        "1adc7c03898ee1f6a4c7f8cffa3c07507b9da5a9",
        "e742c1f5649d3298cd98d8cc8e62d0cd10be0e82"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 15:10:12 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 15:10:12 2012 -0700"
      },
      "message": "Merge \"linker: set LOCAL_NO_CRT :\u003d true\""
    },
    {
      "commit": "1adc7c03898ee1f6a4c7f8cffa3c07507b9da5a9",
      "tree": "83dcb9018f6cfa9c7bea6a088748ade7cba3b975",
      "parents": [
        "cd6b2007b851f1cfa47d8bcc7ec859dfa7557382",
        "077891b199ad295017b32bc9cf1c542c1360b3b8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 15:10:00 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 15:10:01 2012 -0700"
      },
      "message": "Merge \"linker: Fix the computation of si-\u003ebase\""
    },
    {
      "commit": "cd6b2007b851f1cfa47d8bcc7ec859dfa7557382",
      "tree": "dfe595c687878807ae5e87794749560fe7dfd249",
      "parents": [
        "4f05d1c758ba141c617f25251a661ecb66627e9e",
        "6cdefd06c0386776405e4379af036722db5d60c0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 15:09:45 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 15:09:45 2012 -0700"
      },
      "message": "Merge \"Add linker support for PIE\""
    },
    {
      "commit": "dcbc3787bfb9a272a010f13ac149d546b4b741d8",
      "tree": "5b92b1b76771a543093f38ead4d1c86eba630532",
      "parents": [
        "e742c1f5649d3298cd98d8cc8e62d0cd10be0e82"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 11 15:53:17 2011 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 10:41:14 2012 -0700"
      },
      "message": "Make the linker relocatable.\n\nPreviously, the linker always loaded itself into the same\nlocation in memory, which inhibited the effectiveness of Android\u0027s\nASLR implementation. Modify the linker code so it can be relocatable\nand link itself at runtime.\n\nChange-Id: Ia80273d7a00ff648b4da545f4b69debee6343968\n"
    },
    {
      "commit": "e742c1f5649d3298cd98d8cc8e62d0cd10be0e82",
      "tree": "a54f7186b43128c8ef4d37bb17ea9ffe0dd9cac8",
      "parents": [
        "077891b199ad295017b32bc9cf1c542c1360b3b8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Nov 04 10:11:26 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 10:08:39 2012 -0700"
      },
      "message": "linker: set LOCAL_NO_CRT :\u003d true\n\nUse LOCAL_NO_CRT to prevent linking against crtbegin.o, rather than\nmessing with build rules. This also prevents linking against crtend.o,\nwhich isn\u0027t needed for the linker.\n\nChange-Id: I0c5b9999be7e8676560fe145c1c033ffce8db4d1\n"
    },
    {
      "commit": "077891b199ad295017b32bc9cf1c542c1360b3b8",
      "tree": "83dcb9018f6cfa9c7bea6a088748ade7cba3b975",
      "parents": [
        "6cdefd06c0386776405e4379af036722db5d60c0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 15 17:17:28 2011 +0100"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 09:58:33 2012 -0700"
      },
      "message": "linker: Fix the computation of si-\u003ebase\n\nThe computation of si-\u003ebase assumed that the first entry in the\nprogram header table is a PT_PHDR. This results in the dynamic\nlinker crashing with a SIGSEGV/MAPERR when trying to load some\nof the NDK unit test programs, which happen to have an EXIDX\nheader first, followed byu a PHDR one.\n\nThis patch fixes the computation by parsing the program header\ntable, looking explicitely for the PHDR entry. This fixes the\nload of the NDK unit test programs, and doesn\u0027t affect system\nlibraries.\n\nChange-Id: Id18ea6037dbe950b5abbbce816c2960321f0b81d\n"
    },
    {
      "commit": "6cdefd06c0386776405e4379af036722db5d60c0",
      "tree": "dfe595c687878807ae5e87794749560fe7dfd249",
      "parents": [
        "4f05d1c758ba141c617f25251a661ecb66627e9e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 20 14:57:56 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue May 15 09:56:32 2012 -0700"
      },
      "message": "Add linker support for PIE\n\nModify the dynamic linker so that executables can be loaded\nat locations other than 0x00000000.\n\nModify crtbegin* so that non-PIC compilant \"thumb interwork\nveneers\" are not created by the linker.\n\nBug: 5323301\nChange-Id: Iece0272e2b708c79034f302c20160e1fe9029588\n"
    },
    {
      "commit": "c425bc053285f9073277e9b03c795d2fd785b82f",
      "tree": "f34f15c554bf6ca67a78252e4ceeeee5c1c43ed6",
      "parents": [
        "3919b96eccb6d78f71f6d19b3ebfacec93cbca1f"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Mon May 14 01:42:12 2012 +0800"
      },
      "committer": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Mon May 14 01:42:12 2012 +0800"
      },
      "message": "bionic: add clean kernel header ucontext.h\n\nChange-Id: I34fd0b0147fa33fd74c13480bc11827634233a41\n"
    },
    {
      "commit": "1b56aaa659174c56cd602dc54f119b40c5ca1af6",
      "tree": "e6cf2bbb49a5879663c8af0eeb6536ce3a0f0097",
      "parents": [
        "83a38b8c4407ef38203fd103b0e2695037ec412c",
        "f2f7bf76dfd1d6014ed3baa1e27b221388e70a09"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 10 23:15:00 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 10 23:15:00 2012 -0700"
      },
      "message": "am f2f7bf76: am 4f05d1c7: Merge \"bionic/x86: Optimization for memcpy\"\n\n* commit \u0027f2f7bf76dfd1d6014ed3baa1e27b221388e70a09\u0027:\n  bionic/x86: Optimization for memcpy\n"
    },
    {
      "commit": "f2f7bf76dfd1d6014ed3baa1e27b221388e70a09",
      "tree": "9ff65c1ccaaa7b107756e7a203d04f8bcdac85d0",
      "parents": [
        "8034415ddd8404f8788199ed993af89692235dc5",
        "4f05d1c758ba141c617f25251a661ecb66627e9e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 10 21:31:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 10 21:31:48 2012 -0700"
      },
      "message": "am 4f05d1c7: Merge \"bionic/x86: Optimization for memcpy\"\n\n* commit \u00274f05d1c758ba141c617f25251a661ecb66627e9e\u0027:\n  bionic/x86: Optimization for memcpy\n"
    },
    {
      "commit": "4f05d1c758ba141c617f25251a661ecb66627e9e",
      "tree": "f96095e394863c80a61ecb25ef6083a1122c3c0b",
      "parents": [
        "edb7cad9b764f029c5faac2750f749d3d84bd86a",
        "c47703a521abab120100673d5281f71bc8ba9a49"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 10 10:14:43 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 10:14:44 2012 -0700"
      },
      "message": "Merge \"bionic/x86: Optimization for memcpy\""
    },
    {
      "commit": "83a38b8c4407ef38203fd103b0e2695037ec412c",
      "tree": "68f340bb7b22f74bcccfd2928c6f5798b9033924",
      "parents": [
        "537867aed889b6205805c03190ba655b8128fc19",
        "8034415ddd8404f8788199ed993af89692235dc5"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu May 10 09:24:46 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 10 09:24:46 2012 -0700"
      },
      "message": "am 8034415d: resolved conflicts for merge of 08e72d01 to jb-dev-plus-aosp\n\n* commit \u00278034415ddd8404f8788199ed993af89692235dc5\u0027:\n  bionic: add support for non-NEON memcpy() on NEON SoCs\n"
    },
    {
      "commit": "8034415ddd8404f8788199ed993af89692235dc5",
      "tree": "18342dbe06d1d56229eb1fb49e466b340989d331",
      "parents": [
        "804147cb7d533f5635da6adc28fbca1467a3078b",
        "08e72d0161e39e99ff1003bf1ce894f37d7b7eb4"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu May 10 09:19:59 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu May 10 09:19:59 2012 -0700"
      },
      "message": "resolved conflicts for merge of 08e72d01 to jb-dev-plus-aosp\n\nChange-Id: If00e354a5953ed54b31963d4f8ea77e1603c321e\n"
    },
    {
      "commit": "4dc3a7e1ed4dc9b76e47bc2a941c398dbebf0ef2",
      "tree": "87b0528fa23fc00d475454b3585beb4f1f3e7f20",
      "parents": [
        "08e72d0161e39e99ff1003bf1ce894f37d7b7eb4",
        "e2390bff2e4ef1b5b16d3650dd5c02e44a31e99f"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Thu May 10 06:59:27 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Thu May 10 06:59:27 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "537867aed889b6205805c03190ba655b8128fc19",
      "tree": "2c210b1b32d54ab2d9da86192a919ee700c5c97d",
      "parents": [
        "2a5fab9a5f39bce91a2cd631274cab372a003c3f",
        "804147cb7d533f5635da6adc28fbca1467a3078b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 20:12:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 20:12:40 2012 -0700"
      },
      "message": "am 804147cb: am edb7cad9: Merge \"Actually set the header guard in \"linux-syscalls.h\".\"\n\n* commit \u0027804147cb7d533f5635da6adc28fbca1467a3078b\u0027:\n  Actually set the header guard in \"linux-syscalls.h\".\n"
    },
    {
      "commit": "804147cb7d533f5635da6adc28fbca1467a3078b",
      "tree": "e8d5ccd983127300a139f1e7ec152cc8ed4ddc04",
      "parents": [
        "dbd5ecad26e39281bb83f97664bc32555c5c071a",
        "edb7cad9b764f029c5faac2750f749d3d84bd86a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 20:10:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 20:10:14 2012 -0700"
      },
      "message": "am edb7cad9: Merge \"Actually set the header guard in \"linux-syscalls.h\".\"\n\n* commit \u0027edb7cad9b764f029c5faac2750f749d3d84bd86a\u0027:\n  Actually set the header guard in \"linux-syscalls.h\".\n"
    },
    {
      "commit": "edb7cad9b764f029c5faac2750f749d3d84bd86a",
      "tree": "bbdbca506d1716bcf4d06b0f0b461e15366a3710",
      "parents": [
        "e54089079b123b207e171c14b2b0dca23c9386f3",
        "1928523c870f7acd7f34870f4bb4ab9c6215bf7a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 16:39:40 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 16:39:40 2012 -0700"
      },
      "message": "Merge \"Actually set the header guard in \"linux-syscalls.h\".\""
    },
    {
      "commit": "1928523c870f7acd7f34870f4bb4ab9c6215bf7a",
      "tree": "bbdbca506d1716bcf4d06b0f0b461e15366a3710",
      "parents": [
        "e54089079b123b207e171c14b2b0dca23c9386f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 16:34:11 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 16:34:11 2012 -0700"
      },
      "message": "Actually set the header guard in \"linux-syscalls.h\".\n\nSpotted while merging a MIPS change.\n\nChange-Id: I36fb5a07d0bba0c117e9fe9733957bd37ca4b4c0\n"
    },
    {
      "commit": "2a5fab9a5f39bce91a2cd631274cab372a003c3f",
      "tree": "b0637aabfd10b2d3478bc347e3c25f95d89efeb2",
      "parents": [
        "fd8bd2c43214baee1888884f302059db094fa824",
        "dbd5ecad26e39281bb83f97664bc32555c5c071a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 13:57:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 13:57:12 2012 -0700"
      },
      "message": "am dbd5ecad: resolved conflicts for merge of e5408907 to jb-dev-plus-aosp\n\n* commit \u0027dbd5ecad26e39281bb83f97664bc32555c5c071a\u0027:\n  [MIPS] Add support for MIPS syscalls\n"
    },
    {
      "commit": "dbd5ecad26e39281bb83f97664bc32555c5c071a",
      "tree": "1d652ad548a322f09cb77e8f5fce98eb7892fbd0",
      "parents": [
        "58a00b4977b6fa073a8f56d94d741b1e4cb49856",
        "e54089079b123b207e171c14b2b0dca23c9386f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 13:53:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 13:53:37 2012 -0700"
      },
      "message": "resolved conflicts for merge of e5408907 to jb-dev-plus-aosp\n\nChange-Id: If4c3f51bf87b28da8074be2e46ae772a374b266f\n"
    },
    {
      "commit": "08e72d0161e39e99ff1003bf1ce894f37d7b7eb4",
      "tree": "87b0528fa23fc00d475454b3585beb4f1f3e7f20",
      "parents": [
        "08b51e2c091d036c124259ae59eb7be6bbe346af"
      ],
      "author": {
        "name": "Prajakta Gudadhe",
        "email": "pgudadhe@nvidia.com",
        "time": "Mon May 07 14:17:44 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed May 09 13:34:31 2012 -0700"
      },
      "message": "bionic: add support for non-NEON memcpy() on NEON SoCs\n\nSome SoCs that support NEON nevertheless perform better with a non-NEON than a\nNEON memcpy().  This patch adds build variable ARCH_ARM_USE_NON_NEON_MEMCPY,\nwhich can be set in BoardConfig.mk.  When ARCH_ARM_USE_NON_NEON_MEMCPY is\ndefined, we compile in the non-NEON optimized memcpy() even if the SoC supports\nNEON.\n\nChange-Id: Ia0e5bee6bad5880ffc5ff8f34a1382d567546cf9\n"
    },
    {
      "commit": "fd8bd2c43214baee1888884f302059db094fa824",
      "tree": "a00ae538d55a2f5c2521a6da685fddf6cc615b78",
      "parents": [
        "22167aafba15f9a73860b6193bc22ce30f57dc92",
        "58a00b4977b6fa073a8f56d94d741b1e4cb49856"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:56:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 12:56:15 2012 -0700"
      },
      "message": "am 58a00b49: am 7eb1cc23: Merge \"bionic: allow the board to customize MALLOC_ALIGNMENT\"\n\n* commit \u002758a00b4977b6fa073a8f56d94d741b1e4cb49856\u0027:\n  bionic: allow the board to customize MALLOC_ALIGNMENT\n"
    },
    {
      "commit": "22167aafba15f9a73860b6193bc22ce30f57dc92",
      "tree": "12d4640e23cd6a980a09fdf3eff22d9a13d60725",
      "parents": [
        "7d4da4ea5cc6e5843a915e0e8b4f7c5fb8b0efb6",
        "eab2889e66d4fe03f3c5590d7e8b14e3777179ec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:56:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 12:56:15 2012 -0700"
      },
      "message": "am eab2889e: am fd955033: Merge \"pthread: Invalidate stale stack pointers on pthread_exit()\"\n\n* commit \u0027eab2889e66d4fe03f3c5590d7e8b14e3777179ec\u0027:\n  pthread: Invalidate stale stack pointers on pthread_exit()\n"
    },
    {
      "commit": "58a00b4977b6fa073a8f56d94d741b1e4cb49856",
      "tree": "738970d2e9978d20d72f405a38f9a0483eea709f",
      "parents": [
        "eab2889e66d4fe03f3c5590d7e8b14e3777179ec",
        "7eb1cc23f8976a2062ba0cf92f030216a8e64e60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:53:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 12:53:16 2012 -0700"
      },
      "message": "am 7eb1cc23: Merge \"bionic: allow the board to customize MALLOC_ALIGNMENT\"\n\n* commit \u00277eb1cc23f8976a2062ba0cf92f030216a8e64e60\u0027:\n  bionic: allow the board to customize MALLOC_ALIGNMENT\n"
    },
    {
      "commit": "eab2889e66d4fe03f3c5590d7e8b14e3777179ec",
      "tree": "e6bd597b9ce06b879ecc83b5b517c33ab5523184",
      "parents": [
        "57f8d4b5b5564fad7a9c7f8a6e5108f31c75056f",
        "fd95503347acba5c52d669a186ad2b161338a8a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:53:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 12:53:16 2012 -0700"
      },
      "message": "am fd955033: Merge \"pthread: Invalidate stale stack pointers on pthread_exit()\"\n\n* commit \u0027fd95503347acba5c52d669a186ad2b161338a8a7\u0027:\n  pthread: Invalidate stale stack pointers on pthread_exit()\n"
    },
    {
      "commit": "e54089079b123b207e171c14b2b0dca23c9386f3",
      "tree": "20c015513cd03630c3fe81ddf9b36625c3b26310",
      "parents": [
        "7eb1cc23f8976a2062ba0cf92f030216a8e64e60",
        "1fa0d849576555577ffd9675677a3c95f21b754e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 11:50:06 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 11:50:07 2012 -0700"
      },
      "message": "Merge \"[MIPS] Add support for MIPS syscalls\""
    },
    {
      "commit": "1fa0d849576555577ffd9675677a3c95f21b754e",
      "tree": "20c015513cd03630c3fe81ddf9b36625c3b26310",
      "parents": [
        "7eb1cc23f8976a2062ba0cf92f030216a8e64e60"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Fri Jan 27 17:51:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 11:46:28 2012 -0700"
      },
      "message": "[MIPS] Add support for MIPS syscalls\n\nChange-Id: I4deba67e15c865c4c2db03064c04098a09828ea6\nSigned-off-by: Raghu Gandham \u003craghu@mips.com\u003e\nSigned-off-by: Chris Dearman \u003cchris@mips.com\u003e\n"
    },
    {
      "commit": "7d4da4ea5cc6e5843a915e0e8b4f7c5fb8b0efb6",
      "tree": "cdcf060bc6ea334cb40cd7585032e99e67b66a1b",
      "parents": [
        "8e38a509d2d9dfae85901fb5522131357b625a33",
        "57f8d4b5b5564fad7a9c7f8a6e5108f31c75056f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 10:13:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 10:13:02 2012 -0700"
      },
      "message": "am 57f8d4b5: resolved conflicts for merge of 3919b96e to jb-dev-plus-aosp\n\n* commit \u002757f8d4b5b5564fad7a9c7f8a6e5108f31c75056f\u0027:\n  Implement the \"abort\" stub in assembly for ARM.\n"
    },
    {
      "commit": "8e38a509d2d9dfae85901fb5522131357b625a33",
      "tree": "cdcf060bc6ea334cb40cd7585032e99e67b66a1b",
      "parents": [
        "1d8b9ef92cac0cb2c7e4d2aa854f2c4ad2d870e8",
        "da0d8534f1a6273a383f1dc631fbaf032674bb4d"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed May 09 10:12:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 10:12:04 2012 -0700"
      },
      "message": "am da0d8534: am 08b51e2c: Implement the \"abort\" stub in assembly for ARM.\n\n* commit \u0027da0d8534f1a6273a383f1dc631fbaf032674bb4d\u0027:\n  Implement the \"abort\" stub in assembly for ARM.\n"
    }
  ],
  "next": "7eb1cc23f8976a2062ba0cf92f030216a8e64e60"
}
