)]}'
{
  "log": [
    {
      "commit": "8a1162835597be38705b381ac34c07da17932568",
      "tree": "13fb64618cf74789d9f47d7d438eda0e3fd27607",
      "parents": [
        "d9dc13d4172516342ceebf1b16624ed9fdf3fca2"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jun 05 22:16:23 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 09 13:44:31 2015 -0700"
      },
      "message": "Add flag that makes linker honor min(p_vaddr)\n\nBug: http://b/21523078\nChange-Id: Ice72766fb6ad3bd333c32b496e7870121e17a763\n"
    },
    {
      "commit": "9b82136b987bc01224e3b42732334ea27c97d188",
      "tree": "036facba010c670c5d6bfc3fa9dbb2de0f28caf8",
      "parents": [
        "ab7c79e22e5495a2aa171047a044ce1037e461a9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 16:03:56 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 03 10:50:48 2015 -0700"
      },
      "message": "Add ANDROID_DLEXT_FORCE_LOAD flag\n\n  This flag allows to force loading of the library\n  in the case when for some reason multiple ELF files\n  share the same filename (because the already-loaded\n  library has been removed and overwritten, for example).\n\nChange-Id: I798d44409ee13d63eaa75d685e99c4d028d2b0c1\n"
    },
    {
      "commit": "466dbe444446da0a8729ae9ac7294f54276e29d7",
      "tree": "6930e91366bb16c0b12197dbf9efd18b458d2eaf",
      "parents": [
        "3780aba6352affc7d2dcdad0737cb4254448fcae"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jan 28 18:16:08 2015 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 29 17:30:40 2015 -0800"
      },
      "message": "Put back inline definitions if using an old API.\n\nAll these inlines were turned in to out of line definitions in L.\nThis brings us a step closer to being able to just use the current\nbionic headers for the NDK, rather than having many old versions of\nthem.\n\nChange-Id: Ie010bc727d78d3742abc577c70f6578db2e68625\n"
    },
    {
      "commit": "aad1a39dfbdbb3cd2f9b1ba7f5c65fe68f179065",
      "tree": "565e3947bbf06e4c8c2fb7797ab25f0468d36f03",
      "parents": [
        "7602628e972b90689b8f39e0c837cad28383bc2b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 18 12:21:55 2014 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 01 15:44:24 2014 +0100"
      },
      "message": "libc: Fix headers to allow direct inclusion.\n\nThese headers are missing a few #includes to allow their direct\ninclusion from C\n\nhttp://b.android.com/79841\n\nChange-Id: Ifc712c17f4da70b26adb67d4d49ed659f53c3621\n"
    },
    {
      "commit": "a6c1279098f24a675d0df74ce1946f5d534b425e",
      "tree": "093d8cf0f5610eaf29dad4415236baefda00f5ef",
      "parents": [
        "8f41d3d3bc7cf2375e5dd9202da619fd67a5928f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 12:09:18 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 13:51:08 2014 -0700"
      },
      "message": "Rename library_offset to library_fd_offset\n\n replace lseek() and use pread() instead\n add test for library_fd_offset \u003e file_size case\n\nBug: 17762003\nChange-Id: I4555f0be635124efe849c1f226985bcba72ffcbd\n"
    },
    {
      "commit": "07e5bc152d8a3ad4c50808bb86f3c0f2c5e2f514",
      "tree": "0d80ab6a46252135b3550f82766d300fe5284cfa",
      "parents": [
        "d5df4124bbbb30411ef19f7c2fbb3987d0eb9630"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 03 17:52:44 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 06 10:02:34 2014 -0700"
      },
      "message": "Add file_offset parameter to android_extinfo\n\nBug: 17762003\nChange-Id: I8fb267a3155acef3dba534038cf5d1ef00d7154b\n"
    },
    {
      "commit": "3a25ab952befbe908f6df45805683ebe3bf65863",
      "tree": "1d80288dbaf200e247e7b8367451ac473f99a128",
      "parents": [
        "17f83c93cbbde3e38a03182931f40b7390061a7d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 19 11:06:33 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 19 11:08:02 2014 -0700"
      },
      "message": "Missing #include \u003csys/cdefs.h\u003e.\n\nNeeded for __BEGIN_DECLS/__END_DECLS. Currently fine because it\u0027s being\nincluded after other files that do this.\n\nChange-Id: I1f12368fc461f6ef5ca90992cf19f317f0b5d7af\n"
    },
    {
      "commit": "ce6b1abbb1da797e716d8ec03da4e3b6304fd11d",
      "tree": "75acb30cfbe62bf3141fd01f7a37cc53c1d82dea",
      "parents": [
        "54d24e099c24d0811ae723640d4e12e9558cab73"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 18 14:37:42 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 18 14:37:42 2014 -0700"
      },
      "message": "Expose android_set_abort_message().\n\nRemoves the leading underscores from __android_set_abort_message() and\nmoves its declaration into a public header file.\n\nBug: 17059126\nChange-Id: I470c79db47ec783ea7a54b800f8b78ecbe7479ab\n"
    },
    {
      "commit": "3a8646fc5d9f1a9304251a1d1c8ff9e523d81b40",
      "tree": "337867e4fdbe7af8537462870d673664789165d9",
      "parents": [
        "7244a8610a1b6f7cb38336696e15e2e4ee04613c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 08 11:21:56 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 08 11:24:03 2014 -0700"
      },
      "message": "Change android_dlextinfo flags to uint64_t\n\nChange-Id: Id27e8f8e58dbcf6ae79644f2ad3af3dd0aef9ae7\n"
    },
    {
      "commit": "04dc91ae763adc403a14c88b4c46f77b3d2d71a3",
      "tree": "aa8c5774929f43e2a13e308f93df4c65744f777d",
      "parents": [
        "4d299a2cf7880789e658f427196d1ca9fe02a9bc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 01 14:10:16 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jul 02 13:20:47 2014 -0700"
      },
      "message": "Load library using file handle.\n\n * This patch enables dlopen by file descriptor\n   instead of path/name.\n\nBug: 15984217\nChange-Id: Ib39051e00567fb97070bf96d8ce63993877c0a01\n"
    },
    {
      "commit": "4aa2e6a32a1ab90dc5baa626f6efc0feb9082716",
      "tree": "c5b8bc72c189ea2f6548c7379cde40005b68519e",
      "parents": [
        "837abf04667c29db178fd28f500537429a18be30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 07 12:37:44 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 07 12:57:51 2014 -0700"
      },
      "message": "Give bionic\u0027s __ANDROID_API__ a more reasonable value.\n\nThis matches what frameworks/base does with Build.VERSION and means that\nbionic\u0027s version number will always sort \u003e\u003d than any released version.\nThis should prevent confusion in code that builds both against bionic\nand the NDK.\n\n(Note that \u003csys/cdefs.h\u003e drags this in, so it\u0027s always in the namespace.)\n\nBug: 14613709\nChange-Id: I91fb745920e848a6b20f2f5797c0a7d6cde6c032\n"
    },
    {
      "commit": "183ad9df536ab04ef35a397a1f4724e4e401d11f",
      "tree": "65c76a120390c1350ff1d38b725b54cabd91c06b",
      "parents": [
        "12bbb9164578b6512b8b07a3fb093858244b7c7b"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Feb 27 13:18:00 2014 +0000"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Apr 17 14:30:46 2014 +0100"
      },
      "message": "Allow sharing the RELRO section via a file.\n\nAdd flags and a file descriptor to android_dlopen_ext() to allow writing\nthe RELRO section of the loaded library to a file after relocation\nprocessing, and to allow mapping identical pages from the file over the\ntop of relocated memory in another process. Explicitly comparing the\npages is required in case a page contains a reference to a symbol\ndefined in another library loaded at a random base address.\n\nBug: 13005501\nChange-Id: Ibb5b2d384edfaa5acf3e97a5f8b6115c10497a1e\n"
    },
    {
      "commit": "12bbb9164578b6512b8b07a3fb093858244b7c7b",
      "tree": "2a32dc3fe2902444aed43647f0ab1d2612507296",
      "parents": [
        "012cb4583a5f8564059142bb1900ea3a31e7cfa9"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Feb 06 14:34:21 2014 +0000"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Apr 17 14:22:17 2014 +0100"
      },
      "message": "Support loading libraries to a reserved address.\n\nAdd flags and parameters to android_dlopen_ext() to allow loading a\nlibrary at an already-reserved fixed address. If the library to be\nloaded will not fit within the space reserved, then the linker will\neither fail, or allocate its own address space as usual, according to\nwhich flag has been specified. This behaviour only applies to the\nspecific library requested; any other libraries loaded as dependencies\nwill be loaded in the normal fashion.\n\nThere is a new gtest included to cover the functionality added.\n\nBug: 13005501\nChange-Id: I5d1810375b20fc51ba6a9b3191a25f9792c687f1\n"
    },
    {
      "commit": "012cb4583a5f8564059142bb1900ea3a31e7cfa9",
      "tree": "60d2a27a83766f6ad6d20b124feb0bc48a332593",
      "parents": [
        "26c2bb84dd5cbd9ab43a5f0ebc2635bc3b64be3d"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Feb 06 14:34:21 2014 +0000"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Apr 17 13:50:55 2014 +0100"
      },
      "message": "Add android_dlopen_ext() interface to linker.\n\nAdd a function \"android_dlopen_ext()\", defined in \u003candroid/dlext.h\u003e.\nThis is an extended version of dlopen() which takes a struct for passing\nadditional parameters for Android-specific functionality. This will be\nused to support RELRO section sharing between separate processes.\n\nBug: 13005501\nChange-Id: I9c99b2f2a02ee329dedaeba09ef3a1113b17b2d6\n"
    },
    {
      "commit": "23d24394e72715ddf580726655c8ba3fbcf11bfe",
      "tree": "66d28b315a0891c1ea5e99e870ca03e511d3186c",
      "parents": [
        "9962cef7c6ba20bcb4d4f5e6a4c923aa335d9107"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 12:05:11 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 12:05:11 2010 +0100"
      },
      "message": "libc: Add \u003candroid/api-level.h\u003e\n\nAdd a new header that defines __ANDROID_API__ as a constant integer\ncorresponding to the current native API level. This header is included\nby \u003csys/cdefs.h\u003e\n\nChange-Id: Ib4774e247b395991266245815a24292afc919848\nNOTE: This header is already provided by the NDK\u0027s platform headers.\n      for levels 3 to 9.\n"
    }
  ]
}
