)]}'
{
  "log": [
    {
      "commit": "21975b2861d859fb580ddfba50d323740486b7bc",
      "tree": "5e8ed0d7e814959c24cd7bc404ff04e7e4e5419f",
      "parents": [
        "87a47e1bb202a26918993487db8dc82229833ef8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 02 16:31:56 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 02 16:35:20 2017 -0700"
      },
      "message": "Add ifunc for variable test-case\n\nAlso move ifunc tests to clang and c++.\n\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.ifunc*\nChange-Id: I008c4fc01470c8e4d314003c03a2b63ff9bf7fd8\n"
    },
    {
      "commit": "9aea164457c269c475592da36b4655d45f55c7bc",
      "tree": "35f6a459b79e751d6833b2ed765b9d6c17f6672c",
      "parents": [
        "c71483c0b38a6b4f2675f0bffa221dcf175c34ac"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 15:16:03 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 16:30:45 2014 -0700"
      },
      "message": "Add IFUNC support for arm64 and IRELATIVE reloc\n\n There are number of changes in the way IFUNC related relocations are done:\n 1. IRELATIVE relocations are now supported for x86/x86_64 and arm64.\n 2. IFUNC relocations are now relying on static linker to generate\n    them in correct order - this removes necessety of additional\n    relocation pass for ifuncs.\n 3. Related to 2: rela?.dyn relocations are preformed before .plt ones.\n 4. Ifunc are resolved on symbol lookup this approach allowed to avoid\n    mprotect(PROT_WRITE) call on r-x program segments.\n\nBug: 17399706\nBug: 17177284\nChange-Id: I414dd3e82bd47cc03442c5dfc7c279949aec51ed\n"
    },
    {
      "commit": "9598b8c415e2fa9f240508185fe8c964b83f538d",
      "tree": "f44be8df337dcb693baaf6aaa52de1ccd952bdcf",
      "parents": [
        "3157211849f808f89a7f1465fd60d6b41917ee4f"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 21 13:54:03 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 21 14:24:13 2014 -0700"
      },
      "message": "Run constructors before resolving ifunc functions\n\nBug: 17177284\nChange-Id: I5714b9bc2d1ca8f8711806bfb68da3d524213e99\n"
    },
    {
      "commit": "c5a13efa9bc4264be0a9a9e37c00633af01584ed",
      "tree": "4a1678bd154220d7e8d13e6739037fb48635006a",
      "parents": [
        "f2d8c357eec1bbc4e7441942dfc338ad1d9a207a"
      ],
      "author": {
        "name": "Brigid Smith",
        "email": "brigidsmith@google.com",
        "time": "Wed Jul 23 11:22:25 2014 -0700"
      },
      "committer": {
        "name": "Brigid Smith",
        "email": "brigidsmith@google.com",
        "time": "Fri Aug 08 11:29:35 2014 -0700"
      },
      "message": "Added test for ifunc support in dynamic linker.\n\nifuncs now work in i386 and x86_64 when called in the same library as\nwell as in a different library.\n\nBug:6657325\nChange-Id: Ic0c48b1b0a76cb90f36c20c79f68294cc3fd44a1\n"
    }
  ]
}
