)]}'
{
  "log": [
    {
      "commit": "88b44feb7dd792348f2755c30cc7356509929917",
      "tree": "e85951ef0b7be046877854edf3bb12276f7dea86",
      "parents": [
        "b732b71dc10158a4c1d8ee2235d357f8694030ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 01 11:41:36 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 01 11:41:36 2014 -0700"
      },
      "message": "Remove duplicate line in linker/Android.mk.\n\nChange-Id: I7b4d5fcdfacc840bbda4ffd965e5315c4651cfe5\n"
    },
    {
      "commit": "c19972a4ca24512e017ad501bf446a489d4236e7",
      "tree": "62d71d795cf59048390e5d549f99d9591425074d",
      "parents": [
        "6617fb73b6393f727cfc88a650c7e033ced053ce",
        "812fd4263a005b88f3b4222baa910114f938d594"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sun Mar 30 22:24:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 30 22:24:22 2014 +0000"
      },
      "message": "Merge \"Use __unused instead of UNUSED in linker.cpp\""
    },
    {
      "commit": "406a75d371361388fe179950a3de459ae7e16f33",
      "tree": "cf1dccdf8d680d0203d693340c61cebb7d8973c9",
      "parents": [
        "bc475bc8d1d202baa48f6c9829fe1cced9122332"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 27 10:45:57 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 27 10:45:57 2014 -0700"
      },
      "message": "linker: use LOCAL_MULTILIB :\u003d both style to build linker64\n\nUse LOCAL_MODULE_STEM_32 and LOCAL_MODULE_STEM_64 to build\nlinker and linker64.  Set LOCAL_MULTILIB :\u003d both for consistency\nwith other rules of this type, although LOCAL_MULTILIB :\u003d both is\nonly consumed by executable.mk which is skipped by\nlinker_executable.mk.  Duplicate the necessary new parts of\nexecutable.mk.\n\nChange-Id: I888e87cf125cfbcfdee6a55b6377d8bc5ce402ea\n"
    },
    {
      "commit": "812fd4263a005b88f3b4222baa910114f938d594",
      "tree": "26f12089692ad78fdcfc6c1a4f24e7e8bd55c433",
      "parents": [
        "f71c0e75e0d041c80e4dc6900e2c2283e5d55ce2"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Tue Mar 25 22:53:56 2014 +0800"
      },
      "committer": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Tue Mar 25 22:54:19 2014 +0800"
      },
      "message": "Use __unused instead of UNUSED in linker.cpp\n\n - sys/cdefs.h already define __unused, just use it\n   instead of define a local one.\n\nChange-Id: Iacf3da9193e65e1f34b12760b28bcb64b67cb790\n"
    },
    {
      "commit": "851e68a2402fa414544e66650e09dfdaac813e51",
      "tree": "baec353c8e9b6f24e885459b20a8748fc5c39468",
      "parents": [
        "22c6b7ffd36fe8b34b677eea94d00aef2624e4e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 19 16:53:20 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 20 13:51:26 2014 -0800"
      },
      "message": "Unify our assembler macros.\n\nOur \u003cmachine/asm.h\u003e files were modified from upstream, to the extent\nthat no architecture was actually using the upstream ENTRY or END macros,\nassuming that architecture even had such a macro upstream. This patch moves\neveryone to the same macros, with just a few tweaks remaining in the\n\u003cmachine/asm.h\u003e files, which no one should now use directly.\n\nI\u0027ve removed most of the unused cruft from the \u003cmachine/asm.h\u003e files, though\nthere\u0027s still rather a lot in the mips/mips64 ones.\n\nBug: 12229603\nChange-Id: I2fff287dc571ac1087abe9070362fb9420d85d6d\n"
    },
    {
      "commit": "006f9ad8910c945cd50e54f6c34d8c27b11c1193",
      "tree": "233f6c8e419d899cf32a33e682969afbc8ad6ee6",
      "parents": [
        "3623d80675e5321b92c2d88a7b7ec6bd998d81d5"
      ],
      "author": {
        "name": "Benjamin Adolphi",
        "email": "b.adolphi@gmail.com",
        "time": "Wed Feb 19 00:50:32 2014 +0100"
      },
      "committer": {
        "name": "Benjamin Adolphi",
        "email": "b.adolphi@gmail.com",
        "time": "Wed Feb 19 00:50:32 2014 +0100"
      },
      "message": "Linker writes to wrong memory location when processing DT_MIPS_RLD_MAP\n\nWhen bionic\u0027s dynamic linker processes the .dynamic section of a MIPS ELF binary and encounters the DT_MIPS_RLD_MAP dynamic array tag, it calculates the address of where to write a pointer to the _r_debug structure. The current implementation simply reads the value given in the d_ptr field and writes the pointer address to that location. However, this value has to be adjusted to reflect the real load address of the binary. Otherwise the linker will write to a faulty location possibly resulting in a crash when linking a MIPS binary that includes DT_MIPS_RLD_MAP. This change corrects that problem.\n\nChange-Id: I1a91874f7ab47289001fe72d9016660c14c70362\nSigned-off-by: Benjamin Adolphi \u003cb.adolphi@gmail.com\u003e\n"
    },
    {
      "commit": "36ee4ab243427ce20549914fef85b5ca2ac75cda",
      "tree": "f4b3212da944cf29b3ae8f3d15969a8ffc19c0a2",
      "parents": [
        "fadc8a7777ca304c8a7de066a94effd3a5471ee6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 12 21:58:47 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 13 11:18:47 2014 -0800"
      },
      "message": "build linker and linker64 on 64-bit architectures\n\nChange-Id: I400bbaf5a779fc427de4c3d86c66548b0179b10d\n"
    },
    {
      "commit": "c62b8a4d3f73b070099d9aa594a261b5250d6cc9",
      "tree": "10875d7828fe4fa26c4e96b828f82d6601ba0683",
      "parents": [
        "7b3876e2516fd55d61a48cb23a7080ea88b9617b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 17:17:41 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 12 17:17:41 2014 -0800"
      },
      "message": "Remove unused variables not spotted by GCC.\n\nChange-Id: I49a16096bc0f41f3ad0007249161e8bdfcf3438c\n"
    },
    {
      "commit": "faf05bacd45719291b371f24b1b89543881b37f6",
      "tree": "5ea47b891e7b65d94af4bd558d2a1817247e74de",
      "parents": [
        "577fce0108feda58296beacfbc0ada4a6d6afbc2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 16:59:37 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 17:33:49 2014 -0800"
      },
      "message": "Clean up all the lint cpplint can find in the dynamic linker.\n\nChange-Id: Ic9ee7153817c22a252cc4b309283e355b623cab9\n"
    },
    {
      "commit": "9918665a45095ad135576f005c0e5307feb366a1",
      "tree": "fdef48d2a8c74a2bc8dfd17fd25527ed98b96b3a",
      "parents": [
        "c856baeeade96c167400f179a86d50c426e81788"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Thu Feb 06 20:36:51 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 11 15:33:14 2014 -0800"
      },
      "message": "[MIPS64] Dynamic linker\n\nChange-Id: I937c7c776cae3d66e214798d5217a922cd106bfc\nSigned-off-by: Chris Dearman \u003cchris.dearman@imgtec.com\u003e\nSigned-off-by: Duane Sand \u003cduane.sand@imgtec.com\u003e\n"
    },
    {
      "commit": "0266ae5f884d72da58f33a072e865ba131234a5e",
      "tree": "48763b706806f544b1dec0ef98261bed6f21dee2",
      "parents": [
        "eeb9a9f59a58a2f042e8f6fd1a4911ae92ac5493"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 17:46:57 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 18:22:24 2014 -0800"
      },
      "message": "Switch \u003celf.h\u003e over to linux uapi under the covers.\n\nRemove the linker\u0027s reliance on BSD cruft and use the glibc-style\nElfW macro. (Other code too, but the linker contains the majority\nof the code that needs to work for Elf32 and Elf64.)\n\nAll platforms need dl_iterate_phdr_static, so it doesn\u0027t make sense\nto have that part of the per-architecture configuration.\n\nBug: 12476126\nChange-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487\n"
    },
    {
      "commit": "3a9c5d66dc8d41272f51482b713717af7049697e",
      "tree": "7e2ee59d14ba82f70ed233195ccb04ae5f2afa34",
      "parents": [
        "e74fc3a64fe9296813e5bd867d0c66bd8213be6a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 13:31:13 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 10 13:31:13 2014 -0800"
      },
      "message": "Fix \u003clink.h\u003e.\n\nAlso move some of the stuff that should be in \u003clink.h\u003e out of the\nprivate \"linker.h\", to make it clearer that these are public API\nknown to gdb that we can\u0027t change.\n\nBug: 12554197\nChange-Id: I830e1260d3d8b833ed99bc1518f1c6b6102be8af\n"
    },
    {
      "commit": "62e9c76ee89effccfbbff08167dbaa5e52618be3",
      "tree": "af80ac9463eedc3be56f41dc73444e11194e9dbf",
      "parents": [
        "4939d6d8424d47e19823e5dfcfc5474e8a7e77b8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 31 17:27:00 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 31 17:27:00 2014 -0800"
      },
      "message": "Clean up debugger.cpp slightly.\n\nIn particular, don\u0027t do weird things with \u0027int tid\u0027.\n\nChange-Id: I0fd9158a452967163508ada8987de9494ad5f9af\n"
    },
    {
      "commit": "f858bd1c6eec7eb6bbfc8844e0de096be011e99a",
      "tree": "0173c1b1d3505506ba015ba68d10467bf2ef7558",
      "parents": [
        "a14df4a98ad1c4018f63fea358dd30c7e6b51858"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 31 16:56:39 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 31 16:56:39 2014 -0800"
      },
      "message": "LP64 binaries should talk to debuggerd64.\n\nChange-Id: I7eb30f9d04f80b6b45d3148757970d3f1117493c\n"
    },
    {
      "commit": "5ceb889ac9a36e74e4e00c34c57cbb58d73e228c",
      "tree": "81ab70dc777702a065d8755615ada8d860e3a3ca",
      "parents": [
        "4449fe9675671264746af4876bd959af8e9fee82"
      ],
      "author": {
        "name": "Weiwu Chen",
        "email": "weiwu.chen@intel.com",
        "time": "Tue Dec 03 19:47:34 2013 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 11:54:01 2014 -0800"
      },
      "message": "bionic: Change the type of soinfo\u0027s size to size_t\n\nSome system functions like munmap expect soinfo\u0027s size to be size_t, but currently\nit is unsigned. Change it to size_t to fit 64bit\u0027s portability.\n\nChange-Id: I0bf6d522b38b0cd9bf1db05b004b5326217412a2\nSigned-off-by: Weiwu Chen \u003cweiwu.chen@intel.com\u003e\nSigned-off-by: Qiming Shi \u003cqiming.shi@intel.com\u003e\n"
    },
    {
      "commit": "4041b13c204fc1e2fc799b67ce15347d9ad6c8d9",
      "tree": "9b7fca4c64464af7e1c0292ecc41f84054055dba",
      "parents": [
        "6f23ce36ce580da3c1419856c71d7426dd64748d"
      ],
      "author": {
        "name": "Qiming Shi",
        "email": "qiming.shi@intel.com",
        "time": "Sun Jan 26 16:49:39 2014 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 27 14:51:07 2014 -0800"
      },
      "message": "bionic: Do not use magic number for portability\n\nDo not use the magic number 0xFFFFFFFFU to represent the max value of an address\nas it\u0027s not correct on 64bit platform. We should use UINTPTR_MAX instead.\n\nChange-Id: I1fc6f5864a651b2eddea2333cb0788f9d9223270\nSigned-off-by: Qiming Shi \u003cqiming.shi@intel.com\u003e\nSigned-off-by: Weiwu Chen \u003cweiwu.chen@intel.com\u003e\n"
    },
    {
      "commit": "d1973ca51325393f304e82a4d79874f33e54ac16",
      "tree": "75a657d895a41aa4855a06ef1e0e986c963e0eef",
      "parents": [
        "5b4884fac90753c68d401de73036c2de919958eb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 21 19:50:58 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jan 23 18:35:39 2014 -0800"
      },
      "message": "bionic: rename aarch64 target to arm64\n\nRename aarch64 build targets to arm64.  The gcc toolchain is still\naarch64.\n\nChange-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3\n"
    },
    {
      "commit": "a4aafd156068ee174012f28cd894dbecf0e4ab90",
      "tree": "d55b5e77d1fa752db1f374d0baec3afc9c15ecd5",
      "parents": [
        "ebc1c76d77dd604f16126e66b2171e8ee6fa1d22"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 13 16:37:47 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 13 16:37:47 2014 -0800"
      },
      "message": "Make it possible for code to query the dynamic linker\u0027s default search path.\n\nWe\u0027re not going to have init(1) set LD_LIBRARY_PATH globally on 64-bit.\nThis patch makes it possible for libnativehelper to set LD_LIBRARY_PATH\nin each Java VM (to support System.loadLibrary) without also hard-coding\nthe default search path there.\n\nChange-Id: If13961fae976e06dd80d5ef522f31e8b7eb01154\n"
    },
    {
      "commit": "7ff07ad3213f3342678d2d03047b2e51d8b81748",
      "tree": "74819bfc221a6137a2ab09b62f61dbcfac49358e",
      "parents": [
        "ae189740de6b03f06a06214122183a3774f5cb62"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 13 13:33:01 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 13 13:33:01 2014 -0800"
      },
      "message": "Add -Bsymbolic to the ld flags when linking the dynamic linker.\n\nWe don\u0027t need this on architectures other than aarch64, and\nwe\u0027re still investigating why we need it on aarch64, but it\ndoesn\u0027t seem unreasonable to have this flag set when linking\nthe dynamic linker anyway; it\u0027s clearly the intended behavior.\n\nChange-Id: I4fa1b4ae543a818979934bf818eabac03bb9154f\n"
    },
    {
      "commit": "1272dbd1d76c979358fff3beae9de0c1462345af",
      "tree": "e7fce5f420577ae6b471d75bb8a1f8c5864c51f8",
      "parents": [
        "6114ffb3e16c114c728c31b472263660e2d2210c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 15:45:07 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 15:45:07 2014 -0800"
      },
      "message": "Add NT_PRSTATUS to \u003celf.h\u003e.\n\nNeeded by aarch64.\n\nBug: 12476126\nChange-Id: I7764664459a06cf4f2a60e707bd968d321a78430\n"
    },
    {
      "commit": "54a7494f17f80d6c548a58434bcb5579a26cc125",
      "tree": "90ae0521ac8dd5efe335fb0fca18a3ea87c47ef9",
      "parents": [
        "10cd709ff92015a4c2306cdbd6e65260909bffb2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 03 16:40:37 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 07 13:46:11 2014 -0800"
      },
      "message": "Regenerate the NOTICE files.\n\nAlso standardize the orthography in a few places to reduce near-duplicates\nin the NOTICE files.\n\nChange-Id: I347c75e817be61ec1b9c5b4b96226feedc8d09ab\n"
    },
    {
      "commit": "b93702a0463fa0b87bf25d7ae9bdb09a35ea6a50",
      "tree": "a7c1748571da9d9831ca5f785a161186a1886b4f",
      "parents": [
        "6d929061c36e7929c61c8e6331315b86fe86976f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Dec 21 16:07:45 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Dec 22 19:38:42 2013 +0000"
      },
      "message": "Improve dynamic linker diagnostics for internal errors.\n\nIf the linker can\u0027t resolve its own internal references to symbols,\nwe currently exit silently (albeit with EXIT_FAILURE). Not very helpful.\n\nChange-Id: I1614fc970dee4560b38832ede1987b65a8e53a1e"
    },
    {
      "commit": "e365f9d6543bc6607864ef61257505239dde15d1",
      "tree": "ecc2e3605bc26aeb9b16a1d3adbceb70da40ba19",
      "parents": [
        "2e3826c08171ead1647c800a0a6d9c333d335762"
      ],
      "author": {
        "name": "Marcus Oakland",
        "email": "marcus.oakland@arm.com",
        "time": "Thu Oct 10 15:19:31 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 17 15:02:43 2013 -0800"
      },
      "message": "AArch64: Linker64 support for AArch64\n\nAddition of support for AArch64 in the linker64 target.\n\nChange-Id: I8dfd9711278f6706063e91f626b6007ea7a3dd6e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "5407eed84b98056a5af7d95007d8d511ebad60e4",
      "tree": "4d3d1319713ade70f6ae29026b06a97b915af7c0",
      "parents": [
        "38fcbbb35a40c46e96b4df10d670d1c132910854"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Mon Dec 09 18:08:48 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 11:18:46 2013 -0800"
      },
      "message": "Fix debugging issues in vdso handling\n\nUnder valgrind ehdr_vdso is null and causing segfault.\nAdding debug info for vdso producing plenty of issues on debugging\nthrough gdbserver, removing it. It doesn\u0027t seem it should be here.\n\nUnwinding through vdso test still works.\n\nChange-Id: I1a7e233c493f2268d725fa8d7279822d07decc49\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "ebd506c69e12b6dcaf5be94cc8ed1b53af299f9f",
      "tree": "79913ebffdfcc7a4b20d78a477b9d69340d477f9",
      "parents": [
        "cc9b7456b66b7c7c218a9d1f00d7aef1f5ecf409"
      ],
      "author": {
        "name": "Sergey Melnikov",
        "email": "sergey.melnikov@intel.com",
        "time": "Thu Oct 31 18:02:12 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 15:06:20 2013 -0700"
      },
      "message": "Fix linker crashes during unknown symbol lookup\n\nIntegration of kernel VDSO into internal bionic data structures using\ncommon functions.\nFix for dl_iterate_phdr function: the function provides incorrect\naddress of object in case of nonzero virtual and base addresses.\nLocation in address space of a particular program header should be\ncalculated using the formula:  addr \u003d base_addr + virtual_addr.\n\nSigned-off-by: Sergey Melnikov \u003csergey.melnikov@intel.com\u003e\nChange-Id: Ie2ab4257fd456242aab8afed0bd5bd6b29e81d6d\n"
    },
    {
      "commit": "74ce45972d88604aa759040cfd2570674cfb439d",
      "tree": "375a1f8838e1f1aada4bfda687c453a4a0213658",
      "parents": [
        "486d99f050a609c16641614edc72d71746ce859a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:59:41 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:59:41 2013 -0700"
      },
      "message": "Update \u003csys/exec_elf.h\u003e to get the DF_* flags.\n\nChange-Id: Ia9e785f6b95122f94ee3b01a312db1d5bb91a72e\n"
    },
    {
      "commit": "e4d792adb8d6f9228b9ac9dc1ad7f43b271f085f",
      "tree": "2424b3c3c863e813eb56bdb2d21aac571cc7f30b",
      "parents": [
        "3ec5d8954b41f2e51d6ff7851533f1db1eba9a09"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:19:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 14:34:56 2013 -0700"
      },
      "message": "Don\u0027t allow text relocations on 64-bit.\n\nI\u0027ve also updated our \u003csys/exec_elf.h\u003e to match upstream.\n\nChange-Id: I52f9fce3167541811208d273ff23ceaa112f7135\n"
    },
    {
      "commit": "4eeb1f12a8b63afc0d0ad4d466b16fbffb21cd5a",
      "tree": "618c8b7133f3602880e0a4c8285c34e7552a0a45",
      "parents": [
        "93fcfeee2b4de4c65fc766bf10601397592341d7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 25 17:38:02 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 11:02:49 2013 -0700"
      },
      "message": "Clean up linker architecture macros.\n\nWe don\u0027t need our own architecture macros; the standard ones will do.\n\nThis patch also fixes some __x86_64__ tests to be USE_RELA tests instead,\nbecause they\u0027re not actually x86_64-specific.\n\nI\u0027ve cleaned up architecture-specific code slightly so where possible\nall the code corresponding to a particular architecture is together.\n\nThis patch also fixes a bug in LP64 DT_PLTGOT handling, which should be\nan error rather than falling through into DT_DEBUG! There was another #ifdef\nbug where we\u0027d only report unexpected DT_ entries on MIPS.\n\nChange-Id: Id1d04e372611f641c1aa278a18e379f28af9eaf5\n"
    },
    {
      "commit": "60d5b06eceeef9a21168f1c9f5264e4fc8ed0566",
      "tree": "f139d1c5942f572f46ca2674d4d2f980eead845a",
      "parents": [
        "bbefbf1a75052e4c887309299fb4532705aa843d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 23:18:13 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 23:18:13 2013 -0700"
      },
      "message": "Simplify defining the linker architecture macro.\n\nLike the new TODO says, though, do we need this at all? Wouldn\u0027t we be better\noff just using the regular architecture-specific macros? This is a dynamic\nlinker, so there\u0027s never a possibility of cross-linking.\n\nChange-Id: I7be6b8663f5e585c4024a49aae383430c86a3c1b\n"
    },
    {
      "commit": "b8b0b6b412267e514c99a6d3636aefa3c7715673",
      "tree": "0701e99097620d4a8bed3af581cd3a910674ea9e",
      "parents": [
        "5be2c5998c996ff9d5efb94c127d9b832a295822"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:58:28 2013 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:58:28 2013 +0000"
      },
      "message": "Revert \"Don\u0027t warn about x86 text relocations. They\u0027re too prevalent.\"\n\nThis reverts commit 5be2c5998c996ff9d5efb94c127d9b832a295822.\n\nChange-Id: I3fc8ca530cdbd74c834fb9cfabe812c9386419fc\n"
    },
    {
      "commit": "5be2c5998c996ff9d5efb94c127d9b832a295822",
      "tree": "1385d4302c95d6e051f72bfad843d69bd6ee07f1",
      "parents": [
        "cdac5f73aca015287d1f40ff50d4fbf293a0c549"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 13:45:01 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 13:45:01 2013 -0700"
      },
      "message": "Don\u0027t warn about x86 text relocations. They\u0027re too prevalent.\n\nWe should fix this (and disallow it for x86_64), but for now let\u0027s get CTS\nrunning again.\n\nlibdvm.so and libcutils.so are the main problems.\n\n$ scanelf -qT out/target/product/generic_x86/symbols/system/lib/libcutils.so\n  libcutils.so: (memory/data?) [0x4125] in (optimized out: previous android_memset16) [0x4100]\n  libcutils.so: (memory/data?) [0x424F] in (optimized out: previous android_memset16) [0x4100]\n  libcutils.so: (memory/data?) [0x42F8] in (optimized out: previous android_memset16) [0x4100]\n  libcutils.so: (memory/data?) [0x4349] in (optimized out: previous android_memset16) [0x4100]\n  libcutils.so: (memory/data?) [0x4406] in (optimized out: previous android_memset16) [0x4100]\n  libcutils.so: (memory/data?) [0x45AC] in (optimized out: previous android_memset32) [0x4590]\n  libcutils.so: (memory/data?) [0x4650] in (optimized out: previous android_memset32) [0x4590]\n  libcutils.so: (memory/data?) [0x46F9] in (optimized out: previous android_memset32) [0x4590]\n  libcutils.so: (memory/data?) [0x474A] in (optimized out: previous android_memset32) [0x4590]\n  libcutils.so: (memory/data?) [0x4807] in (optimized out: previous android_memset32) [0x4590]\n\nBug: 11353056\nChange-Id: Id4a76b310be7fe858a8a60d0d260b09913b66be9\n"
    },
    {
      "commit": "3d4470c14a57b0b9ae74060370be53469e95d6a1",
      "tree": "06e9fd35ced589c34d46b2aad1fd65ccaea0fefe",
      "parents": [
        "8c39e58b6a6744c5e7ae08424a6281d75af23072"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Oct 22 12:06:36 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Oct 22 12:06:36 2013 -0700"
      },
      "message": "change wording on text relocation message.\n\nThe current message is too alarmist.\n\nChange-Id: I53e8eadca239f867b4e6b9c193eba96e267950c3\n"
    },
    {
      "commit": "2258347f3bb770641a7d8fe311911ace8f69cb20",
      "tree": "5cd10dc3869e2a69e5ea2afa9be7a64b587402e1",
      "parents": [
        "41b87c651280d1a9a98a309c5a5e77e240920d4e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 13:06:20 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 13:06:20 2013 -0700"
      },
      "message": "Build the linker with the same -std flags as the rest of bionic.\n\nChange-Id: I5bdb28ecfdf78a90f6b072077a1c5ffd63f5d2ae\n"
    },
    {
      "commit": "41b87c651280d1a9a98a309c5a5e77e240920d4e",
      "tree": "d1485802cb46f61bbbbfe770a63c78cc27e91730",
      "parents": [
        "922e2af432b38c3a454a1cae9e4d269c28c5ff8c",
        "c075c18537d18ccb6760ba1f5727ce2c0890285a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 19:51:10 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 17 19:51:11 2013 +0000"
      },
      "message": "Merge \"x86_64: Add R_X86_64_64 relocation handling\""
    },
    {
      "commit": "c7e9b2331771e5e87c34a8ee3dc6cc41d35b02fe",
      "tree": "c04816a58f739d9f76c12a0f5acf1676eed6c89c",
      "parents": [
        "f89f1eaa6071111c2ef584e97efb23f1b5dbdd2d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 22:27:54 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 11:36:55 2013 -0700"
      },
      "message": "Fix sigaction(3) for 64-bit.\n\nAlso clean up \u003csignal.h\u003e and revert the hacks that were necessary\nfor 64-bit in linker/debugger.cpp until now.\n\nChange-Id: I3b0554ca8a49ee1c97cda086ce2c1954ebc11892\n"
    },
    {
      "commit": "c075c18537d18ccb6760ba1f5727ce2c0890285a",
      "tree": "16b87064fe486ce5a1d9b59dd64798b5d72c0e48",
      "parents": [
        "abeafbd6d5e11044dd305e48134bc3d84319a3da"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Oct 16 19:13:58 2013 +0400"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Oct 16 19:13:58 2013 +0400"
      },
      "message": "x86_64: Add R_X86_64_64 relocation handling\n\nChange-Id: I86ffc56fa6a9053bed44e92a579530c2beb8eb2c\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "1a57f9f75c5752d990a2749b000ec4ceace94b54",
      "tree": "c3c2056a4e3868618d473047b2519aa91c3233c2",
      "parents": [
        "777ebe86677f6fd88c87995652146b2ead19a95f"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Feb 06 19:21:46 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:50:30 2013 -0700"
      },
      "message": "x86_64: Rename 64-bit linker to linker64\n\nThat\u0027s for having both on the same system.\n\nChange-Id: Ic2bc2c015e6486e8b6a7576f7b28d2d027534368\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "eb847bc8666842a3cfc9c06e8458ad1abebebaf0",
      "tree": "15e070fb706ba7599d5f402a8f934a7399541a6a",
      "parents": [
        "0c17099a71cb5d1b36b7aab66fd7341b3fc9106d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 15:50:50 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 16:00:17 2013 -0700"
      },
      "message": "Fix x86_64 build, clean up intermediate libraries.\n\nThe x86_64 build was failing because clone.S had a call to __thread_entry which\nwas being added to a different intermediate .a on the way to making libc.so,\nand the linker couldn\u0027t guarantee statically that such a relocation would be\npossible.\n\n  ld: error: out/target/product/generic_x86_64/obj/STATIC_LIBRARIES/libc_common_intermediates/libc_common.a(clone.o): requires dynamic R_X86_64_PC32 reloc against \u0027__thread_entry\u0027 which may overflow at runtime; recompile with -fPIC\n\nThis patch addresses that by ensuring that the caller and callee end up in the\nsame intermediate .a. While I\u0027m here, I\u0027ve tried to clean up some of the mess\nthat led to this situation too. In particular, this removes libc/private/ from\nthe default include path (except for the DNS code), and splits out the DNS\ncode into its own library (since it\u0027s a weird special case of upstream NetBSD\ncode that\u0027s diverged so heavily it\u0027s unlikely ever to get back in sync).\n\nThere\u0027s more cleanup of the DNS situation possible, but this is definitely a\nstep in the right direction, and it\u0027s more than enough to get x86_64 building\ncleanly.\n\nChange-Id: I00425a7245b7a2573df16cc38798187d0729e7c4\n"
    },
    {
      "commit": "2a0b873065edb304fa2d1c54f8de663ea638b8ab",
      "tree": "4753b74b87e713379965bb051482036e6726afb1",
      "parents": [
        "777a4ee6771e6fe3362ef4f24244a44fcd0aabe4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 18:50:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 13:39:13 2013 -0700"
      },
      "message": "Fix __errno for LP64 and clean up __get_tls.\n\nIf __get_tls has the right type, a lot of confusing casting can disappear.\n\nIt was probably a mistake that __get_tls was exposed as a function for mips\nand x86 (but not arm), so let\u0027s (a) ensure that the __get_tls function\nalways matches the macro, (b) that we have the function for arm too, and\n(c) that we don\u0027t have the function for any 64-bit architecture.\n\nChange-Id: Ie9cb989b66e2006524ad7733eb6e1a65055463be\n"
    },
    {
      "commit": "011bc0ba45a8b7766a205cb21269dbafb32294b6",
      "tree": "754276a721fc117082ad7130b7bfb855d2ce418f",
      "parents": [
        "58522099e52be3b5eba702ee6e82c03050e0dcca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 14:27:10 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 14:27:10 2013 -0700"
      },
      "message": "Use /system/lib64 and /vendor/lib64 for 64-bit libraries.\n\nChange-Id: I4886aeb3070bf97b4cfe8053388ecb1bda288017\n"
    },
    {
      "commit": "0f395b7ba056ccec3915737cfece81ca2161e980",
      "tree": "bfa09bf67d1ffd7eb782543699ba8810aeb6b6cf",
      "parents": [
        "9c710927ab33a663a5ba34b15902e7062523f8e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 13:19:00 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 13:19:00 2013 -0700"
      },
      "message": "Make logging fall back to /dev/stderr if we\u0027re on the host.\n\nOtherwise you get no logging, which sucks.\n\nChange-Id: Iea1e8f996461afbb217a55711b7967005c39cfcb\n"
    },
    {
      "commit": "d7398f146dad064dece704db9e13912f65da0acc",
      "tree": "db6795a960b809bf97e13a8efa7c4234b6edaa1f",
      "parents": [
        "3df50f57e5c106dd70483d4a0a295aa031a5906b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 10:05:05 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 10:05:05 2013 -0700"
      },
      "message": "Use linker64 for the 64-bit linker.\n\nChange-Id: I13fc7f93274f99e4cf99b077afdf5293e7233f39\n"
    },
    {
      "commit": "afac15d686460267ff20ce4786b9a7c5796a1ea8",
      "tree": "0f09746e8f7cb15ca0e467e4d5a8d5e89c978b2d",
      "parents": [
        "26933f4046d7362bfd276fc208e959a733a121c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 09:39:52 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 10:01:09 2013 -0700"
      },
      "message": "Use C99 structure initializer designator style.\n\nclang warns about using the GCC style of designator.\n\nChange-Id: I86ec79f06c8774618082859f48d7d1f576520e32\n"
    },
    {
      "commit": "c00f2cb587630d5e954c7f548749f1e3170b3cb1",
      "tree": "c62c53a795026d249df132db9bc7894add15611d",
      "parents": [
        "5d06718cd357b509588465ec1fa261db23b5899a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 04 17:01:33 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 08 09:57:01 2013 -0700"
      },
      "message": "x86_64 linker.\n\nBased on I8dc3e2cb596f75dc58ae82e4dc58f8c177dd3323 by\nPavel Chupin \u003cpavel.v.chupin@intel.com\u003e.\n\nChange-Id: Icd582d277cbe273477b450f2848343d72c86ec9f\n"
    },
    {
      "commit": "99f0e1a329aa8e05bbd5a5d4b90ec87a8549cfd2",
      "tree": "f07e8899de297066ee097983f5f43607656ce8c2",
      "parents": [
        "d2b6b5f2dbe56f19b6143f876e2677da1735bb5d"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Oct 08 00:05:44 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Oct 08 00:08:13 2013 -0700"
      },
      "message": "Fix Clang warning since KernelArgumentBlock is actually a class.\n\nChange-Id: Id72868d80feffbbc5f7d1e43beaed5d4e4d95f52\n"
    },
    {
      "commit": "c620059479c47a78d57086d73726c9adc2f337ad",
      "tree": "ef410fffb4d853aaf7dbfee41743c197c4985856",
      "parents": [
        "6dee3b9aeec40bb518c1a29b4462300869a03d8e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 18:43:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 30 18:43:46 2013 -0700"
      },
      "message": "Remove 32-bit assumptions from the ELF code.\n\nChange-Id: I2c1f3d34c33685799aade8866eec44479ff9f963\n"
    },
    {
      "commit": "24053a461e7a20f34002262c1bb122023134989d",
      "tree": "5da0ad5fe8822190483226140c7fba6a9f618395",
      "parents": [
        "df7436e709035fb6f5667980042848c8b4ca3e79"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 19 17:45:09 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 06 09:53:54 2013 -0700"
      },
      "message": "Add the dl_iterate_phdr function to libdl for arm.\n\nBug: 8410085\n\nMerge from internal master.\n\n(cherry-picked from cb491bc66dc0abc145930b09086eb9189a30f6c2)\n\nChange-Id: I94ed51bc5d4c626df7552c0e85c31ccee2d6568f\n"
    },
    {
      "commit": "87c358524e479235aa6241736d2ce325f89daafc",
      "tree": "e6e093bd601223a0b9bbcf5af8ca4a2be8623f81",
      "parents": [
        "c8039337e3ee608e23f8ca6e5ea123d938b08029"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 20 21:05:44 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 21 10:20:13 2013 -0700"
      },
      "message": "Make mips_relocate_got tolerate a missing got\n\nBug: 10094803\n\n(cherry picked from commit 7ee26878065abb494600595349ce58b2b2db3709)\n\nChange-Id: Ib15bccecaee421dc463d46a3956b054051708759\n"
    },
    {
      "commit": "0e79b9196254cdd210a59cc00d07b88a796a3a0d",
      "tree": "546296c2741d8a056d9033323049c66ba3b626a9",
      "parents": [
        "c933493ac28c40558f369d175da738ba601d8499"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 14 01:04:19 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 14 15:47:46 2013 -0700"
      },
      "message": "Add more information to error due to truncated Elf32_Ehdr\n\nChange-Id: I24f30bd0c1120bcf85d77f5c4e69f0fefe9a2478\n"
    },
    {
      "commit": "cbf07a25149cd924a348e4dc0395c5d08f86fd7f",
      "tree": "006414c411e1a645bcc1edcd26a50899689210ad",
      "parents": [
        "e35d6c28dfa524ff5035a738ead99c511812e0b9",
        "2be511d405d47eccc61a6e3c338d1877bf33b4fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:50:15 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 17 13:50:15 2013 -0700"
      },
      "message": "am 2be511d4: Merge \"Improve stack overflow diagnostics (take 2).\"\n\n* commit \u00272be511d405d47eccc61a6e3c338d1877bf33b4fa\u0027:\n  Improve stack overflow diagnostics (take 2).\n"
    },
    {
      "commit": "84114c8dd5b17efecf7988f263ce431208d7be5a",
      "tree": "81d4ae4e6a40c4255b2e76adeb2b68dab5932058",
      "parents": [
        "40e7a87864fee75f7af2caf8e1972d0d764135cd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:33:19 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 17 13:33:19 2013 -0700"
      },
      "message": "Improve stack overflow diagnostics (take 2).\n\nThis reverts commits eb1b07469f2b5a392dc1bfd8adc211aea8c72bc5 and\nd14dc3b87fbf80553f1cafa453816b7f11366627, and fixes the bug where\nwe were calling mmap (which might cause errno to be set) before\n__set_tls (which is required to implement errno).\n\nBug: 8557703\nChange-Id: I2c36d00240c56e156e1bb430d8c22a73a068b70c\n"
    },
    {
      "commit": "6f08b8659a3682b7e774af6ed68b1b613e147f1b",
      "tree": "0bf7e74ee8c987298497571d37b9d7be624313f5",
      "parents": [
        "849bfd58118e8c8a4b1ad8a7c3de74bb3cd13863",
        "2cf5a6f6627549842c0c840ff3615ae942a90ea3"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue Jul 16 20:18:57 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 16 20:18:57 2013 -0700"
      },
      "message": "am 2cf5a6f6: Merge \"Revert \"Improve stack overflow diagnostics.\"\"\n\n* commit \u00272cf5a6f6627549842c0c840ff3615ae942a90ea3\u0027:\n  Revert \"Improve stack overflow diagnostics.\"\n"
    },
    {
      "commit": "d14dc3b87fbf80553f1cafa453816b7f11366627",
      "tree": "b1a26c875f451b79888f60cf73504aab799874e1",
      "parents": [
        "aa754dca90487356cabf07ade0e8d88c2630b784"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Jul 17 03:17:05 2013 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Jul 17 03:17:05 2013 +0000"
      },
      "message": "Revert \"Improve stack overflow diagnostics.\"\n\nThis reverts commit aa754dca90487356cabf07ade0e8d88c2630b784.\n\nChange-Id: Ifa76eee31f7f44075eb3a48554315b2693062f44\n"
    },
    {
      "commit": "10a954dea6732232ed6cf56d3aa6ca38673dacbf",
      "tree": "3cbe61dfad6689eaa2d18b1aa816189ea72f63bd",
      "parents": [
        "d2acf124ed7ad18f8adb5159544c92234cade90e",
        "026867c7dcce7828212dcd4a61806146908e9039"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 15:31:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 16 15:31:40 2013 -0700"
      },
      "message": "am 026867c7: Merge \"Improve stack overflow diagnostics.\"\n\n* commit \u0027026867c7dcce7828212dcd4a61806146908e9039\u0027:\n  Improve stack overflow diagnostics.\n"
    },
    {
      "commit": "aa754dca90487356cabf07ade0e8d88c2630b784",
      "tree": "b4cda0d4fa3935abd85b3ee178d35d0738e8a744",
      "parents": [
        "9562d38df1e4aba941b3433cfd0922fee5ea258b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 13:14:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 13:14:24 2013 -0700"
      },
      "message": "Improve stack overflow diagnostics.\n\nWe notify debuggerd of problems by installing signal handlers. That\u0027s\nfine except for when the signal is caused by us running off the end of\na thread\u0027s stack and into the guard page.\n\nBug: 8557703\nChange-Id: I1ef65b4bb3bbca7e9a9743056177094921e60ed3\n"
    },
    {
      "commit": "d31287d6017475209cfee2fea0532bdc8c0f4aac",
      "tree": "c4c577c6b2a5db584e031c1a8b3ae7752dc133ff",
      "parents": [
        "7180213557f3120b391053b4f5861037eda6ebb6",
        "7d624e9aff4c6addea7f2275fe58ff0815d95c70"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 25 13:17:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 25 13:17:37 2013 -0700"
      },
      "message": "am 7d624e9a: Merge \"Kernel dso support for \\\u0027dl_iterate_phdr\\\u0027 function\"\n\n* commit \u00277d624e9aff4c6addea7f2275fe58ff0815d95c70\u0027:\n  Kernel dso support for \u0027dl_iterate_phdr\u0027 function\n"
    },
    {
      "commit": "c45087bffa528c0809f0df2e0a3708eba7018b33",
      "tree": "396514632534992375e81be44ea31194ff56ed9a",
      "parents": [
        "bfacb603e417c1e2c25ce8482b5c6e31b4db8c9b"
      ],
      "author": {
        "name": "Sergey Melnikov",
        "email": "sergey.melnikov@intel.com",
        "time": "Fri Jan 25 16:40:13 2013 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 25 13:12:39 2013 -0700"
      },
      "message": "Kernel dso support for \u0027dl_iterate_phdr\u0027 function\n\nKernel provides virtual DSO for stack unwinding/exception handlind info for\nsignal usage case. Stack unwinding routines use \u0027dl_iterate_phdr\u0027 function\nfor additional DWARF info gathering from DSOs. Patch enables virtual DSO\nenumeration via dl_iterate_phdr function.\n\nSigned-off-by: Sergey Melnikov \u003csergey.melnikov@intel.com\u003e\nChange-Id: Ic2882b28f40b456a088bc1e63c50cbfda7e4a102\n"
    },
    {
      "commit": "100d678438f222ad6ef8f3dc0646911b218c50a9",
      "tree": "d8540f1c060d0f882af5ef7f632d98d095659820",
      "parents": [
        "cb25359a2e20489a3a9f65795a2079abc8fe0b65",
        "53ddcc90701d86c7d809a84cf4710c651066e3c7"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 21 15:39:21 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 21 15:39:21 2013 -0700"
      },
      "message": "am 53ddcc90: Merge \"linker: Emit a warning on text relocations\"\n\n* commit \u002753ddcc90701d86c7d809a84cf4710c651066e3c7\u0027:\n  linker: Emit a warning on text relocations\n"
    },
    {
      "commit": "c9084427aa15259c8bfb9b13b979597a4abd1805",
      "tree": "3034d0cab47807e06a4d0ff17d3ad4b555753cb5",
      "parents": [
        "6819773103495a6fd81f024dc6711771320ae4ec"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 21 12:31:33 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 21 15:33:15 2013 -0700"
      },
      "message": "linker: Emit a warning on text relocations\n\nText relocations unnecessarily mark pages as dirty, preventing them\nfrom being swapped out, wasting memory. Also, text relocations\nprevent the code from running on certain hardened systems.\n\nPrint a message in logcat and stderr when we see a text relocation,\nto encourage developers to fix their code.\n\nChange-Id: I6051a7463911e090ae5727a355397d539669d5b9\n"
    },
    {
      "commit": "45ef218bde353df455062aa3c9a9f84ffed769fc",
      "tree": "f5a7349539839abef213f64ad7e75b976afa4d33",
      "parents": [
        "e421bd71c32e35b8f39f2e51f2d534d2f21f139f",
        "6807af773f862750efb6860e00402580a5f463f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 18 13:27:16 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 18 13:27:16 2013 -0700"
      },
      "message": "am 6807af77: Merge \"Make LD_PRELOAD failures just warnings.\"\n\n* commit \u00276807af773f862750efb6860e00402580a5f463f3\u0027:\n  Make LD_PRELOAD failures just warnings.\n"
    },
    {
      "commit": "7e5a8cc5230dcc027686813e51a1b001cee4c602",
      "tree": "95c1e6165cff8d0d8dacd6741075d065474fc49d",
      "parents": [
        "977a33137d2be0093f474055f839cf665b82b588"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 18 13:15:00 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 18 13:15:00 2013 -0700"
      },
      "message": "Make LD_PRELOAD failures just warnings.\n\nThis matches glibc and makes life easier for developers who want to\nsometimes preload a library from init (which has no conditionals); they\ncan simply move/remove the library to disable.\n\nChange-Id: I579b8633f958235af6e46bb53b378b9e363afb1f\n"
    },
    {
      "commit": "d978d21d195976fa3f257b8d17ec2fe18fb436a7",
      "tree": "b44d2c943473f96b5cf53cee791560ff67d35d12",
      "parents": [
        "6bcf71c9ac8395038ca243160d4367759be8dd80",
        "8252b8e4b730b13623f31dc66396e000586d1c58"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 10 15:41:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 10 15:41:19 2013 -0700"
      },
      "message": "am 8252b8e4: Merge \"Honor p_vaddr if set\"\n\n* commit \u00278252b8e4b730b13623f31dc66396e000586d1c58\u0027:\n  Honor p_vaddr if set\n"
    },
    {
      "commit": "e7dffe150b3c1c835c669ec03965e37fead13de7",
      "tree": "b5d5b396f91a81f63e301ebd946885d2f2bb6bdc",
      "parents": [
        "b7b4f5b838cd41407c734af74e8211f5c7da0036"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jan 10 16:39:58 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jun 07 12:47:58 2013 -0700"
      },
      "message": "Honor p_vaddr if set\n\n(cherry picked from commit 88ff15c2c279d2bbe3569101b36cd2aa0931a0a9)\n\nChange-Id: I4aabbe911d30aea8ace69e29bb6e980a4e89de90\n"
    },
    {
      "commit": "81bfade818f1b76cf822f0e7e0862fe61e7c580a",
      "tree": "d8ea37fba578d55c1aa8ad1b895b314bbb326842",
      "parents": [
        "72ce296f282803cb026aff5ab180e8a43656612e",
        "0671393072a78e75a726c58aa3ca718e55eeac3e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 03 20:21:04 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 03 20:21:04 2013 -0700"
      },
      "message": "am 06713930: Merge \"Small cleanup of soinfo_elf_lookup.\"\n\n* commit \u00270671393072a78e75a726c58aa3ca718e55eeac3e\u0027:\n  Small cleanup of soinfo_elf_lookup.\n"
    },
    {
      "commit": "6bec5b792a5f034089a942cb28cab26d36408235",
      "tree": "40758ce5b973feda4f6f2e34bce1d133d119a911",
      "parents": [
        "404d491eb655839bf4260cc168bb79864473e129"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 03 17:27:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 03 20:15:14 2013 -0700"
      },
      "message": "Small cleanup of soinfo_elf_lookup.\n\n- Remove unnecessary line.\n- Move declarations to first use.\n\nChange-Id: I1d8398d6c13f7cb86bffe0b68af849e35a4b234d\n"
    },
    {
      "commit": "46bf467a151eafaf37f6e3578d8d9bad705b8e44",
      "tree": "9272bfeea2d0d076c7c81ed12c569f6196c453fe",
      "parents": [
        "4c8eba6f2aaf351e29881ca4dc2ec47fc0246446",
        "f5f29de6ae5a0b74234f111b5691a1e5588671cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 17:23:09 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 21 17:23:09 2013 -0700"
      },
      "message": "am f5f29de6: Merge \"Fix bionic linker to support segments with zero p_filesz\"\n\n* commit \u0027f5f29de6ae5a0b74234f111b5691a1e5588671cb\u0027:\n  Fix bionic linker to support segments with zero p_filesz\n"
    },
    {
      "commit": "82dcc7910d9c25c4fdf635d6132fa86ae3677363",
      "tree": "46661acee967aad59083d8c096f14ec1baa1cd2f",
      "parents": [
        "2e317075b044e94fc75e36d08bec8a7eb5fc31ae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 16:49:24 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 16:57:55 2013 -0700"
      },
      "message": "Fix bionic linker to support segments with zero p_filesz\n\n(cherry picked from commit 96362fb9d11beef6233aa03db396f25688e70860)\n\nChange-Id: Ib075a6dfc45d5d0746d8b278f317dd9b8d772f2a\n"
    },
    {
      "commit": "58f3dbdacd496838661affce358518e0b3a4f7f6",
      "tree": "3af6069432287e6d21fb92296f925b1be145fd41",
      "parents": [
        "ca54ae44a4c8764028b3092f9f1cfdd619a94fa6",
        "98f7659d7e3a7d75c68a41299f6ee55d7d35c27b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 09 17:53:38 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 09 17:53:38 2013 -0700"
      },
      "message": "am 98f7659d: Merge \"Don\\\u0027t fail to run DT_INIT and DT_INIT_ARRAY constructors if a shared library has DT_PREINIT_ARRAY constructors.\"\n\n* commit \u002798f7659d7e3a7d75c68a41299f6ee55d7d35c27b\u0027:\n  Don\u0027t fail to run DT_INIT and DT_INIT_ARRAY constructors if a shared library has DT_PREINIT_ARRAY constructors.\n"
    },
    {
      "commit": "8147d3c284932896ab6095232b355979b9eb33d3",
      "tree": "984cfb411636e857e4317e092b8132bcd42b2841",
      "parents": [
        "ff220f70036178aa0d7dcf1cbc4825085a84441e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 09 14:19:58 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 09 15:29:54 2013 -0700"
      },
      "message": "Don\u0027t fail to run DT_INIT and DT_INIT_ARRAY constructors if a shared library has DT_PREINIT_ARRAY constructors.\n\nThe GNU dynamic linker silently ignores a DT_PREINIT_ARRAY section\nin a shared library. We had ineffectual code that tried to report\nan error, which I tried to fix but got wrong --- my version still\nwouldn\u0027t report the error to the caller, but would prevent us from\ncontinuing to call constructors.\n\nBug: 8825226\nChange-Id: I4fd8450ecc44d8767a1cb808aeecfbfbfc77c070\n"
    },
    {
      "commit": "ed572aaa0d275eed753afd4b92e05991310e76ac",
      "tree": "6a62c6128ee8a409f706d3b41b8cd3a04e1368a6",
      "parents": [
        "eb22fc331ed1bff5ee146c252fb4b9fa7f198523",
        "5f28fde8aeee047a70e344c9da937695dc51a3ba"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Apr 25 17:01:41 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 25 17:01:41 2013 -0700"
      },
      "message": "am 5f28fde8: Merge \"linker: only re-open std* for setuid programs.\"\n\n* commit \u00275f28fde8aeee047a70e344c9da937695dc51a3ba\u0027:\n  linker: only re-open std* for setuid programs.\n"
    },
    {
      "commit": "8d3e91d4f842911366155845afb3cfbdad0b4cad",
      "tree": "61d332169251cde7d11a6687668f8b4a724e372e",
      "parents": [
        "87efcd2e63c9f218f476ef88f21e660f9bce633f"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Apr 25 13:15:24 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Apr 25 13:15:24 2013 -0700"
      },
      "message": "linker: only re-open std* for setuid programs.\n\nget_AT_SECURE() was getting called before linker_env_init() had\nbeen called, and returning the default value (\"true\"). This was\ncausing us to reopen closed stdin, stdout, and stderr for ALL\nprocesses, not just privileged (setuid) processes.\n\nCalling path:\n  - __linker_init\n    - soinfo_link_image\n      - get_AT_SECURE\n    - __linker_init_post_relocation\n      - linker_env_init\n\nThis change restores the intended behavior of only re-opening\nstdin, stdout, and stderr for privileged processes.\n\nChange-Id: I8b085ea6597710ac4c1a3c93f1bf8b81eecb08c0\n"
    },
    {
      "commit": "9c7b510a408740b5b53f8d14b8f43bf2f2d36ae6",
      "tree": "c1f551846396b7cf6fbcfaabb03c8460f0420e29",
      "parents": [
        "cd6f4804d22a119c1aaf915d70a53924b1666777",
        "240fb8623b1fe027d0d33a9d4c41d99ceb385b58"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 05 11:43:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 05 11:43:37 2013 -0700"
      },
      "message": "am 240fb862: Merge \"Make abort messages available to debuggerd.\"\n\n* commit \u0027240fb8623b1fe027d0d33a9d4c41d99ceb385b58\u0027:\n  Make abort messages available to debuggerd.\n"
    },
    {
      "commit": "0d787c1fa18c6a1f29ef9840e28a68cf077be1de",
      "tree": "3f8efc05d80658c9be48513238104a5de01a9951",
      "parents": [
        "014c75c78bdcad8acde8d0abb2450aa1f78e1a1f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 04 13:46:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 05 11:24:19 2013 -0700"
      },
      "message": "Make abort messages available to debuggerd.\n\nThis adds __libc_fatal, cleans up the internal logging code a bit more,\nand switches suitable callers over to __libc_fatal. In addition to logging,\n__libc_fatal stashes the message somewhere that the debuggerd signal handler\ncan find it before calling abort.\n\nIn the debuggerd signal handler, we pass this address to debuggerd so that\nit can come back with ptrace to read the message and present it to the user.\n\nBug: 8531731\nChange-Id: I416ec1da38a8a1b0d0a582ccd7c8aaa681ed4a29\n"
    },
    {
      "commit": "3077d88347f4b120ee93e73efdbfb017e0e968ec",
      "tree": "bf81069d62cebd82a2a7d38abf0ea0fa351bc43b",
      "parents": [
        "5c9a25cc2369846f7cf7f4fe1bdb32cf3dc8a469",
        "c48968d268820ee64986f738e227910b29290eab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 19:40:15 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 21 19:40:15 2013 -0700"
      },
      "message": "am c48968d2: am 4453c51c: Merge \"Drop unnecessary execution permission for .cpp/.c/.h\"\n\n* commit \u0027c48968d268820ee64986f738e227910b29290eab\u0027:\n  Drop unnecessary execution permission for .cpp/.c/.h\n"
    },
    {
      "commit": "8f7120bbacb0bb7a8aca1102f76f64a462f40231",
      "tree": "ea3f120e146a043018529c4cd42b7632a5646ca0",
      "parents": [
        "800ad8249a398e94d039b6f6597e2a51558e41dd"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Mar 22 10:25:56 2013 +0800"
      },
      "committer": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Mar 22 10:28:15 2013 +0800"
      },
      "message": "Drop unnecessary execution permission for .cpp/.c/.h\n\nChange-Id: I9ac2b9d8f6bdb4fab8962210c5ec8f9c3e8c0ebf\n"
    },
    {
      "commit": "12ea8005665085ae82c1b233ae93d12855e04b8b",
      "tree": "27264105563e73d0a8f58a13257f3512fbf255a9",
      "parents": [
        "e1b0db1392050900e1f38b16ec2c8e213308e267",
        "5f8292050fc07f4bf9e70f37a807ad028e3cfc87"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 16:36:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 15 16:36:37 2013 -0700"
      },
      "message": "am 5f829205: am c1416647: Merge \"Clean up internal libc logging.\"\n\n* commit \u00275f8292050fc07f4bf9e70f37a807ad028e3cfc87\u0027:\n  Clean up internal libc logging.\n"
    },
    {
      "commit": "8f2a5a0b40fc82126c691d5c30131d908772aab7",
      "tree": "0b29a5dc82395c076387edb5af9ca271a91264c0",
      "parents": [
        "e23ed8c6441389a79c6504295184f7249e01a197"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 15:30:25 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 16:12:58 2013 -0700"
      },
      "message": "Clean up internal libc logging.\n\nWe only need one logging API, and I prefer the one that does no\nallocation and is thus safe to use in any context.\n\nAlso use O_CLOEXEC when opening the /dev/log files.\n\nMove everything logging-related into one header file.\n\nChange-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58\n"
    },
    {
      "commit": "746f128602772997b57e24fc8546473d01d6f955",
      "tree": "0495b5ed3895160329b3f8eb19de35bb1af8f2da",
      "parents": [
        "e9cdce33f398e43952d11ef38027e2d255f16531",
        "5d998b4a21aab09da750e8e43cb608f5ee6b1f3d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 12:03:06 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 12 12:03:06 2013 -0700"
      },
      "message": "am 5d998b4a: am f21aa3b6: Merge \"Use more types than just \\\u0027unsigned\\\u0027 in the linker.\"\n\n* commit \u00275d998b4a21aab09da750e8e43cb608f5ee6b1f3d\u0027:\n  Use more types than just \u0027unsigned\u0027 in the linker.\n"
    },
    {
      "commit": "ca0c11bd823f37f03cc8067cb182876827d5275a",
      "tree": "b6d10789c2be00f069e643a70cb9e29223f0e07d",
      "parents": [
        "6b4c77f854c079138d552608b9df5fa3035f0fcc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:40:45 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 11:26:56 2013 -0700"
      },
      "message": "Use more types than just \u0027unsigned\u0027 in the linker.\n\nStill chipping away at the situation where every variable in the\nlinker was of type \u0027unsigned\u0027. This patch switches counts over to\nbeing size_t and adds an explicit type for init/fini function pointers\nand arrays of function pointers.\n\nAlso improve logging from CallArray.\n\nAlso remove trailing \"\\n\"s from log messages.\n\nChange-Id: Ie036d2622caac50f4d29f0570888bb527661d77e\n"
    },
    {
      "commit": "e9cdce33f398e43952d11ef38027e2d255f16531",
      "tree": "8cff7bdd218465331345d52947ca31450e8a93f6",
      "parents": [
        "8c73f69cf42d78f37b9b82bf0cc62d2cd1985fcc",
        "3c9afb5e17eaa2ed5a12d71a1a09fe85f06fcb48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:40:56 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 12 10:40:56 2013 -0700"
      },
      "message": "am 3c9afb5e: am 6b4c77f8: Merge \"Use Elf32_Addr instead of unsigned in linker\"\n\n* commit \u00273c9afb5e17eaa2ed5a12d71a1a09fe85f06fcb48\u0027:\n  Use Elf32_Addr instead of unsigned in linker\n"
    },
    {
      "commit": "fa8c05dc00bb41ae8fe5cb5e4f82816e30f7f7b2",
      "tree": "ce04ae839a072d7987805daa96c5ac66bb2d7558",
      "parents": [
        "53630c0e5bb6f845ba633e8dedc08b827f7b5d0c"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Tue Mar 12 14:58:06 2013 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:19:14 2013 -0700"
      },
      "message": "Use Elf32_Addr instead of unsigned in linker\n\nChange-Id: I52dcbb4b0ff0a4052e0ad7a9bbeb2df65c9d2f66\n"
    },
    {
      "commit": "8a0157227242eeb7917f064e0d81014bcda6d8f7",
      "tree": "55f5531730a72309d1f84bf35b324804b342813a",
      "parents": [
        "0a2ee4750ac4e9e5949dbf97fbad68065e83b632",
        "4706606c884cae1bcf73a273580f85bb29255678"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 07 13:19:20 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 07 13:19:20 2013 -0800"
      },
      "message": "resolved conflicts for merge of 4706606c to jb-mr2-dev\n\nChange-Id: Ibf6340df901c870cd05a2ab56536ad23b6fd491c\n"
    },
    {
      "commit": "0493a6f7be42e22d68e1d6ddb8eb2edaf818756f",
      "tree": "3d0aacb40e3d21584c3d6617c44cdaccc3208040",
      "parents": [
        "c9f80814259a81dce12ba35d1750fa2b23fef48d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 07 11:48:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 07 11:51:10 2013 -0800"
      },
      "message": "Regenerate NOTICE files.\n\nAlso clean up some obsolete cruft.\n\nChange-Id: Iec3b36f6607f7a08b72de99294ed5b6cd910dd5f\n"
    },
    {
      "commit": "c7b9f954a5278115333516a40c0d2839648a6877",
      "tree": "69f3e0930440819ccfd1b40d9ec209a4501753b3",
      "parents": [
        "9c0c056beddf8c4100769ad01404311a6d70efae",
        "91392116ff859b2e7656ded729b8c758107241aa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Mar 07 00:12:13 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 07 00:12:13 2013 +0000"
      },
      "message": "am 91392116: am 33031fed: Merge \"Fix typo of DT_NEEDED for DT_NULL\"\n\n* commit \u002791392116ff859b2e7656ded729b8c758107241aa\u0027:\n  Fix typo of DT_NEEDED for DT_NULL\n"
    },
    {
      "commit": "2d4b9b7cff78b9a378d7fc0f28c702dc43002020",
      "tree": "194dcbc0fefd3d6ba27e2ad0719c597223df8fb0",
      "parents": [
        "0b4a85bf1e11e28f66d0f101f9e7d4c51a0bb31c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 15:32:16 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 15:50:30 2013 -0800"
      },
      "message": "Fix typo of DT_NEEDED for DT_NULL\n\n(cherry-pick of 138b205ea9efc117fe522c2d7191378023a6e2cd)\n\nChange-Id: Ia895cb3018df55554627f1f61dcdfdada4a961ce\n"
    },
    {
      "commit": "bac72abae4578bf2df9227a9c3d2c7233c83a06b",
      "tree": "0e03f99596abbd6c5585307c898db92d2f39f2aa",
      "parents": [
        "2527a8b5a652d7f88b662fe3788e29b6bc2bbe78",
        "50a2cd865e7cc8c72d926548ed5d64e269003055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 06 17:44:43 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 06 17:44:43 2013 +0000"
      },
      "message": "am 50a2cd86: am 0b4a85bf: Merge \"Fix TIMING/STATS/COUNT_PAGES dynamic linker build\"\n\n* commit \u002750a2cd865e7cc8c72d926548ed5d64e269003055\u0027:\n  Fix TIMING/STATS/COUNT_PAGES dynamic linker build\n"
    },
    {
      "commit": "5e2492eb89b778ee71e37e7406fe290d986ece70",
      "tree": "cbbcab7d154e153e518bc63418ec73d1da262396",
      "parents": [
        "20958207d5f9d36cc6f6b3edc4ff899c73b72b02"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Wed Mar 06 23:52:45 2013 +0800"
      },
      "committer": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Wed Mar 06 23:58:48 2013 +0800"
      },
      "message": "Fix TIMING/STATS/COUNT_PAGES dynamic linker build\n\nChange-Id: I6432ac378816da253b83d1c7fb1d3fb64647b89e\n"
    },
    {
      "commit": "2527a8b5a652d7f88b662fe3788e29b6bc2bbe78",
      "tree": "a121c49e3a854bf23bbc66a80883c5f2be2af705",
      "parents": [
        "c1a5d20d08118bb778f99b14ca74d6654e4f4eba",
        "9043202b5bb8e0725b0302e9da9d3a57c837e798"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 09:18:59 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 06 09:18:59 2013 +0000"
      },
      "message": "am 9043202b: am 20958207: Merge \"Fix MIPS linker build\"\n\n* commit \u00279043202b5bb8e0725b0302e9da9d3a57c837e798\u0027:\n  Fix MIPS linker build\n"
    },
    {
      "commit": "43cc7f795b48e9c13a54e15af829369805f11652",
      "tree": "daea65f5ba68690bad9e040af7a02fb1221ee0bd",
      "parents": [
        "c41dcad040ede2975ea63e383a8a3d36e3642d56"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 01:03:25 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 01:05:08 2013 -0800"
      },
      "message": "Fix MIPS linker build\n\n(cherry-picked from 8c7d8c2057e303985f78eab96da747ddaa013c78)\n\nChange-Id: Idcf62ab95f8fccbc2d7c3e771a4cfbe768a1555e\n"
    },
    {
      "commit": "c1a5d20d08118bb778f99b14ca74d6654e4f4eba",
      "tree": "2d19598dc0704dcc975e36f52d87a1729d54c1d8",
      "parents": [
        "8c65a1e466dae62217700065256921ba86290faa",
        "9a0b658c9c1f8f4492f61a75909e5ca2f05c3ac1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 06 06:44:06 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 06 06:44:06 2013 +0000"
      },
      "message": "am 9a0b658c: am c41dcad0: Merge \"More linker cleanup.\"\n\n* commit \u00279a0b658c9c1f8f4492f61a75909e5ca2f05c3ac1\u0027:\n  More linker cleanup.\n"
    },
    {
      "commit": "650be4e584eeab3591b9e273bfd6d169eea60853",
      "tree": "5be356ef45653f3a118ebac4a66858d24a4bdb6b",
      "parents": [
        "036f909720fd0d56dbd04b9a761fb1d0714980b0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 05 18:47:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 05 22:24:34 2013 -0800"
      },
      "message": "More linker cleanup.\n\nChange-Id: I9fb3c7c0d4b4ffef0eeaf092d4e30ffe63a08671\n"
    },
    {
      "commit": "8c65a1e466dae62217700065256921ba86290faa",
      "tree": "1297aa65518d23d4a5a759a43e5abe94785632be",
      "parents": [
        "97a8217ae1a23a808f7bb3af2f492040e7080549",
        "a2517de3844d95b5f00a4666b8dae00ef893ac24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 01:22:25 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 06 01:22:25 2013 +0000"
      },
      "message": "am a2517de3: am 036f9097: Merge \"Minor linker cleanup, primarily to use Elf32_Dyn\"\n\n* commit \u0027a2517de3844d95b5f00a4666b8dae00ef893ac24\u0027:\n  Minor linker cleanup, primarily to use Elf32_Dyn\n"
    },
    {
      "commit": "d4ee82dfa3ba01baa10e3ca48fcb31a27b8a4e81",
      "tree": "b3e7ea16cf946c1d23131bb86f59e043449b7776",
      "parents": [
        "d392e044c7a03ff1c0903c3512d00955bc7de473"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 28 15:58:45 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 05 15:27:21 2013 -0800"
      },
      "message": "Minor linker cleanup, primarily to use Elf32_Dyn\n\nChange-Id: Ifa9408e9859c6f79444715bed4808b7c13fdced5\n"
    },
    {
      "commit": "6f55284103c146369a37bbabd3d36991e8372114",
      "tree": "dd4323bf9f67df1e10b4138dbb2b88245061ef8d",
      "parents": [
        "417433752591df4a7177dc7d1d07259d1a82a936",
        "b5862d4d8a1246dc1e21695cf3bacafefedf0428"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 19 11:39:40 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 19 11:39:40 2013 -0800"
      },
      "message": "am b5862d4d: Merge \"Update linker README.\"\n\n* commit \u0027b5862d4d8a1246dc1e21695cf3bacafefedf0428\u0027:\n  Update linker README.\n"
    },
    {
      "commit": "aa772a33ba31151c2d74c61600db9da42bc663e4",
      "tree": "3722bffd77c793881108f886b355c21f6428ec24",
      "parents": [
        "39804dcde6c1c596285432b28cdb09382ce59663"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 19 11:13:44 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 19 11:13:44 2013 -0800"
      },
      "message": "Update linker README.\n\nChange-Id: Icaa353e9cf1848c86e7445f4ad590bdab44f7941\n"
    },
    {
      "commit": "2db16ea38ebed0bddca091072ffe48c464b85970",
      "tree": "7731864a28454d29255e456314b668328f552f3b",
      "parents": [
        "32a2340067b7d53e37c9c70086773aaf91c339b3",
        "3002d64bcd4644456803dd0547d20b39e14be02c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 13 08:11:24 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 13 08:11:24 2013 -0800"
      },
      "message": "am 3002d64b: Merge \"Everyone has a TLS register.\"\n\n# Via Elliott Hughes (1) and Gerrit Code Review (1)\n* commit \u00273002d64bcd4644456803dd0547d20b39e14be02c\u0027:\n  Everyone has a TLS register.\n"
    },
    {
      "commit": "91a9925998f2b878f0245ce03aab22cc412a4d8b",
      "tree": "899de414e14cb9627c4dc8c9882a05f2298a1196",
      "parents": [
        "baf2c09f3f47a35b195eb83cc7acffeaf4b6d4e9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 12 21:56:42 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 12 21:56:42 2013 -0800"
      },
      "message": "Everyone has a TLS register.\n\nChange-Id: Id7cdf67087aa7d5074c9c59b7e595bc391d9f146\n"
    },
    {
      "commit": "63358ae068859e339a93d3f52687e49e97f831d0",
      "tree": "67b6d08ab770dfebf7291ea4c813cc5597408a59",
      "parents": [
        "01cf1678e737a739fdd510b2a693e238aef46f24",
        "8f509e8be11876023d4bcb3e827ca096f22fc0c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 08 11:43:09 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 08 11:43:09 2013 -0800"
      },
      "message": "am 8f509e8b: am 9a9bb243: Merge \"Switch to using AT_RANDOM for the stack guards.\"\n\n# Via Android Git Automerger (1) and others\n* commit \u00278f509e8be11876023d4bcb3e827ca096f22fc0c5\u0027:\n  Switch to using AT_RANDOM for the stack guards.\n"
    },
    {
      "commit": "d3920b3a996b358e48232f417aa0a1e44a60f155",
      "tree": "b0520d0d300dbca1e6e54a9a7c26e6d2cd81ed08",
      "parents": [
        "f6afd3b670e23f56bf341d12136416aee17ea249"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 18:39:34 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 08 11:16:13 2013 -0800"
      },
      "message": "Switch to using AT_RANDOM for the stack guards.\n\nBug: 7959813\nChange-Id: I8db4b8912ba649bfe668c6f22aa44690ddd401a2\n"
    },
    {
      "commit": "8c372fc77e69f141ebeca0ab621ca634bff3115c",
      "tree": "e73b00d904f2abe92caf4f481ed01f1b7062fdf0",
      "parents": [
        "dd698ec89a838ecaf6d4d0d70d6f00f952345cd7",
        "5bb67760f0baddd815334bf87be79f0e7fd9fafe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 14:45:28 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 07 14:45:28 2013 -0800"
      },
      "message": "am 5bb67760: am f6afd3b6: Merge \"Fix x86 build, remove void* arithmetic.\"\n\n# Via Android Git Automerger (1) and others\n* commit \u00275bb67760f0baddd815334bf87be79f0e7fd9fafe\u0027:\n  Fix x86 build, remove void* arithmetic.\n"
    }
  ],
  "next": "389ebfa16fcf6b458955b2dd29c94d3570583f6a"
}
