)]}'
{
  "log": [
    {
      "commit": "e83c56dfbb6a9a61f0f18031620322af97e80162",
      "tree": "4d173357ad7cffa5e8e01066653afde7ed2473d5",
      "parents": [
        "334379dadaf481785909367cfc26600514b6119c"
      ],
      "author": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Dec 21 13:03:54 2011 +0400"
      },
      "committer": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jan 10 13:30:41 2012 +0400"
      },
      "message": "Execute .preinit_array before any shared object initialization functions.\n\nThis change makes linker handling of .preinit_array compliant with the\nSystem V ABI:\n\n\"These [pre-initialization] functions are executed after the dynamic linker has\nbuilt the process image and performed relocations but before any shared object\ninitialization functions.\"\nhttp://www.sco.com/developers/gabi/latest/ch5.dynamic.html#init_fini\n\nChange-Id: Iebfee22bb1ebe1d7c7e69cb4686e4ebae0dfc4bb\n"
    },
    {
      "commit": "253b7631606e47de720f38082394a5791fe4bf0d",
      "tree": "fd5a8b1aecf4768de9920d8285e7ef9e5d5f5e98",
      "parents": [
        "bec5dec947b1ad097c200888365a3ec61f9e7a28"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Dec 05 16:09:30 2011 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Dec 05 16:09:30 2011 -0800"
      },
      "message": "get rid of unused \"main\" function.\n\nconfuses gdb.\n\nChange-Id: I1c64357ce122fe5a2564ee96bb4caa32b733f6ea\n"
    },
    {
      "commit": "0e0bd586319b25e6e8e797b426a0adcce7612577",
      "tree": "19bb88e8516738784a57ee744c0041834f79c86b",
      "parents": [
        "e796d39d80d97ebe0e36476dff3189d155a99c98",
        "1ad08626a143dc684e92f56754c7176cc4914ce8"
      ],
      "author": {
        "name": "Zhenghua Wang",
        "email": "zhenghua.wang@intel.com",
        "time": "Wed Nov 30 10:50:57 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 10:50:57 2011 -0800"
      },
      "message": "am 1ad08626: am 897815a1: bionic: add machine type check\n\n* commit \u00271ad08626a143dc684e92f56754c7176cc4914ce8\u0027:\n  bionic: add machine type check\n"
    },
    {
      "commit": "897815a1feff230be3ea42655a77dcbb9a8dcca9",
      "tree": "e2cbe576afb2d97fbecaa59e1b4f8229d6aca00b",
      "parents": [
        "faa7c1d29f9ed0b3eb252bb0bd43e7596eed5d9c"
      ],
      "author": {
        "name": "Zhenghua Wang",
        "email": "zhenghua.wang@intel.com",
        "time": "Wed Oct 19 00:29:14 2011 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Nov 29 17:01:08 2011 -0800"
      },
      "message": "bionic: add machine type check\n\nandroid linker doesn\u0027t check machine type, it may load some\nlibraries which it doesn\u0027t support sometimes.\n\nAuthor: Zhenghua Wang \u003czhenghua.wang@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "7e2daefe6cec40e143f519c46aec877ee053b407",
      "tree": "5d7ddec5e8b274d86073673d5609fdc33b2e81fb",
      "parents": [
        "b38522983712432ba143c046343ba4fa01baf7c8",
        "468319ce4f3f7383d788b76c09cda2a405311f36"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Nov 16 10:43:56 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 16 10:43:56 2011 -0800"
      },
      "message": "Merge \"Make the linker relocatable.\""
    },
    {
      "commit": "8180b08fb2f27052f9df2ae4787bb5bf409f13e0",
      "tree": "edcb7742bc8dab8519c535849f21155799d78ef2",
      "parents": [
        "4b469eae40368913b2841b390dada6c58296c602"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 15 17:17:28 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 15 17:17:28 2011 +0100"
      },
      "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": "468319ce4f3f7383d788b76c09cda2a405311f36",
      "tree": "75be29e8c9b3f67fcfe51c8ec84fe1520282f8a9",
      "parents": [
        "0aa8289c6fddda6502fa97c8789341f1462c4224"
      ],
      "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": "Fri Nov 11 18:01:53 2011 -0800"
      },
      "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": "7939908c8310342c8e1b717c4599273a782b3c2b",
      "tree": "21934e597ce223a46480bd97db15e5302d3ffe1b",
      "parents": [
        "8e8a7b1f0fb9daf8d4434e18a9fff5c28f849cb8"
      ],
      "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": "Fri Nov 04 10:22:55 2011 -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": "8e8a7b1f0fb9daf8d4434e18a9fff5c28f849cb8",
      "tree": "94d387ed8c58504162550b1b2ae8c93f3dfffa30",
      "parents": [
        "994e9a5ed1c4e9f23a8bed79caea684eaa270027"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Nov 03 09:25:06 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Nov 03 09:25:06 2011 -0700"
      },
      "message": "Revert \"Make the linker relocatable.\"\n\nThis reverts commit 994e9a5ed1c4e9f23a8bed79caea684eaa270027.\n\nBroke x86 build.\n"
    },
    {
      "commit": "994e9a5ed1c4e9f23a8bed79caea684eaa270027",
      "tree": "0c860675ec867f02616a74cac6d2adfc58b07d10",
      "parents": [
        "29992cf9787496216440ed9c6c60dc40377aebe1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Nov 01 10:51:22 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Nov 02 16:20:06 2011 -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: I90d064743abdd29450ac0482ed28752b2196286c\n"
    },
    {
      "commit": "d9ad62343c2db6b66a5fa597c9b20a6faabd7a9a",
      "tree": "32c3b060bfdc7f792ddb0d0cf95007dc2e809137",
      "parents": [
        "b0641d4a446fa98c72fd6252e5a5ca7e44c41f1f"
      ],
      "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": "Sat Oct 22 13:19:23 2011 -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": "bda5da074eab4bdf374e1f4a19d480c62c72f5ff",
      "tree": "87a4c2fd35e6b071476d4a5fd02aca7c61c6e3f9",
      "parents": [
        "00964912745f0bb7e081f84ddcc74940f973149f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 27 22:30:19 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 28 12:17:34 2011 -0700"
      },
      "message": "fix prototype of dladdr\n\nthis breaks C++ source code in particular.\n\nChange-Id: Ie06b5d31d23b5455e6950c470adc64dd5e7784df\n"
    },
    {
      "commit": "96e5faccdc5616bb6d4a55d50a0e6148f99d943b",
      "tree": "c7e923bc66241f56fb6b83899f8362bbcb3cf562",
      "parents": [
        "09b36dc7a939c68b519fc0f46d6dad25c5f7637c",
        "91966c30efbdc7feecd6c45a46ab488e715c0a35"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Aug 30 09:50:54 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 30 09:50:54 2011 -0700"
      },
      "message": "am 91966c30: am 0acdbe08: am 89ea107d: Merge \"linker: allow debugging of constructors\"\n\n* commit \u002791966c30efbdc7feecd6c45a46ab488e715c0a35\u0027:\n  linker: allow debugging of constructors\n"
    },
    {
      "commit": "91966c30efbdc7feecd6c45a46ab488e715c0a35",
      "tree": "6cb4c9461f086e40650f43b6b9af670294e1457e",
      "parents": [
        "35aebd36c771f32656996b02595fad8953f29916",
        "0acdbe0892105d01a38de9baf4e34eef22b8259c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Mon Aug 29 18:01:05 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 29 18:01:05 2011 -0700"
      },
      "message": "am 0acdbe08: am 89ea107d: Merge \"linker: allow debugging of constructors\"\n\n* commit \u00270acdbe0892105d01a38de9baf4e34eef22b8259c\u0027:\n  linker: allow debugging of constructors\n"
    },
    {
      "commit": "38bccb271f121fc06eaa0d8fbd3c982bc44c36b7",
      "tree": "7e5a90cad5a6511a5261de19ffbba8f4d977a2e6",
      "parents": [
        "b0bbbff6060b382d2c4607f026e182adb67d0cc0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Aug 29 13:49:22 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Aug 29 13:52:18 2011 -0700"
      },
      "message": "linker.h: don\u0027t change the soinfo structure\n\nIn 48527c3f740a80b45acb5a6efc217f771ae50143, we modified the soinfo\nstructure to remove an unnecessary variable. However, third party\nprograms seem to be relying on the structure not changing.\nAdd a dummy variable back into place to preserve structure.\n\nBug: 5064106\n\nChange-Id: I3014dda1a46e624644b09e156c3e9381ba3729bd\n"
    },
    {
      "commit": "e5ea45547e131ae842b7c79cd45b164470137367",
      "tree": "02b0023da33cca526fb7b628944eb8e0fdc242b5",
      "parents": [
        "c57fd963817afa8894af49d6c98a80d8f9100937"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Sat Aug 27 10:21:01 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Sat Aug 27 10:21:01 2011 +0200"
      },
      "message": "linker: allow debugging of constructors\n\nThis patch allows the debugging of constructors in shared\nlibraries and executables. It does so by ensuring that the\ncorresponding binary is visible to gdb before running the\nconstructors.\n\nChange-Id: I0a3df726a04ad109944c834dcbba672b85d3991e\n"
    },
    {
      "commit": "ec92af8fe5d28c74f3505932135b1b8f3fbaad00",
      "tree": "0326a9673e052ad704caee0f5b085fa7d1499113",
      "parents": [
        "3a5d668e012eb27c33ecea7159d24209d45c5baa"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jul 29 12:46:34 2011 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Aug 04 14:48:15 2011 -0700"
      },
      "message": "Log signal info at time of receipt\n\nWhen a fatal signal is received, we now write a message to the log\nthat looks like this:\n\n  F/libc    ( 1540): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code\u003d1)\n\nThis is useful for debugging fatal signals that turn out not to be\nfatal.  This also changes the signal reset from SIG_IGN to SIG_DFL,\nso that future non-fatal fatal signals are fatal.\n\nThe code that blocked SIGUSR1 to avoid being interrupted by the GC\nhas been removed.\n\nAlso, fix minor issues in format_buffer().\n\nBug 5035703\n\nChange-Id: I8940af47297b5dcf3cf33537e3483ca5334ed565\n"
    },
    {
      "commit": "48527c3f740a80b45acb5a6efc217f771ae50143",
      "tree": "1c7afd06061ae1d488dd15c0c343e2c562b66ab5",
      "parents": [
        "de75876c3faa6e94ff80f3b9566d8e51b39700ed"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Jul 17 12:32:43 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Jul 17 12:32:43 2011 -0700"
      },
      "message": "Revert \"Revert \"linker: get rid of the buddy allocator\"\"\n\nThis reverts commit f9a9cda23a6afc1c2dfdfd624cde23b61941eb5e.\nThis revert is promised once b/5039224, b/5036755, b/5036610 are resolved.\n"
    },
    {
      "commit": "f9a9cda23a6afc1c2dfdfd624cde23b61941eb5e",
      "tree": "b0a12123fbfa78be81e8b9c9965e964f593606c0",
      "parents": [
        "7059b1f02ea9197728c851edd9ae0dd7688fa700"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jul 15 16:12:45 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jul 15 16:12:45 2011 -0700"
      },
      "message": "Revert \"linker: get rid of the buddy allocator\"\n\nThis reverts commit 7059b1f02ea9197728c851edd9ae0dd7688fa700.\nBug: 5036610\n"
    },
    {
      "commit": "7059b1f02ea9197728c851edd9ae0dd7688fa700",
      "tree": "ed51d4be5ce65e0cdb9d7d81dc3a68975bdd6e04",
      "parents": [
        "30e30acf106166bf65ad781bb4a63eead1d2c3a6"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jul 14 12:45:40 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jul 14 13:48:13 2011 -0700"
      },
      "message": "linker: get rid of the buddy allocator\n\nCurrently, the Android linker is placing shared libraries into\na well-known spot in memory.  This is interfering with the kernel\u0027s\nASLR support.\n\nThis change stops forcing non-prelinked libraries into a particular\naddress space.\n\nAlso, get rid of FLAG_PRELINKED.  As best I can tell, this flag\nis never used.\n\nChange-Id: I527af12fb54f821c2b5ca7693dbf63d022f8f4ae\n"
    },
    {
      "commit": "a903811819c06e4d6e9e27fcc9db3ab5459009bc",
      "tree": "5daa0f5b6b954f3a585834b975f89029dfaffd36",
      "parents": [
        "65fb884d28c26dc84d27bea6861b3a95a327db66"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jun 07 17:19:12 2011 +0200"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jun 07 17:19:12 2011 +0200"
      },
      "message": "Revert \"x86: Enable -fstack-protector\"\n\nThis reverts commit e0b4844a20ffd022a568abb4203b3f7c759c7ff5,\ncauses netd to crash.\n"
    },
    {
      "commit": "65fb884d28c26dc84d27bea6861b3a95a327db66",
      "tree": "37d78b4b6c57c5e7b13fa1f453c3472e57b729b7",
      "parents": [
        "1dae997ca4b67b40d2fe60ae65909403661db0af",
        "204d1f65dbfc6d5a14a90627d9d1efcfce8261ee"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Jun 06 12:57:08 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 06 12:57:08 2011 -0700"
      },
      "message": "am 204d1f65: am b2c7e0c1: Merge \"x86: Enable -fstack-protector\"\n\n* commit \u0027204d1f65dbfc6d5a14a90627d9d1efcfce8261ee\u0027:\n  x86: Enable -fstack-protector\n"
    },
    {
      "commit": "204d1f65dbfc6d5a14a90627d9d1efcfce8261ee",
      "tree": "6a2095b5e572f934e970149f8ee5f3e7a3887244",
      "parents": [
        "a57270b6ab2978764920ade17448f94875249001",
        "b2c7e0c18b7ab04cfe306277c79165de0612a2d1"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon Jun 06 11:32:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 06 11:32:49 2011 -0700"
      },
      "message": "am b2c7e0c1: Merge \"x86: Enable -fstack-protector\"\n\n* commit \u0027b2c7e0c18b7ab04cfe306277c79165de0612a2d1\u0027:\n  x86: Enable -fstack-protector\n"
    },
    {
      "commit": "e0b4844a20ffd022a568abb4203b3f7c759c7ff5",
      "tree": "6105d32ac5682170ae58b7a4aa141fd496135400",
      "parents": [
        "dc3bc87b43d0d73d89cca59692b80de878e11a5d"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 03 21:04:40 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue May 24 13:32:14 2011 -0700"
      },
      "message": "x86: Enable -fstack-protector\n\nChange-Id: Ib69514c3afcb4c1f5e5f3f8cd91acfd145a0866c\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "c2af2c075f15fa22f7ac8f6bb9d2aab1c3bd3b31",
      "tree": "889832826a1f863e8f02f74433cfcbbd21c7bd80",
      "parents": [
        "e6553716a037ea1ba096e20344951b5da039decc",
        "1af88c97432c88ec5b39d155e8c296d2a6eb1225"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon May 02 13:30:03 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 02 13:30:03 2011 -0700"
      },
      "message": "am 1af88c97: am d004dc99: Merge \"Use MAP_FIXED when allocating prelinked shared library regions\"\n\n* commit \u00271af88c97432c88ec5b39d155e8c296d2a6eb1225\u0027:\n  Use MAP_FIXED when allocating prelinked shared library regions\n"
    },
    {
      "commit": "1af88c97432c88ec5b39d155e8c296d2a6eb1225",
      "tree": "1d9be3b5daa03386ebc1b93af075600ec1ea1f28",
      "parents": [
        "4b3b89ec763899390b15461dd6617bb4ed6fe846",
        "d004dc9957cd8944d3db8ed92544c8ee65b117ca"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Mon May 02 12:34:57 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 02 12:34:57 2011 -0700"
      },
      "message": "am d004dc99: Merge \"Use MAP_FIXED when allocating prelinked shared library regions\"\n\n* commit \u0027d004dc9957cd8944d3db8ed92544c8ee65b117ca\u0027:\n  Use MAP_FIXED when allocating prelinked shared library regions\n"
    },
    {
      "commit": "368070454b1349d1fcf29a5d1eb51c869fb538f6",
      "tree": "2a02f5fea4a81195142bc37993a30123f97a2339",
      "parents": [
        "aa54339415ef74183645d7556a5b0d59f1135689"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:02:05 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:25:58 2011 -0700"
      },
      "message": "bionic: remove LOCAL_PRELINK_MODULE\n\nChange-Id: Iad65ae18446b20d2aace7b8fe19b1a032b616e9c\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "db4bce05493d09a20f1ebc0ab68c82e906327afd",
      "tree": "9aae682c98e2c49e6480b9329b16d5153c030334",
      "parents": [
        "fed58049d50083e4c960d89f4bbd516a181c2d18"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris@mips.com",
        "time": "Thu Mar 10 10:48:14 2011 -0800"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Mar 10 10:48:14 2011 -0800"
      },
      "message": "Use MAP_FIXED when allocating prelinked shared library regions\n\nPrelinked libraries must be mapped to a fixed address. MAP_FIXED is ignored\nfor non-prelinked libraries (si-\u003ebase\u003d\u003d0)\n\nSigned-off-by: Raghu Gandham \u003craghu@mips.com\u003e\n"
    },
    {
      "commit": "81d79f9fb38d9ae8a5711f5774aa5a1516f6cc26",
      "tree": "1f7155f97090e9f31235dca71d44ad7a651ea920",
      "parents": [
        "b6a562e3895c51741748e90d56d822b0a9d36710",
        "962dcb22218a1a6d4ebd05e4fc4a69875d037234"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu Mar 10 01:55:35 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 10 01:55:35 2011 -0800"
      },
      "message": "am 962dcb22: am fed58049: Merge \"libc: Fix PTHREAD_RWLOCK_INITIALIZER\"\n\n* commit \u0027962dcb22218a1a6d4ebd05e4fc4a69875d037234\u0027:\n  libc: Fix PTHREAD_RWLOCK_INITIALIZER\n  Proxy getnameinfo through netd\n  Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n  Convert cname lenght before use\n"
    },
    {
      "commit": "48e1feaa9d7d7f36b5eba25baccd99a56adf9b64",
      "tree": "cebfb3b8bbea895cf8f56246b8c60839cd8c50db",
      "parents": [
        "69d6c2ccd943f43e87445d00e96eb98deb690ea1"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Thu Jan 27 10:23:16 2011 -0800"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Feb 16 17:50:23 2011 -0800"
      },
      "message": "Updated gcc 4.4.3 IA toolchain doesn\u0027t require the .ctors list\n\nChange-Id: Ia840a19a45257128eccdcf25d105f500f2d90741\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "72f9a5c374bf559e9c69a62c1d95304f913ef6b2",
      "tree": "9f5e358d45bd2e60589960f031afdaf715a68556",
      "parents": [
        "9c2e97e9d3510f49c6f2697ef47b85f92df524dd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 10 17:02:21 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 10 17:02:23 2011 -0800"
      },
      "message": "Increase SO_MAX to accomodate valgrind\n\nsystem_server loads up 87 shared libraries upon start. Running under\nvalgrind pushes this just over the edge of 96. Increase SO_MAX to 128 to\ngive us some more headroom.\n\nChange-Id: Iadceb14ab6d9621bdccd292570d50867828057d9\n"
    },
    {
      "commit": "b67c1bacd0fc27c26cc3ec19bd2c9ded19cecd08",
      "tree": "446ced2759cce0516da0fab0b3494f5144af8e80",
      "parents": [
        "56faf66fd7a90ea11835f8f0c9a7d6d8b350a09d"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Thu Jan 20 20:44:44 2011 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jan 21 21:15:08 2011 +0100"
      },
      "message": "Fix bug in linker environment variable lookup.\n\nThe linker_env_get() method that is used to match an environment\nvariable was failing due to an incorrect equality check.\n\nThis  was introduced in git change\nbe5755969d70668bbab0e0c0ed75ebd867189723.\n\nThe bug was causing the linker to ignore environment variables such\nas LD_LIBRARY_PATH. This issue also affects the linker_env_secure()\npath that removes unsafe environment variables, since it would\nnot match any in the unsecure variable list.\n\nChange-Id: I14228df9252010e9fb4c1862bed5735f23e97aec\n"
    },
    {
      "commit": "b3cdf7fef86eb17dba5640e9a1b158510326b9b7",
      "tree": "7ed182ecc915e07d317f0890fc890e4c41b28626",
      "parents": [
        "441d7608b76613c3fb99867eed97277c237eb381"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Thu Jan 20 20:44:44 2011 -0800"
      },
      "committer": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Thu Jan 20 20:44:44 2011 -0800"
      },
      "message": "Fix bug in linker environment variable lookup.\n\nThe linker_env_get() method that is used to match an environment\nvariable was failing due to an incorrect equality check.\n\nThis  was introduced in git change\nbe5755969d70668bbab0e0c0ed75ebd867189723.\n\nThe bug was causing the linker to ignore environment variables such\nas LD_LIBRARY_PATH. This issue also affects the linker_env_secure()\npath that removes unsafe environment variables, since it would\nnot match any in the unsecure variable list.\n\nChange-Id: I169024de4a005321e768accd38246fc1d717271b\n"
    },
    {
      "commit": "1f353828c3535c03899d6cc08d26f85fc688622e",
      "tree": "d8af3c1a3e808fa44986b11e2b05aef2bad5b946",
      "parents": [
        "f4e10b721ee281f3e90736364ac15864d0a3adf7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 18 09:36:38 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 18 09:36:38 2011 -0800"
      },
      "message": "Fix typos\n\nChange-Id: Ia02baba53be7034903f325258205441e5c193f7b\n"
    },
    {
      "commit": "be5755969d70668bbab0e0c0ed75ebd867189723",
      "tree": "ae81e0c297f23cf98a5492dc9de7073746cbce8a",
      "parents": [
        "d4a65d28d4dd7dab4ad66d2d65903296d183d47c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 16 19:52:02 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 20 12:06:45 2010 +0100"
      },
      "message": "linker: Remove unsecure env. variable for setuid programs.\n\nThis removes several unsecure environment variables from the\nenvironment block when the program being loaded is setuid. The\nlist of env. variables is the same than what GLibc uses at this\npoint.\n\nChange-Id: I456d3ea0880fe0d4de0d3c5dd51871dd36e87fd6\n"
    },
    {
      "commit": "fedbcde6ef552e84bf7ce7598bca7dddf1722d6a",
      "tree": "5e8eb35552984b9eab610fc717ae4638966cf90e",
      "parents": [
        "cb99ab98c99291a6c90043009ab8d64ec8058f9d"
      ],
      "author": {
        "name": "Brian Swetland",
        "email": "swetland@google.com",
        "time": "Sun Sep 19 03:39:13 2010 -0700"
      },
      "committer": {
        "name": "Brian Swetland",
        "email": "swetland@google.com",
        "time": "Sun Sep 19 03:39:13 2010 -0700"
      },
      "message": "add /vendor support\n\n- add /vendor/lib to front of default library search path\n- remove long-obsolete /lib from default library search path\n\nChange-Id: I7d33bf899be018e7cc4c213d5790bbd991023a62\n"
    },
    {
      "commit": "a716190241da07f42cf874b04bf044261f36381c",
      "tree": "6fb82682708512110ac0118603056ba94cc1c351",
      "parents": [
        "52e7d3d91ab6a5bab77c5dfb1ed47381fd52f9ba"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Aug 17 15:56:40 2010 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Aug 17 15:57:55 2010 -0700"
      },
      "message": "linker: fix overwriting the real linker error string\n\nChange-Id: Ia9165fd9aa1951b2bb81d0ac8f5bb3057aded8bd\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "6774809b6249d9d4efd982b6e3ca377c84482d9a",
      "tree": "2604b1ff619cc69aea02ac37c39c61d9b0c8c7c2",
      "parents": [
        "9d1f5afc34efb8c10672f765704941036fd40da8"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 21 16:18:21 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 23 12:16:15 2010 -0700"
      },
      "message": "linker: Support dlopen(NULL, ...) properly.\n\nChange-Id: Icba37823cb350c34848cc466d144c3a0af87c94c\n"
    },
    {
      "commit": "8bff9a31aa13ff83ccaedd54ebda96770e6cf910",
      "tree": "b198c6d9535c41554620f5464e24017b066d35fb",
      "parents": [
        "038fbae518e904c7aba64779714a22dbeeb90887"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jun 10 18:29:33 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jun 10 22:58:22 2010 -0700"
      },
      "message": "linker: remove libcutils dependency by re-implementing simpler socket_local_client.\n\nChange-Id: I87f29fd59454d713b9ddfb13e6cf114822f52efd\n"
    },
    {
      "commit": "f4394458301909a83b7ee7f3b436c038b7235ea8",
      "tree": "e2647ebf9aa7491c5cb3a96fb00af61ab89f1eae",
      "parents": [
        "bb7928ccdae0cc5766f290e18ab14b07d80c6912"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 12 10:05:59 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 12 10:05:59 2010 -0700"
      },
      "message": "fix build\n\nChange-Id: I243c98e20a250e0d40d481f16af481ff070219fd\n"
    },
    {
      "commit": "bb7928ccdae0cc5766f290e18ab14b07d80c6912",
      "tree": "76468dcde3da9d42bdc3a2146463583e65593205",
      "parents": [
        "f450fa5f991af3c0814f96265cb3b2aafdce2309",
        "c3581dc78a51180d3550d0d04596657cb2db852c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 12 09:22:50 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 12 09:22:50 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Iecfd2bd3069f70bbe508042cc249fcf7ff24800d\n"
    },
    {
      "commit": "4fd42c1dc002fa19349fa0d4ef97757eb1815032",
      "tree": "76b67f6f6f087f8aced1da660754f7f3086c184f",
      "parents": [
        "d791da79432064bc954fedf8d4e4394aaafefe75"
      ],
      "author": {
        "name": "Matt Fischer",
        "email": "matt.fischer@garmin.com",
        "time": "Thu Dec 31 12:09:10 2009 -0600"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 10 15:09:19 2010 -0700"
      },
      "message": "Added support for LD_PRELOAD\n\nThe LD_PRELOAD environment variable allows the user to specify a list of\nlibraries which should be unconditionally loaded before any others.  This\nmakes possible some useful tricks, such as library interposers.\n\nChange-Id: I433d775ab08ef63a5fbe7b21f87a5642954fc32f\n"
    },
    {
      "commit": "5ef5272be985dfdeafa86077c306f6b64d334240",
      "tree": "bad11901e83b227c7bac5e773ad6e06cf4eda089",
      "parents": [
        "95faecefdea0f55edafdba09052a904df7cd2405",
        "1698d9ebfc7e27271852a1fdf305a2ac37b3ebe4"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 21 09:10:08 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 21 09:10:08 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I518bb4ae9d7269957365561d4d609f22cde519db\n"
    },
    {
      "commit": "1698d9ebfc7e27271852a1fdf305a2ac37b3ebe4",
      "tree": "0affbb40a92f4391db962805610d78e71ac5f043",
      "parents": [
        "350bb359fa5e31e3dfae8be6b1ce7ee3495f0da7"
      ],
      "author": {
        "name": "Matt Fischer",
        "email": "matt.fischer@garmin.com",
        "time": "Thu Dec 31 12:17:56 2009 -0600"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Thu Apr 08 10:14:47 2010 -0500"
      },
      "message": "Fixed support for RTLD_NEXT in dlsym()\n\nThe previous implementation of this flag was broken--it behaved identically\nto RTLD_DEFAULT.  This adds a proper implementation, which examines the address\nof the calling function, and uses it to determine which library to use to begin\nthe symbol search process.\n\nChange-Id: I2ad2b46363f68932af63a3828a22f9c7987eea67\n"
    },
    {
      "commit": "d04672513351af4eb302692e0f39fd5bd17191cb",
      "tree": "0ea1cef08bcfedafa705e3374863d51ec69080e1",
      "parents": [
        "5ffedb22c856ae5731324b43832ab3f5309683f2",
        "4ad72f89b12fe0157074a253190f6aa2cbfe15ac"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 31 14:19:51 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 31 14:19:51 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I483fedf77d978b1c6e52d73eebc14f011bb9f809\n"
    },
    {
      "commit": "3cab22c8cf0dcf30718a1452ce9cbb637876cea3",
      "tree": "119a7ffa38d392147813a75a6af3247dd688917a",
      "parents": [
        "58f0326362ca0f5fc17cbc19fd9217cabf0d93dd"
      ],
      "author": {
        "name": "Min-su, Kim",
        "email": "min-su.kim@windriver.com",
        "time": "Tue Jan 19 10:05:33 2010 +0900"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "brucex.j.beare@intel.com",
        "time": "Mon Mar 29 15:43:09 2010 -0700"
      },
      "message": "linker: fix the undefined weak symbols issue\n"
    },
    {
      "commit": "377d4c979dee3dcb5929e8f7a68a53c2407259ab",
      "tree": "1783fe0272f1437faabfe8365e615696eb8d374c",
      "parents": [
        "709a898de82128c065381e258e8e71f0a55df976",
        "1825fb5d5f214849e39d95660795a0d3633f8eeb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 22 15:55:09 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I70266ee8c520b216773f267e46c8273d2334c31d\n"
    },
    {
      "commit": "e2a8b1fd19fb3a8ead2ba28ddba27be19fa978b5",
      "tree": "e5448ec45187a37dbade76fcf10115f91135a8bd",
      "parents": [
        "ede2e75f4942293342dfb8dfd4751369600ed8f1"
      ],
      "author": {
        "name": "Matt Fischer",
        "email": "matt.fischer@garmin.com",
        "time": "Thu Dec 31 12:17:40 2009 -0600"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Wed Mar 17 16:11:37 2010 -0500"
      },
      "message": "Added support for dladdr()\n\ndladdr() is a GNU extension function, which allows the caller to retrieve\nsymbol information for a specified memory address.  It is useful for things\nlike generating backtrace information at runtime.\n\nChange-Id: I3a1def1a6c9c666d93e1e97b7d260dfa5b9b79a9\n"
    },
    {
      "commit": "5c734644eebf8d01be1e86cbe20a111a5c5a2738",
      "tree": "5e442dc0157ec487f51a65f85f87fe2bd66fd0cf",
      "parents": [
        "e100f52f4ad1b70762bbcc5ad9828bd258917ee5"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jan 20 12:36:51 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Feb 11 10:46:48 2010 -0800"
      },
      "message": "Fix debug output in the dynamic linker.\n\nThis provides a mini-printf implementation that reduces the\nsize of the dynamic linker by 25 KB, by preventing the drag of\nformatting-related routines from the C library.\n\nAlso allow traces to be sent to the log, instead of stdout.\n\nNOTE: You now need to modify Android.mk to enable/disable debug\n      output.\n"
    },
    {
      "commit": "e100f52f4ad1b70762bbcc5ad9828bd258917ee5",
      "tree": "084f45cde2c5f3650370130e37a063af2ed1b968",
      "parents": [
        "16f7d16f9f0273bed58f5e8c74eb0ee11eaa8037"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Feb 10 15:19:37 2010 -0800"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Feb 10 19:14:35 2010 -0800"
      },
      "message": "bionic/linker: rename ba_prelink to ba_nonprelink\n\n-- fixes b/2432550\n-- ba_prelink is used to manage non-prelinked libraries, hence ba_nonprelink is\n   a more appropriate name for it\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "90f82e5868de5a30d4842951b80be0c8a9cedc6d",
      "tree": "d49763a7763995fd772560acffd074ee1dc7710e",
      "parents": [
        "1a2917ca954f575cc9698c99e54bd93087793c8f"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Mon Jan 25 11:09:31 2010 -0800"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Mon Jan 25 11:09:31 2010 -0800"
      },
      "message": "Fix typo in a comment.\n"
    },
    {
      "commit": "1a2917ca954f575cc9698c99e54bd93087793c8f",
      "tree": "4c923a2e53ca9e6114a1ec0f71be905ceae4f019",
      "parents": [
        "d6bf8f92298aa46ee045f30ed5146eb05af16ced"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Mon Jan 25 10:24:50 2010 -0800"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Mon Jan 25 10:24:50 2010 -0800"
      },
      "message": "Align TEXT section to 4K boundary so that we can use both ld and gold.\n"
    },
    {
      "commit": "278d157f437c0357b7c6d1fb1cbffbc0a72bb788",
      "tree": "27434e29fe0dc3fca4ea006fe50c7951762aa7ea",
      "parents": [
        "0b5db51ea6d9c0b877d2ce26440d963760c38dfe"
      ],
      "author": {
        "name": "Gary King",
        "email": "gking@nvidia.com",
        "time": "Tue Sep 29 16:12:31 2009 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 12 17:37:44 2010 -0800"
      },
      "message": "Use correct TLS codepath for linker\n\nReplicate ARM libc build\u0027s HAVE_ARM_TLS_REGISTER preprocessor definition\nlogic, to ensure that the runtime linker uses the correct codepath for\naccessing the TLS address\n"
    },
    {
      "commit": "a3de55c83185ba3d1355f20b48ef9ec3fc4c281d",
      "tree": "646efa88e98233342cc102298b8dcb64606c569d",
      "parents": [
        "157cdf42d7e2cded9a4461fd105b98b2db1a13ac",
        "fe62de1ad036a1417df44b7b1a7c65cc79dc7091"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 02 11:17:29 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 02 11:17:29 2009 -0800"
      },
      "message": "am fe62de1a: Add support for R_ARM_REL32 to the dynamic linker.\n\nMerge commit \u0027fe62de1ad036a1417df44b7b1a7c65cc79dc7091\u0027 into eclair-plus-aosp\n\n* commit \u0027fe62de1ad036a1417df44b7b1a7c65cc79dc7091\u0027:\n  Add support for R_ARM_REL32 to the dynamic linker.\n"
    },
    {
      "commit": "fe62de1ad036a1417df44b7b1a7c65cc79dc7091",
      "tree": "0c55fda658ee39f7f64ead6ec98a690379a8fe42",
      "parents": [
        "cd5df2d92c3adeac41e27aab5ba0f999c753c4c4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 02 10:54:53 2009 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Dec 02 10:54:53 2009 -0800"
      },
      "message": "Add support for R_ARM_REL32 to the dynamic linker.\n\nMerged from eclair-mr2\n"
    },
    {
      "commit": "83d3d7491a2d3870efd8d5be9281ee942f5fad07",
      "tree": "9a82b536c53a2d45e6f23aa827b3bd1822cc502b",
      "parents": [
        "0493b61c1a23cbcf0edb4667ff84ab0152327cb2",
        "ebf3ea006e5367fff93d2491eec24c4b1a633805"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 17 16:16:52 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 16:16:52 2009 -0800"
      },
      "message": "am ebf3ea00: am 34ea5117: Add support for R_ARM_REL32 to the dynamic linker.\n\nMerge commit \u0027ebf3ea006e5367fff93d2491eec24c4b1a633805\u0027\n\n* commit \u0027ebf3ea006e5367fff93d2491eec24c4b1a633805\u0027:\n  Add support for R_ARM_REL32 to the dynamic linker.\n"
    },
    {
      "commit": "ebf3ea006e5367fff93d2491eec24c4b1a633805",
      "tree": "e7e84eed54db64bd5a48b153f0c5174583782230",
      "parents": [
        "a7f8f312e0791509b2382f90861fe9f373bd4f0b",
        "34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 17 16:06:26 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 16:06:26 2009 -0800"
      },
      "message": "am 34ea5117: Add support for R_ARM_REL32 to the dynamic linker.\n\nMerge commit \u002734ea5117dbeba41ae5dfdfb2c2ec8cae23388b66\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002734ea5117dbeba41ae5dfdfb2c2ec8cae23388b66\u0027:\n  Add support for R_ARM_REL32 to the dynamic linker.\n"
    },
    {
      "commit": "34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66",
      "tree": "aea1d56c13025d3961830eb6fb698d1419f3e06f",
      "parents": [
        "e8870ffc965d553a885f63b26e724da279728b72"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 17 14:56:26 2009 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 17 14:56:26 2009 -0800"
      },
      "message": "Add support for R_ARM_REL32 to the dynamic linker.\n"
    },
    {
      "commit": "b152dde4cafffb3b37ca60c589f71110ca988c79",
      "tree": "7b871a83d4a01c87c58bb62bccb67ea5d2b10af3",
      "parents": [
        "2d04a7847747a3f9b7ad36988486ef775cae1965",
        "83362689f5b1f6393d376d242fe29541b63ead2d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 09 12:07:54 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 09 12:07:54 2009 -0800"
      },
      "message": "am 83362689: merge from open-source master\n\nMerge commit \u002783362689f5b1f6393d376d242fe29541b63ead2d\u0027\n\n* commit \u002783362689f5b1f6393d376d242fe29541b63ead2d\u0027:\n  added and modified linker to support SuperH architecture\n  Add the BSD sys_signame array.\n  added and modified bionic code to support SuperH architecture\n"
    },
    {
      "commit": "83362689f5b1f6393d376d242fe29541b63ead2d",
      "tree": "729a4fc7fd44630738510d1477e968cb7ec0fa3f",
      "parents": [
        "ecac54db21256952b4b4a9c6f17604ec31743183",
        "ad13c57298e57d33c130fb03a2c6494da573408c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 09 08:04:48 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Nov 09 08:04:48 2009 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "10be95cffc7f2b02d8baac55a9cf1b16d8afbadb",
      "tree": "372359d357eb01bd7c3160cb20339c20c317804f",
      "parents": [
        "47c5e30b61bad28731e4acff2d690a4207801f27",
        "ad13c57298e57d33c130fb03a2c6494da573408c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 08 16:09:17 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 08 16:09:17 2009 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "ad13c57298e57d33c130fb03a2c6494da573408c",
      "tree": "9c3977ff3a5ffdd64e333ebd198717e0aee99bba",
      "parents": [
        "92b10af793da235659198cf38ff2e0237c181058"
      ],
      "author": {
        "name": "Shin-ichiro KAWASAKI",
        "email": "shinichiro.kawasaki.mg@hitachi.com",
        "time": "Fri Nov 06 10:36:37 2009 +0900"
      },
      "committer": {
        "name": "Tony Sim",
        "email": "sim.chinyeow@renesas.com",
        "time": "Fri Nov 06 10:36:37 2009 +0900"
      },
      "message": "added and modified linker to support SuperH architecture\n"
    },
    {
      "commit": "e823807dc2fb5f2d44cd00d75c10ddd9f5e93bea",
      "tree": "006f003f90243f149adc3ea65788e6a585352083",
      "parents": [
        "f1729553e310b55eef8ee784c95cd9dd8ffd24fd"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Mon Oct 26 12:05:23 2009 -0700"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Mon Oct 26 12:05:23 2009 -0700"
      },
      "message": "Add weak symbol support.  Also fix a bug caused by a typo.\n"
    },
    {
      "commit": "f1729553e310b55eef8ee784c95cd9dd8ffd24fd",
      "tree": "28887d23e21d7933e8af752973cb68bc8a11ee6f",
      "parents": [
        "943043583a8f3a8de34970b550a3e8e8a6fb0fb8",
        "9e78de3e3c90ec3c2970431d8eae7378fdc0dac6"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 23 18:58:19 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 23 18:58:19 2009 -0700"
      },
      "message": "am 9e78de3e: am 70bba516: am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair\n\nMerge commit \u00279e78de3e3c90ec3c2970431d8eae7378fdc0dac6\u0027\n\n* commit \u00279e78de3e3c90ec3c2970431d8eae7378fdc0dac6\u0027:\n  bionic/linker: make the buddy allocator compute max_order on its own\n  bionic/linker: change the buddy allocator to take a handle to the managed area\n"
    },
    {
      "commit": "9e78de3e3c90ec3c2970431d8eae7378fdc0dac6",
      "tree": "b1f655666740f367cac99df6748d543e6f09dc35",
      "parents": [
        "05324b36c1372cba6348ad5c75a96b3adfc4d9fe",
        "70bba5160f83ecd6251c4539f747ae39e9ed469c"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 23 18:49:14 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 23 18:49:14 2009 -0700"
      },
      "message": "am 70bba516: am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair\n\nMerge commit \u002770bba5160f83ecd6251c4539f747ae39e9ed469c\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002770bba5160f83ecd6251c4539f747ae39e9ed469c\u0027:\n  bionic/linker: make the buddy allocator compute max_order on its own\n  bionic/linker: change the buddy allocator to take a handle to the managed area\n"
    },
    {
      "commit": "53b32f8b7ef0ae319cc048ce1f0a81a4be8bce64",
      "tree": "fb106097c697cd46ebac8f1e892b61a243487546",
      "parents": [
        "0703efeae25523e8f870cbf70f57b9ecc1186ac7",
        "763ac28357f604e0e4196e0a7ad5b0f5cdcf274a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 23 18:39:30 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 23 18:39:30 2009 -0700"
      },
      "message": "am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair\n\nMerge commit \u0027763ac28357f604e0e4196e0a7ad5b0f5cdcf274a\u0027 into eclair-plus-aosp\n\n* commit \u0027763ac28357f604e0e4196e0a7ad5b0f5cdcf274a\u0027:\n  bionic/linker: make the buddy allocator compute max_order on its own\n  bionic/linker: change the buddy allocator to take a handle to the managed area\n"
    },
    {
      "commit": "70bba5160f83ecd6251c4539f747ae39e9ed469c",
      "tree": "9828661181ec5a7f7c5e7a29aa112c0b3879f6d8",
      "parents": [
        "18af6efefae2f0dd5d918f16636fb2b401e09a56",
        "763ac28357f604e0e4196e0a7ad5b0f5cdcf274a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 23 18:38:35 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 23 18:38:35 2009 -0700"
      },
      "message": "am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair\n\nMerge commit \u0027763ac28357f604e0e4196e0a7ad5b0f5cdcf274a\u0027 into eclair-mr2\n\n* commit \u0027763ac28357f604e0e4196e0a7ad5b0f5cdcf274a\u0027:\n  bionic/linker: make the buddy allocator compute max_order on its own\n  bionic/linker: change the buddy allocator to take a handle to the managed area\n"
    },
    {
      "commit": "943043583a8f3a8de34970b550a3e8e8a6fb0fb8",
      "tree": "a7dba5c8a0d6d531005dc0d75e07048327a513f1",
      "parents": [
        "a6210dc5105d5e4c4924a36efebd2d1a524cf3e0"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Fri Oct 23 18:11:40 2009 -0700"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Fri Oct 23 18:11:40 2009 -0700"
      },
      "message": "Clean up some linker code.\n"
    },
    {
      "commit": "bb9eedeff4ddc4550991eb4511003bda8672d6c4",
      "tree": "8d3769c0545e031410ba3fa16394a3057016efb8",
      "parents": [
        "af7315acf6a3a5ac329b04cb543b5d8a95dc26f1"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Oct 19 14:25:17 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Oct 19 18:10:35 2009 -0700"
      },
      "message": "bionic/linker: make the buddy allocator compute max_order on its own\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "af7315acf6a3a5ac329b04cb543b5d8a95dc26f1",
      "tree": "4a948c38f280ca63a66e06af4f5ea3731775b603",
      "parents": [
        "7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 16 17:50:42 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Oct 19 18:10:35 2009 -0700"
      },
      "message": "bionic/linker: change the buddy allocator to take a handle to the managed area\n\n-- rename struct ba_info to struct ba\n-- move the static ba descriptor from ba.c to linker.c and rename it ba_prelink\n-- ba_init, ba_allocate, ba_free, ba_start_addr, and ba_len all take a pointer\n   to struct ba\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "b3cfdb6220b9ce8ec6d25984ef086fa06f157236",
      "tree": "ce8a902b7a6b2b253e1fc2a976ae6f254b2d00b8",
      "parents": [
        "5d436ddcae640e2b2af30a5654bec33273b7a9c3",
        "eeaf6544b676f68ccdd70a3fa78f44789a1bf69c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 19 15:03:31 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 15:03:31 2009 -0700"
      },
      "message": "am eeaf6544: Merge change I7934a799 into eclair-mr2\n\nMerge commit \u0027eeaf6544b676f68ccdd70a3fa78f44789a1bf69c\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027eeaf6544b676f68ccdd70a3fa78f44789a1bf69c\u0027:\n  Prevent spurious EINTR to freeze process debugging\n"
    },
    {
      "commit": "eeaf6544b676f68ccdd70a3fa78f44789a1bf69c",
      "tree": "9e1eb84727088df32f50a63c5f31855693cb2d82",
      "parents": [
        "8213d5c3c072b23f5cc1922d232efe7338091d9b",
        "7934a799e1041db9cff9753f4d87d7361f644450"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 17:55:08 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 17:55:08 2009 -0400"
      },
      "message": "Merge change I7934a799 into eclair-mr2\n\n* changes:\n  Prevent spurious EINTR to freeze process debugging\n"
    },
    {
      "commit": "5d436ddcae640e2b2af30a5654bec33273b7a9c3",
      "tree": "790abda1151b91710b6ae7d85396055854cae337",
      "parents": [
        "b63e4e88b0d13afa431864190b3515a549c16d85",
        "8213d5c3c072b23f5cc1922d232efe7338091d9b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 16 12:46:51 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 16 12:46:51 2009 -0700"
      },
      "message": "am 8213d5c3: am ff7b46b8: Merge change I3c998761 into eclair\n\nMerge commit \u00278213d5c3c072b23f5cc1922d232efe7338091d9b\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00278213d5c3c072b23f5cc1922d232efe7338091d9b\u0027:\n  Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.\n"
    },
    {
      "commit": "cd230988286eb6aa395e051345052773f1943294",
      "tree": "85d4905b542cc668d66f689d2390bd296f888153",
      "parents": [
        "73981476a389847e8537cca37503c43e107fadc9",
        "ff7b46b87c4d85881d88c2105a94be6c6accb628"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 16 12:36:27 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 16 12:36:27 2009 -0700"
      },
      "message": "am ff7b46b8: Merge change I3c998761 into eclair\n\nMerge commit \u0027ff7b46b87c4d85881d88c2105a94be6c6accb628\u0027 into eclair-plus-aosp\n\n* commit \u0027ff7b46b87c4d85881d88c2105a94be6c6accb628\u0027:\n  Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.\n"
    },
    {
      "commit": "7934a799e1041db9cff9753f4d87d7361f644450",
      "tree": "a2cfc78cfaf898f993a1ef9c2556b3cd012dd0fc",
      "parents": [
        "5f32207a3db0bea3ca1c7f4b2b563c11b895f276"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 16 12:13:34 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 16 12:14:04 2009 -0700"
      },
      "message": "Prevent spurious EINTR to freeze process debugging\n"
    },
    {
      "commit": "73981476a389847e8537cca37503c43e107fadc9",
      "tree": "a60ed9cc386c36ef6937974e0a729c5d429c57b5",
      "parents": [
        "60c221ccfaf67bdd9cadfd151d0bad9d3f8482ce",
        "4e30c09e57a0351daff70f6657794569445be21c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 14 08:18:23 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Oct 14 08:18:23 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "3c99876116356cae09231189f09e5a679fd0d2fd",
      "tree": "d02eb77976ec9143a153546f78b0dcac93f036ae",
      "parents": [
        "9a96aaa8efcde245ac4ba23228b8a8d61e008d91"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Oct 13 16:55:18 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Oct 13 16:55:18 2009 -0700"
      },
      "message": "Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.\n\nThe lowest bit of the symbol\u0027s value should be ignored when looking at UNDEF symbols\nfor correctness. It is used as an ARM/Thumb flag by the linker.\n"
    },
    {
      "commit": "4a9afcb10151b083cd2d75253385615f459172ed",
      "tree": "8879a1126fce0aa369e13b8db7b8dae0290145ae",
      "parents": [
        "9ea64da6c511e8f9f4edae4c10c20879957631ab"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 11:43:20 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 14:33:46 2009 -0700"
      },
      "message": "bionic/linker: allow resolving of symbols from library back to executable\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "9ea64da6c511e8f9f4edae4c10c20879957631ab",
      "tree": "11adf7525e859f87f980f7836936c30570213446",
      "parents": [
        "6ed80c8814db9eed1fb687be22322e38dc46a2fb"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Sep 28 18:21:30 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 14:33:46 2009 -0700"
      },
      "message": "bionic/linker: change lookup() to return soinfo, not base\n"
    },
    {
      "commit": "6ed80c8814db9eed1fb687be22322e38dc46a2fb",
      "tree": "372d444d6f7cba193fdc41ed2fbdf95a0682adc8",
      "parents": [
        "ee223d02d96815c989b62043ff1237b1cd4e14b0"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Sep 28 19:38:04 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 14:33:46 2009 -0700"
      },
      "message": "Revert \"Revert \"bionic/linker: fix symbol lookup during relocations\"\"\n\nThis reverts commit 33acbf0719c4f3db059bc9e1f52cf554a5d0295f.\n"
    },
    {
      "commit": "33acbf0719c4f3db059bc9e1f52cf554a5d0295f",
      "tree": "914ca013c2b4979b97c639c301a70c41a4785a4a",
      "parents": [
        "4e5a965d6a4c4a0c7977cc9b90755027130c1e46"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 22:04:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 22:04:15 2009 -0700"
      },
      "message": "Revert \"bionic/linker: fix symbol lookup during relocations\"\n\nThis reverts commit 8d0c0334f1106d36f2fd5c1cf6d5dc75a4b88850.\n"
    },
    {
      "commit": "8d0c0334f1106d36f2fd5c1cf6d5dc75a4b88850",
      "tree": "4f0b57fa3743ec253faac9ced5e4d9586920a633",
      "parents": [
        "bc10cd2900cdb7fed077163b6a33e0f8572b2b19"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Sep 24 17:14:33 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sun Sep 27 17:18:06 2009 -0700"
      },
      "message": "bionic/linker: fix symbol lookup during relocations\n\nWhen resolving relocations while loading a library, the linker used to find\nsymbols by looking them up in the list of all linked libraries for the current\nprocess, as opposed to following just the library\u0027s DT_NEEDED entries.  This\ncan cause a problem where the symbol is picked up from the wrong library.\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "5cf640c926e7d7b79934c97226433a3dc448e1eb",
      "tree": "f4346697a0b0028d23b0f021af7da201ddf1660f",
      "parents": [
        "76ec6891e2bc18c9e12cd2f567358bb817b24cff"
      ],
      "author": {
        "name": "Thinker K.F Li",
        "email": "thinker@branda.to",
        "time": "Fri Jul 03 19:40:32 2009 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 15 17:05:55 2009 -0700"
      },
      "message": "Fill l_ld of linkmaps with value from soinfo::dynamic.\n\nGDB will try to read l_ld of linkmaps and compare the value to vma of\n.dynamic sections from shared objects.  Since linker does not assign l_ld,\nGDB will complain about and re-compute l_addr from l_ld.  And, GDB will get a\nwrong value.\n"
    },
    {
      "commit": "30eb40241c612a7ddbd21c4daa4e7bbfd9d5e89f",
      "tree": "12f9c24ab25aa130fe55b9a64b6139e8346343eb",
      "parents": [
        "ac68b70ed95db959274106d268deca1d303fa15c"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Aug 13 16:05:30 2009 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Aug 13 16:18:07 2009 -0700"
      },
      "message": "bionic: linker: add error message if link failed due to previous error\n\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "fde8642fc43bdd224e43e5ee9583a49a758fb03c",
      "tree": "0c722ced21166d5b6a79cc7c0aa14d073934bdd4",
      "parents": [
        "22b5eb858dcbb537f2522ad920ca793348d574a2"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Jul 28 20:28:19 2009 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Jul 28 20:36:47 2009 -0700"
      },
      "message": "bionic/linker: keep track of opened libraries by basename\n\nPrior to this change, the dynamic loader kept track of opened libraries\neither by their base name (i.e., libfoo.so instead of /system/lib/libfoo.so)\nwhen the shared library was loaded through the DT_NEEDED tag in an ELF header,\nor by whatever name was passed to dlopen(). This created a number of problems,\namong which:\n\n1. dlopen(\"libfoo.so\") and dlopen(\"/path/to/libfoo.so\") would open the same\nlibrary twice;\n2. dlopen(\"/path/to/libfoo.so\") and then dlopen(\"libbar.so\"), where libbar.so\ndepends on libfoo.so, would open libfoo.so twice.\n\nThis patch makes the dynamic loader keep track of each loaded library by\nbasename, which resolves the above ambiguity. The patch also enforces\nlibrary lookup by base name, which means that it will refuse to load another\nlibrary that has the same name.\n\nThanks for the inspiration Iliyan.\n\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\nCc: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "d00d23a9d4598108d7f498291b35c7730e48cf5c",
      "tree": "1655df6502c82285d5c850c19becead637b10fb9",
      "parents": [
        "39f3745cf30efe38482ffead1c32f4e62f6fe32e"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Jul 22 17:06:11 2009 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Jul 22 17:10:39 2009 -0700"
      },
      "message": "linker: remove newlines from DL_ERR so that dlerror works correctly\n\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "ef0bd1857041ffde069cf52138aaf22c1af7130e",
      "tree": "c61b6ca4b286821ff473533183eba42e7da234a3",
      "parents": [
        "348065586a2e6154d6cff36afa6e00af6bbc5918"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 17 17:55:01 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 17 17:55:01 2009 +0200"
      },
      "message": "Pass the elfdata pointer in a slot of the temporary TLS area.\n\nThis is needed to properly initialize the C runtime when libc.so\nis loaded by the dynamic linker.\n\nMove the temporary TLS setup before the first system call, just\nin case something really horrible happens, we won\u0027t crash when\ntrying to write an error code in \u0027errno\u0027\n\nRemove the broken TLS_SLOT_THREAD_ID setup. First, this slot\nshould normally receive the address of a pthread_internal_t,\nnot a kernel thread identifier. Second, it is never used by\nthe linker anyway.\n\nAlso remove an obsolete comment.\n"
    },
    {
      "commit": "bc3a5c26f1b9cf29da6abfc3e197258ef4c03362",
      "tree": "5044c0ebf690e102eef4842d94e81a8d8baf6388",
      "parents": [
        "0353195f344666256dba474a15c9ba22cf0cccc9"
      ],
      "author": {
        "name": "David Bartley",
        "email": "dtb@google.com",
        "time": "Tue Jun 02 18:27:28 2009 -0700"
      },
      "committer": {
        "name": "David Bartley",
        "email": "dtb@google.com",
        "time": "Mon Jun 15 21:36:03 2009 -0700"
      },
      "message": "Add LD_LIBRARY_PATH support to bionic\u0027s linker\n"
    },
    {
      "commit": "0353195f344666256dba474a15c9ba22cf0cccc9",
      "tree": "79ce08ac573c6c5bd7d7a65f7fdc24237c00452a",
      "parents": [
        "2e85579c34047c305caf15fb0ebe02bf3d001d0e"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri May 29 17:30:25 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Jun 01 12:55:48 2009 -0700"
      },
      "message": "linker: Give more context for failures during library dependency resolution.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "2e85579c34047c305caf15fb0ebe02bf3d001d0e",
      "tree": "0fb54231b64d077f94b567acfbae3ecaaec672bc",
      "parents": [
        "49e55332784b82f7112ee7c1ea3c176c9dc32d7a"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed May 20 18:28:09 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed May 27 20:16:19 2009 -0700"
      },
      "message": "linker: Make the errors reported by dlopen/dlsym be more useful.\n\nChanged it so that when the linker generates error messages, they are\nscribbled away into a buffer that dlfcn and friends can read from.\n\nSince the error messages are generetad with snprintf, and snprintf\nMAY call malloc during some code paths, we now link against a version\nof libc that does not contain malloc/free/realloc/calloc. We then define\nmalloc and friends in the dynamic loader, and make them abort() if they\nare ever called.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "8215679b355efe3829bab571bd566dc818ea4ccc",
      "tree": "2f69e2ec0c696c19668f8f05ec91b50ad24ebecd",
      "parents": [
        "e5446feb21a991426fb683d077a1a8ca5831ac0f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 18 14:37:41 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue May 26 11:16:28 2009 +0200"
      },
      "message": "Fix the parsing of the .fini_array in the dynamic linker (it should happen in reverse order).\nAlso add a small design overview document for the linker. The latter contains details on\nhow the initialization/finalization is supposed to work.\n"
    },
    {
      "commit": "d1b40d8c69dfca94185ea9231f6cb16f70c02e39",
      "tree": "51044c6b31d8fc43a588c5350ca966d3bccf4ba7",
      "parents": [
        "5e563700380eade647f347669ea61dbb0ede9814"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue May 12 10:59:09 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue May 12 10:59:09 2009 -0700"
      },
      "message": "linker: Compute symbol name before lookup so we can also use it for error msg\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "ba52b3092f361580a5dea7ab8fbe2a227b55ee43",
      "tree": "471f6de66b75e1659a425a5c6b136fae9763a290",
      "parents": [
        "d2c9dcc9265e66f6432ec39dcc7378b944449e60"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 30 20:37:36 2009 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 30 20:37:36 2009 -0700"
      },
      "message": "Increase the limit of loaded shared libraries from 64 to 96 This change is required for OpenCORE 2.0\nThis is the same as Change 71 in master branch.\n"
    },
    {
      "commit": "5e12d7ec70472659623d2e4552a670d8877f2423",
      "tree": "74046e2007c6720be54a9224cfe4510db4c92be2",
      "parents": [
        "78bf5fc677a2d25d50598b01781eafacdb5e6afe"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "",
        "time": "Tue Mar 24 19:02:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:02:00 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140950,140950\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "a799b53f10e5a6fd51fef4436cfb7ec99836a516",
      "tree": "9f06bfedddae069d0388739f5f2779472da5dc7f",
      "parents": [
        "fe5745033a4f397c62a4e00efd9257ac9f83755c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:03:51 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:03:51 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@132589\n"
    },
    {
      "commit": "fe5745033a4f397c62a4e00efd9257ac9f83755c",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "7d9dcdc82a871926e5e3a27143908fa3f4181b5f"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:14 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:14 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@137055\n"
    },
    {
      "commit": "6f04a0f4c72acff80dad04828cb69ef67fa609d1",
      "tree": "915db7d93cb742f72b5d3819e69f48cb29c40a15",
      "parents": [
        "2489551343aa89fc539f369f7689c941b78c08d1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132276\n"
    },
    {
      "commit": "9f65adf2ba3bb15feb8b7a7b3eef788df3fd270e",
      "tree": "c06064fc9022ef63a40f83a91292103784f49780",
      "parents": [
        "d37527501c85edcb3a6a7c8a0b6297d52d434897"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    }
  ],
  "next": "e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2"
}
