)]}'
{
  "log": [
    {
      "commit": "cab794c22fc86153588572aac615c537348772e8",
      "tree": "55bfeae8770348f39fb6a902e73accd162cb4899",
      "parents": [
        "9c6d60d073db079a87fbeb5de3e72ac12838a480"
      ],
      "author": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Mon Jun 15 18:22:10 2020 -0400"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jul 28 19:01:00 2020 -0700"
      },
      "message": "Move prebuilt library dependencies of bionic-unit-tests to Blueprint\n\nTest: atest CtsBionicTestCases\nTest: m bionic-unit-tests \u0026\u0026 adb sync data \u0026\u0026 \\\n  adb shell /data/nativetest[64]/bionic-unit-tests/bionic-unit-tests\nChange-Id: I94b1eacfe496375853a476bd6c6702d09cfdbcce\n"
    },
    {
      "commit": "6a65ccdf5213cf3b9e80eba11ef8a0f40240272b",
      "tree": "1f667a8bdfb7d35fc014517e2724cb16486423d4",
      "parents": [
        "97d053283f4c100baed8677f7a7af98a976a2e2f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 13 09:48:14 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 13 09:48:14 2020 -0800"
      },
      "message": "Remove mips test workarounds.\n\nThe mips/mips64 targets were never able to pass these tests, and the\nsupported architectures don\u0027t need any of these workarounds.\n\nTest: treehugger\nChange-Id: I640a8b7a98ae13d9d9cdb09b0fbef61d31d4c79a\n"
    },
    {
      "commit": "6dd1f587c8d354c011a51748c587d3fab55b1b50",
      "tree": "9dbf923ce484396c44e8db7cd1d733fa94962b2b",
      "parents": [
        "a2132f23b8056f00d46e67db03d257d4bce2881a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 12:18:35 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 28 17:59:23 2020 -0800"
      },
      "message": "Test all four supported relocation encodings.\n\nTest (a) that we can load the library, but also (b) that readelf thinks\nit contains the relocation encoding we were expecting. Do this for all\nfour of RELR, ANDROID_RELR, relocation packer, and the original ELF\nrelocation encoding.\n\nBug: http://b/147452927\nTest: treehugger\nChange-Id: I5fab72f99d46991c1b206a1c15c76e185b7148b3\n"
    },
    {
      "commit": "6663f5525dafc31de1891d7e0fa6da88c4c7dc4b",
      "tree": "20be89b877823e6c2c3521037aa4a21f6bcb0345",
      "parents": [
        "5b9cc3144239511ec9062a3ff47dc20202848388"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 14:36:10 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 24 15:39:01 2020 -0800"
      },
      "message": "Modernize SHT_RELR support.\n\nUntil now we\u0027ve only supported RELR with our own OS-private-use\nconstants. Add support for the official numbers (while maintaining\nsupport for the historical numbers).\n\nAdd tests to ensure we continue to support both indefinitely.\n\nWe can\u0027t yet flip the build system over to using the official constants\nbecause the old GNU binutils objcopy we still use in most cases (for the\nmini-debug section) only supports the historical constants.\n\nBug: http://b/147452927\nTest: treehugger\nChange-Id: If214fce7fade4316115947e90b78ab40864b61f2\n"
    },
    {
      "commit": "ea11be0cc85cb5355ca7ed4ee8736ea52b72e38d",
      "tree": "9f1b6db4e8ae6cbb25af7b6ac1e1a516acde0848",
      "parents": [
        "0cd818a377157326ce326e8a48ea00882d1d1d06"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Apr 30 16:05:13 2019 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu May 16 16:10:41 2019 -0700"
      },
      "message": "Add bootstrap directory to bootstrap linker\u0027s search path.\n\nA proposed set of changes:\nhttps://android-review.googlesource.com/q/topic:\"no-dup-hwasans\"\n\nwill cause the HWASAN runtime to be moved from /system/lib64 to\n/system/lib64/bootstrap. This causes a problem in the case where libc is built\nwith HWASAN but init is not built with HWASAN. In this case, libc.so will have\na DT_NEEDED dependency on the HWASAN runtime but init will not. Currently,\ninit and other bootstrap executables arrange to load bootstrap libraries by\nsetting rpath, but rpath only has an effect on libraries directly depended\non by the main executable, not libraries indirectly depended on by it. This\nmeans that the loading of the HWASAN runtime will fail.\n\nInstead of relying on rpath to find the bootstrap libraries, modify the\nbootstrap linker so that it searches the bootstrap library directory after\nsearching the rpath.\n\nChange-Id: I297be32e04ecd316ee12b8e694588e1249e2bb89\n"
    },
    {
      "commit": "e712cd185f34dd154b4672abae76eae262a03c65",
      "tree": "e88302cb5b0b5d3d778065b83ec45e516b509cb6",
      "parents": [
        "3e742cb6133ad37ce28e8f0bffdf70f763ed45a3"
      ],
      "author": {
        "name": "Dmytro Chystiakov",
        "email": "dmytro.chystiakov@intel.com",
        "time": "Fri Mar 29 13:49:12 2019 -0700"
      },
      "committer": {
        "name": "Dmytro Chystiakov",
        "email": "dmytro.chystiakov@intel.com",
        "time": "Fri Mar 29 13:49:12 2019 -0700"
      },
      "message": "Fix Bionic dlfcn.dladdr_libc test case for 64bit binary translations\n\n64bit libraries should be located in /system/lib64 directory\ninstead of /system/lib for platforms with emulated arhitecture.\n\nThis patch updated ALTERNATE_PATH_TO_SYSTEM_LIB for 64bit values\n\nTest: run cts -m CtsBionicTestCases -t dlfcn.dladdr_libc\n\nChange-Id: I29d6d36d15d7e61818c7ed1cfd0786745d9ae6a2\nSigned-off-by: Dmytro Chystiakov \u003cdmytro.chystiakov@intel.com\u003e\n"
    },
    {
      "commit": "e08288465ece24860d61788b975a8267a4594379",
      "tree": "95bdb088b066aa9d1ed495244c13b3e644acbdec",
      "parents": [
        "e990078f055314baab073380c58819181203dd63",
        "bcaa454d32e1b4ccf92467bb263d627695ac9a5b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 27 02:05:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 02:05:57 2019 +0000"
      },
      "message": "Merge \"bionic tests: use GTEST_SKIP.\""
    },
    {
      "commit": "bcaa454d32e1b4ccf92467bb263d627695ac9a5b",
      "tree": "65d7d4c493242ecb51bfe1796f133b32538de514",
      "parents": [
        "ff16c0b89b7297bc70353f60afac9bb93d6b0087"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:20:23 2019 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 12 10:26:39 2019 -0700"
      },
      "message": "bionic tests: use GTEST_SKIP.\n\nAlso be a bit more to the point in our messages, focusing on \"why\" not\n\"what\".\n\nTest: ran tests\nChange-Id: I297806c7a102bd52602dcd2fcf7a2cd34aba3a11\n"
    },
    {
      "commit": "b39cb3c31db1ca67faadc60ba9c8338168da0b36",
      "tree": "36d5198635cfbb8248b6bd775e6748f0d1a41f7b",
      "parents": [
        "0771b752f1b955e7ded6ccbbf825b0ae93439eb5"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 01 13:12:49 2019 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 08 18:34:34 2019 -0800"
      },
      "message": "linker: Handle libraries with disjoint mappings correctly.\n\nIt\u0027s possible and sometimes beneficial for a library to have disjoint mappings\nand for other libraries to be mapped into the gap between the mappings using\nANDROID_DLEXT_RESERVED_ADDRESS. See for example the proposal for partitioning\nin lld [1].\n\nBecause the find_containing_library and do_dl_unwind_find_exidx functions use\na simple bounds check to figure out whether a pointer belongs to a library\nthey will, given a pointer into a library mapped into the gap of a library\nwith disjoint mappings, return a pointer to the soinfo for the outer library\ninstead of the inner one, because the outer library will appear before the\ninner one in the solist.\n\nFrom a user perspective this means that we won\u0027t be able to unwind the inner\nlibrary\u0027s frames on 32-bit ARM with libgcc, dladdr() will return information\nfor the outer library given a pointer to the inner one and dlopen() et al will\nuse the linker namespace of the outer library when called from the inner one\n(although they will usually be the same).\n\nTo make this work correctly, make it so that once find_containing_library\nsees a match for the bounds check, it examines the library\u0027s PT_LOADs to\nmake sure that there is a mapping for the given address. This is similar\nto how libgcc and libunwind_llvm already handle finding the PT_GNU_EH_FRAME\non non-ARM32 platforms [2,3]. do_dl_unwind_find_exidx is reimplemented in\nterms of find_containing_library.\n\n[1] http://lists.llvm.org/pipermail/llvm-dev/2019-February/130583.html\n[2] https://github.com/llvm/llvm-project/blob/e739ac0e255597d818c907223034ddf3bc18a593/libunwind/src/AddressSpace.hpp#L523\n[3] https://android.googlesource.com/toolchain/gcc/+/master/gcc-4.9/libgcc/unwind-dw2-fde-dip.c#294\n\nTest: /data/nativetest{,64}/bionic-unit-tests/bionic-unit-tests on walleye-userdebug\nChange-Id: I368fe6ad3c470b3dff80f7d9b04253566d63a7d2\n"
    },
    {
      "commit": "06d2d790adc8cc487881dc56234bb55c1c8c6901",
      "tree": "a7e6e1ca632724a10aed5a2e03e774f24c1935b4",
      "parents": [
        "ffaae70936a12e310cb1b468566d39f0f7dbcdf0"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Jan 23 23:19:19 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 29 08:35:10 2019 +0000"
      },
      "message": "Add tests for dynamic ELF TLS\n\nBug: http://b/78026329\nTest: bionic unit tests\nMerged-In: I508fa38b331eeec7dae53039b4b1ec6cedea3034\nChange-Id: I508fa38b331eeec7dae53039b4b1ec6cedea3034\n"
    },
    {
      "commit": "5f5a1929e8bd883c79669dc5dd2348d9cec1d1a6",
      "tree": "9bcd21c4e14268e538c2728474ae48b222020b33",
      "parents": [
        "96773a2daf8d11f2d95801935e26f71eb0265559"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 25 16:14:31 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Jan 25 17:53:01 2019 -0800"
      },
      "message": "Disable the dlfcn.dlopen_library_with_ELF_TLS test\n\nThis test is verifying that an ELF TLS solib can\u0027t be loaded, but once\nELF TLS is implemented, it *can* be loaded. Removing the test requires\ncoordinated changes with internal test suites.\n\nI could modify the test to verify that the solib was successfully loaded,\nbut support for dynamic ELF TLS appears across a few different CLs.\n\nBug: http://b/78026329\nTest: bionic unit tests\nChange-Id: If8cd798f456568a5c76310b754cea48ca8edaa82\n"
    },
    {
      "commit": "fb8730d49586f29868b5697d6a8c74aa9a4847d0",
      "tree": "2900d8f03068efb6a069eb6b579460855b43627b",
      "parents": [
        "1988350d1ccd1a99c628178612e1c9ce0f7858a3"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Jan 15 00:11:37 2019 -0800"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jan 17 00:45:55 2019 -0800"
      },
      "message": "Handle R_GENERIC_TLS_TPREL relocations\n\nThis relocation is used for static TLS\u0027s initial-exec (IE) accesses.\n\nA TLS symbol\u0027s value is its offset from the start of the ELF module\u0027s\nTLS segment. It doesn\u0027t make sense to add the load_bias to this value,\nso skip the call to soinfo::resolve_symbol_address.\n\nAllow TLS relocations to refer to an unresolved weak symbol. In that case,\nsym will be non-zero, but lsi will be nullptr. The dynamic linker resolves\nthe TPREL relocation to 0, making \u0026missing_weak_symbol equal the thread\npointer.\n\nRecognize Gold-style relocations to STB_LOCAL TLS symbols/sections and\nissue an error.\n\nRemove the \"case R_AARCH64_TLS_TPREL64\", because the R_GENERIC_TLS_TPREL\ncase handles it.\n\nRemove the no-op R_AARCH64_TLSDESC handler. It\u0027s better to issue an error.\ndlopen_library_with_ELF_TLS now fails with a consistent error about an\nunimplemented dynamic TLS relocation.\n\nBug: http://b/78026329\nTest: bionic unit tests (elftls tests are added in a later CL)\nChange-Id: Ia08e1b5c8098117e12143d3b4ebb4dfaa5ca46ec\n"
    },
    {
      "commit": "6d2c0bdf6e17cddb8568bbcac375d63f009f1575",
      "tree": "a7565b242dc519751ee6feebb9b2bf643fb07004",
      "parents": [
        "f3ff8dc6f42583ca179cf87919a0aa15597b942b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Aug 21 18:13:10 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 27 22:22:17 2018 -0700"
      },
      "message": "Move isolated test runner out of bionic.\n\nUse a global gtest isolation runner rather than the custom one in\nbionic.\n\nTest: Ran all unit tests and verified same behavior before and after.\n\nChange-Id: I24a7cf17cf8e018d0f51969c64b53ce9059cc779\n"
    },
    {
      "commit": "55547db4345ee692b9cfe727c97dd860ed8263f8",
      "tree": "75a49563252d78140d0b60ab84e3760871c32521",
      "parents": [
        "d566b93091cb7a553e1d195a425d2a30f2afee3a"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri May 25 14:17:37 2018 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed May 30 10:56:59 2018 +0200"
      },
      "message": "Add secondary counter in place of tls_nodelete flag\n\nThe tls_nodelete state should apply to load_group not\nisolated soinfo. This actually also means that multiple\nsoinfos may have tls_counter on their dso_handles.\n\nThis change replaces TLS_NODELETE flag with secondary counter.\nNote that access to the secondary counter (located inside soinfo)\nis pretty expensive because it requires soinfo lookup by dso_handle\nwhereas dso_handle counter is much faster. This is why it is updated\nonly when dso_handle counter starts or hits 0.\n\nBug: http://b/80278285\nTest: bionic-unit-tests --gtest_filter\u003ddl*\nChange-Id: I535583f6714e45fa2a7eaf7bb3126da20ee7cba9\n"
    },
    {
      "commit": "68140289206541c176e6123f476814a950d99ea2",
      "tree": "095c6166a7562f6b6b7bbd86fda2fda43240dfc7",
      "parents": [
        "4c5c45346fcc6f066a89bfc455f287fe2f4e3e41"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed May 23 14:20:29 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed May 23 14:40:40 2018 -0700"
      },
      "message": "Define DT_ANDROID_REL[A] correctly for a test\n\nDT_ANDROID_REL is 0x6000000f, but this code defined it as 0x60000002.\nDT_ANDROID_RELA is 0x60000011, but this code defined it as 0x60000004.\n\ncompat_elf_hash_and_relocation_tables tests that certain shared libraries\nare linked with ordinary relocations and not with packed relocations. A\nshared library will only have one kind of relocation table, so the test\nmostly still worked by requiring DT_REL[A].\n\nPreviously, this test would have allowed libdl.so to have packed\nrelocations.\n\nTest: /data/nativetest/bionic-unit-tests/bionic-unit-tests \\\n  --gtest_filter\u003ddlext.compat_elf_hash_and_relocation_tables\nTest: manual\nBug: none\nChange-Id: Ic8aa919a68fb6ed01a7994b69c0c7dd3798d6b67\n"
    },
    {
      "commit": "470b66644b912ac3025ea30141f2f327bb879445",
      "tree": "919718ba86bbabe7bec99cd2087f479b5594488f",
      "parents": [
        "ef59154d4129b132884f74ea0f38146f67383d81"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Tue Mar 27 22:10:55 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Mar 30 13:56:03 2018 -0700"
      },
      "message": "Break libdl.so and ld-android.so\u0027s dependency on libc.so.\n\n * Specify \"nocrt: true\" to avoid calling __cxa_finalize.\n\n * Define a dummy __aeabi_unwind_cpp_pr0 for arm32.\n\nBug: b/62815515\nBug: b/73873002\nTest: boot AOSP hikey960-userdebug\nTest: run ndk_cxa_example in special /system/bin/debug namespace\nTest: run Bionic unit tests\nChange-Id: I59bcb100a2753286b59c51a47d7a183507219a07\n"
    },
    {
      "commit": "9724e93c196d0dbaa0e60bf45c29971a22da50c9",
      "tree": "0d3e0847bff250b168a0fcb2af431ba7fed097ee",
      "parents": [
        "4d339287080022ed67bb98949d7eb6737f8c917b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 18:46:07 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 18:46:07 2018 -0700"
      },
      "message": "Reject .so files using ELF TLS.\n\nBug: http://b/74361956\nTest: ran tests\nChange-Id: I53e71252eb08c607c2c436dcba433374c8c53887\n"
    },
    {
      "commit": "9076b0c4e78e8680ce40ce48321e8ab81a87705b",
      "tree": "180da47f5ec09a0d6710feae9868aad5e33abc1e",
      "parents": [
        "bf6c0c8eaf755f5d1686b5022ee4c6d9eaf68686"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 28 11:29:45 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 28 12:37:28 2018 -0800"
      },
      "message": "Be clearer about linker warnings.\n\nExplicitly say \"warning\" for warnings, explicitly say what action\nwe\u0027re going to take (such as \"(ignoring)\"), always provide a link to\nour documentation when there is one, explicitly say what API level the\nbehavior changes at, and explicitly say why we\u0027re allowing the misbehavior\nfor now.\n\nBug: http://b/71852862\nTest: ran tests, looked at logcat\nChange-Id: I1795a5af45deb904332b866d7d666690dae4340b\n"
    },
    {
      "commit": "153168c855962082d23b3124286005f90ccb39f8",
      "tree": "892ac8546b3dc8e8fb179b2158f64e0452b464c0",
      "parents": [
        "0da25235703e8f382c7b9c5e606b84dd7a55711e"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Feb 20 16:51:41 2018 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Feb 20 17:10:00 2018 +0100"
      },
      "message": "Fix RTLD_NEXT/DEFAULT lookup\n\nRTLD_NEXT/DEFAULT lookup should not skip handle lookup\nin the case when the load group is RTLD_GLOBAL.\n\nNote that there is a difference between load group is local group.\nThe local group includes externally referenced libraries where\nthe load group does not. The external reference in this context is a\nDT_NEEDED library that belongs to a previously loaded group.\n\nBug: http://b/72237367\nTest: bionic-unit-tests --gtest_filter\u003ddl*\nChange-Id: I8997cc961c13a5396f1756161798b45ed1cab16c\n"
    },
    {
      "commit": "da1bb113408030cebd1b7f2ce4b10b0e1852666d",
      "tree": "cebae02340e29719ff51cf0c5e8e96d9e029cfbb",
      "parents": [
        "d5172fced0f88114e21086db5defaee64371de32"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 16 10:05:08 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 16 10:05:08 2018 -0800"
      },
      "message": "The VDSO soname varies by architecture.\n\nFrom http://man7.org/linux/man-pages/man7/vdso.7.html:\n\n       user ABI   vDSO name\n       ─────────────────────────────\n       aarch64    linux-vdso.so.1\n       arm        linux-vdso.so.1\n       ia64       linux-gate.so.1\n       mips       linux-vdso.so.1\n       ppc/32     linux-vdso32.so.1\n       ppc/64     linux-vdso64.so.1\n       s390       linux-vdso32.so.1\n       s390x      linux-vdso64.so.1\n       sh         linux-gate.so.1\n*      i386       linux-gate.so.1\n*      x86-64     linux-vdso.so.1\n       x86/x32    linux-vdso.so.1\n\nNote that Android \"x86\" is Linux\u0027s \"i386\", which is the odd one out\namongst Android\u0027s supported architectures.\n\nBug: http://b/72831787\nTest: ran tests\nChange-Id: I0a28127af042e2fd7673f24bbb30f8a50556cf96\n"
    },
    {
      "commit": "b6310c2aa704bd30990f4e3152e494b5290972b2",
      "tree": "818a92a3148fa0ec488d11b5281bc4026b7ca5dc",
      "parents": [
        "ee88e76f14111ea94745d7eec6caca9ffb526f1a"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Thu Jan 18 16:26:19 2018 -0800"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Thu Jan 18 16:26:45 2018 -0800"
      },
      "message": "Fixing app compat issue b/72143978\n\nThis is a squash revert of a4a4854 and 1b0f2b4\n\n  Revert \"Remove a test for backwards compatibility we no longer support.\"\n\n  This reverts commit a4a485454a3a117eccdca1113681f770d765d865.\n\n  # This is the commit message #2:\n\n  Revert \"Remove obsolete workaround.\"\n\n  This reverts commit 1b0f2b49d528c90842b4263269d9039d7e07415e.\n\nBug: 72143978\nBug: 24465209\nTest: Tested failing case on sailfish, reverted back all CL\u0027s since\nTest: 3471433 for b/24465209 and apps open\n"
    },
    {
      "commit": "a4a485454a3a117eccdca1113681f770d765d865",
      "tree": "9be805b48b3e9f7bad129410f9ee157feccd76fc",
      "parents": [
        "25a3087d6dde58e126c5ecb1033319ff333fcc59"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 12 15:27:48 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 12 15:27:48 2018 -0800"
      },
      "message": "Remove a test for backwards compatibility we no longer support.\n\nBug: http://b/24465209\nTest: ran tests\nChange-Id: I80bb86379f108d88a6f4abb031450d13ac87c7b9\n"
    },
    {
      "commit": "06016f226efe7aff2736643cb8e719c513948ecc",
      "tree": "9966630fba35664dc74ac357c43dc81257115410",
      "parents": [
        "581723ebc7acdbf8b095b44928dac3d0767382fa"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri Jan 05 11:39:28 2018 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Jan 10 10:24:06 2018 +0100"
      },
      "message": "Fix dlclose for libraries with thread_local dtors\n\nIntroduce new flag to mark soinfo as TLS_NODELETE when\nthere are thread_local dtors associated with dso_handle\nbelonging to it.\n\nTest: bionic-unit-tests --gtest_filter\u003ddl*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddl*\nBug: https://github.com/android-ndk/ndk/issues/360\nChange-Id: I724ef89fc899788f95c47e6372c38b3313f18fed\n"
    },
    {
      "commit": "109040c868230d2f37c2f3964c6b62f63ff30c6c",
      "tree": "ec03961b2cf3b9e04e73c0fc3b075f58b721b49d",
      "parents": [
        "691758c1c2a72ee626608dfb83aec08ceaa387c2"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri Nov 03 13:49:07 2017 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Nov 07 10:51:59 2017 +0100"
      },
      "message": "Add test checking library unload on dlclose\n\nBug: http://b/68262627\nTest: Run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nChange-Id: Ied85bc4ab37524cfcdbc33fd6c6e69b8d87ee08a\n"
    },
    {
      "commit": "527229cb72121dbd09e40369f67d2cf636d3bf03",
      "tree": "969fac5ad6f216235ef30f850d18a530c7c8c617",
      "parents": [
        "b06bb71672094d18d928c19ddc631af07931431f"
      ],
      "author": {
        "name": "Raj Mamadgi",
        "email": "r.mamadgi@samsung.com",
        "time": "Thu Nov 02 15:53:50 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 03 15:00:09 2017 -0700"
      },
      "message": "Fix for dlfcn.rtld_next_from_library.\n\nUsing fclose to get the same address for the test assertion because\nSamsung already uses LD_PRELOAD to intercept `close`.\n\nBug: http://b/67978141\nBug: http://b/68855476\nTest: ran tests\nChange-Id: I2da463e8b27e0db5cb1ba370d30f0402d7531396\nSigned-off-by: Raj Mamadgi \u003cr.mamadgi@samsung.com\u003e\n"
    },
    {
      "commit": "01162f24696aedd0f80fde006596bec7786ac684",
      "tree": "df56be16f8b8caffdb1b8ed76ea7634ef7934476",
      "parents": [
        "8f57fd41790883ce210866a5a20d77cc910c87ad"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Oct 16 15:31:09 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Oct 19 15:13:54 2017 +0900"
      },
      "message": "Fix: linker segfault on dlopen of a DF_1_GLOBAL so\n\nAdded the missing null check routine.\n\nBug: 67755729\nTest: dlfcn.dlopen_df_1_global added and it passes\nChange-Id: Ibe8db18b0b5a481e2e9937041abef6d6b179dd87\n"
    },
    {
      "commit": "b9555a9251467bc2d0b05a4e2f011531c1d3bd4a",
      "tree": "495d6b1fecfc00122c2e4c60acc9feed2841b6ba",
      "parents": [
        "983c2da84cdcd0171b7f726b78990cabd0a58f49"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Oct 11 18:04:05 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Oct 11 18:04:05 2017 +0200"
      },
      "message": "Fix dlopen_vdso test\n\narm32 is still missing vdso (at least on some kernels).\nThis commit adds explicit check for it and skip the test\nif AT_SYSINFO_EHDR is not set.\n\nTest: run 32bit bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_vdso on angler\nChange-Id: I7fae78c6a4f819601a4ac9e8e1da53ff07c833ff\n"
    },
    {
      "commit": "c18de1bd47a558c9a24c6a4645df27df2c4738b4",
      "tree": "12560d5f188699814f191c5221e5ccb177ae25a1",
      "parents": [
        "9c172c86e719fc75a75e16d629c088d4aeb9a6cb"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Sep 26 14:31:35 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Sep 26 14:34:18 2017 +0200"
      },
      "message": "Link vdso before linking the main executable\n\nAlso set linked flag after it is linked and\ncall constructors. Set RTLD_NODELETE flag to\nprevent accidental unloads.\n\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddl*\nChange-Id: Ib2178849b918cbefd6f8fcfe6d1f78889fe0bf76\n"
    },
    {
      "commit": "db6ab3d5ecfe9934cb91a09bc4ccdbf2d15b49fc",
      "tree": "09f7a5f2644cc262e0b5c8e426e30480524a56a4",
      "parents": [
        "82d746fb39465e78088aeb11a5dc178cf264d0c0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 27 11:02:51 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 27 11:02:51 2017 -0700"
      },
      "message": "Enable dlfcn.dt_runpath_absolute_path in glibc tests\n\ndlfcn.dt_runpath_absolute_path no longer fails when\nrunning bionic-unit-tests on glibc\n\nBug: http://b/25320359\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddlfcn.dt*\nChange-Id: Ia0ecf43293cb0fed28516fd8cb87e7f5f2d6e648\n"
    },
    {
      "commit": "8ad40936597c94901b6acb0b21bfe0e2a0689224",
      "tree": "d228db0e344a21109b07276e5282c841daa88269",
      "parents": [
        "0bd23e47067126677537a2b5bedd22dce54d92e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 15:12:29 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 15 15:12:29 2017 -0700"
      },
      "message": "Add #defines for some key enums.\n\nBuilding ruby actually trips over both of these:\n\n* if the RTLD_ constants aren\u0027t #defined, it uses its own incorrect values.\n\n* if the REG_ constants aren\u0027t #defined, it confuses x86 with x86-64.\n\nIn all other places where we have enums in our headers, we already match\nexisting glibc practice.\n\nBug: http://b/62531921\nTest: builds\nChange-Id: I5b3aab25a1a24611bdc58f2eda4104a78e9f841c\n"
    },
    {
      "commit": "c42b4bb097c6a89bd9016bcbeed08a436d591d27",
      "tree": "3dd769dedd1f764d7a549e5a6d268d2f3bd63870",
      "parents": [
        "846924ae9583991a99a5924b2542c992d4bc094e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 03 11:01:00 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed May 03 11:01:00 2017 -0700"
      },
      "message": "Remove known failures from arm ifunc tests\n\nSince clang does not produce IRELATIVE relocations\nthis test started passing when we switched away from gcc\nThis is still a problem because it now leads to\nsituation where static ifuncs become globally visible\nbut this is a different problem.\n\nTest: bionic-unit-tests --gtest_filer\u003ddl*\nChange-Id: Id27ba5093b88519c00acbc43ab8a991a671a9f51\n"
    },
    {
      "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": "b8ab61804cec48e4ca585f4508fb1b7c6c5a04c5",
      "tree": "4a1045e4b9e30c52e6c3886de8474c0aeb2c8996",
      "parents": [
        "12021ce9cf1ec1bc47cded3402ac9a3aa7b9b396"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:20:29 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 05 16:37:07 2017 -0700"
      },
      "message": "Move scopeguard into android::base\n\nTest: boot bullhead, bionic unit tests\nChange-Id: I223249684867655ecb53713b10da41d3014f96ae\n"
    },
    {
      "commit": "fc32dcb128efe35442830e2dcfa378f1d50fef1c",
      "tree": "26c42db2eb5afa8db73ad23f0fad0b7e06ad9b39",
      "parents": [
        "e98d1e68ce37bb9238e3c50ea6b01d1057adb2eb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 24 10:58:23 2017 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 24 10:58:23 2017 -0700"
      },
      "message": "Disable compat_elf_hash_and_relocation_tables test for x86\n\nBug: http://b/36571076\nTest: run bionic-unit-tests on fugu\nChange-Id: I2f901bc99e55f15b06fe6a5b0d7a125d1b8241a8\n"
    },
    {
      "commit": "35c8e3b1251af62897a9babd693e2b1be5676160",
      "tree": "3cc1d7cfe239740c04f29d35058048bea7b47c9f",
      "parents": [
        "5f41ce25c60df2012b58846940dfac58dce50e59"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 27 12:17:47 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 27 14:16:04 2017 -0800"
      },
      "message": "Fix greylist exception to account for linked namespaces\n\nDo not load second copy of libraries that are supposed to\nbe provided by linked namespaces. Also do not print\nerror in the log if caller tries to open shared library\nusing absolute path for apps targeting N+.\n\nBug: http://b/35454141\nBug: http://b/26833548\nBug: http://b/35338922\nTest: run bionic-unit-tests --gtest_filter\u003ddl*\nChange-Id: Icf3aeedff18d287d2ba0b3df3808b100f3ef5f7a\n"
    },
    {
      "commit": "ec90e24d33837e107b45e7c98b2f5fb4bc115a5e",
      "tree": "da59fda3b0eac92d43fe86dc457506a11382953c",
      "parents": [
        "132768084e24119c337e56fd110b97a23e5593c2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 10 11:04:20 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 10 16:11:51 2017 -0800"
      },
      "message": "loader: fix d-tor call order\n\nIn the case when there are multiple dependencies on\nthe same library in the local_group the unload may\nin some situations (covered now by tests) result\ncalling d-tors for some libraries prematurely.\n\nIn order to have correct call order loader checks if this\nis last dependency in local group before adding it to BFS\nqueue.\n\nBug: http://b/35201832\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddl*\nChange-Id: I4c6955b9032acc7147a51d9f09b61d9e0818700c\n"
    },
    {
      "commit": "ea8f396c59f824993044d9474c2dc04423003c59",
      "tree": "eb39d5e37d3a442b7c2d4f4c3705922b380cd47e",
      "parents": [
        "2bfb8c9180603bac97dca2d8e359f71bb11f7126"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 09 13:31:57 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Feb 09 14:07:05 2017 -0800"
      },
      "message": "Add test checking init/fini call order\n\nThis test is checking that loader complies with the order described in\nhttp://www.sco.com/developers/gabi/latest/ch5.dynamic.html#init_fini\n\nBug: http://b/35201832\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddl*\nChange-Id: I4cdf878c043112442c191e82aa9f5d5077e4d8c4\n"
    },
    {
      "commit": "14b9d7199c1b147ef6ce6e522ff14413930d2127",
      "tree": "3a03404800caf92653df79769628d373c5949ead",
      "parents": [
        "18c009ca96a432b35c76aeb9f62687b2db5153c0"
      ],
      "author": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Jan 25 19:59:16 2017 +0100"
      },
      "committer": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Jan 25 20:57:48 2017 +0100"
      },
      "message": "Fix bionic-unit-tests in arch with binary translator\n\nIf binary translator is involved then libc is not place in /system/lib\nor /system/lib64.  It\u0027s placed into /syste/lib/arm, /system/lib/arm64,\netc.  FUGU is an example of such an architecture.\n\nSupport both cases by picking right path at runtime.\n\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.dladdr_libc\nChange-Id: I8345c0f6c19376ebe5106f9670fd2addeb9b9080\n"
    },
    {
      "commit": "01c888c857f6f19837c5db581be83cc06f13fa1c",
      "tree": "3001b40a30181a5a1f95d219feb2ceba87a75333",
      "parents": [
        "7844b4c5dbd0be9ea4212a523da2dd6a4804032c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 14:48:21 2017 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jan 23 14:52:07 2017 -0800"
      },
      "message": "Mark ifunc tests failing on arm as known failures\n\nBug: http://b/27930475\nTest: run bionic-unit-tests on arm and arm64\nChange-Id: I5084b6a5ef4b56ca9985da63a5e6896f771810f0\n"
    },
    {
      "commit": "59dd61573fe815893b0ea08b96231c4d237802a0",
      "tree": "5e879fef12c5a253f0165b6d0883b6798387021d",
      "parents": [
        "22ef13ff9d071f887b8445ca353ea89dedb815c8",
        "ac4bd2f79316e8ee79e9a69463e5d12d0f792aad"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 15 18:27:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 18:27:22 2016 +0000"
      },
      "message": "Merge \"Add test for elf-hash and packed relocations\""
    },
    {
      "commit": "d5b578ac15330d7a872c198427628b723e0cc1cb",
      "tree": "2b80ee4a73c9014f68a9accb0bc660e5112b97e2",
      "parents": [
        "1adb683447c7a7cc46745fb0dfcbbb0d7e31380a"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 14 15:16:56 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 14 15:16:56 2016 -0800"
      },
      "message": "Add test for empty symbol lookup\n\nCheck that dlsym(handle, \"\") fails.\n\nBug: http://b/33530622\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn*\nTest: bionic-unit-tests-glibc --gtest_filter\u003ddlfcn*\nChange-Id: Iae572bd1d9b798be619c5018de2a5450bf37977e\n"
    },
    {
      "commit": "ac4bd2f79316e8ee79e9a69463e5d12d0f792aad",
      "tree": "4588bf97c4a1e218521094fb185c58a7f8c12562",
      "parents": [
        "f27e97956d6705c09f38442423f5e115cbe55f0f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 21 12:50:38 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 14 11:16:21 2016 -0800"
      },
      "message": "Add test for elf-hash and packed relocations\n\nThis adds CTS test for system libraries to support\nworkaround for http://b/24465209: some apps require\na subset of system libs to have elf-hash and not to\nuse packed relocations.\n\nBug: http://b/32917341\nBug: http://b/24465209\nTest: bionic-unit-tests --gtest_filter\u003dDl*:dl*\nChange-Id: Ia0bc28506b1f1f97d4cf902d73b0769e2815fed3\n"
    },
    {
      "commit": "d0b5c3ad65accd2c0298edbdfd527ede63e68ba1",
      "tree": "2c38f769ab809642c585c84a5142f4507e788488",
      "parents": [
        "0dafdd430661b96439b1d154d6ce146fd46f617e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 25 12:23:11 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 28 13:09:19 2016 -0800"
      },
      "message": "Fix bionic-unit-tests-glibc\n\nAlso add another test for dlsym(RTLD_NEXT, ..)\n\nBug: http://b/33106624\nTest: run bionic-unit-tests-glibc and bionic-unit-tests\nChange-Id: I340165d66bf2360b0e3273d3561a08cb5e7bd025\n"
    },
    {
      "commit": "c7365eb2fa996e72c5ea7f4e20222d6b48b9c6e0",
      "tree": "96bf78a1a50323dde10b2329b88ffa88f15029ab",
      "parents": [
        "3613c20c59f931caa7d5411e4350306a4d6ad1e0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 17 12:38:09 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Nov 17 14:23:24 2016 -0800"
      },
      "message": "Improve dlerror_concurrent test\n\nAdd a test to check if result is thread-local, not only buffer.\n\nTest: run bionic-unit-tests\nChange-Id: Ia95f88c0d76aa86f7f439836393abd67a57dd396\n"
    },
    {
      "commit": "816676e70da0e00761b0d23f512ea3571211b3ae",
      "tree": "8be0a547c1c6def6d16b81b212c8d3188241711f",
      "parents": [
        "d8244214751f9b48e60e69910c4e7175f8fab1ac"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 19 11:00:28 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 19 14:21:42 2016 -0700"
      },
      "message": "Add test for libraries with textrels\n\nMake sure android fails to load them.\n\nBug: http://b/30795430\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\nTest: cts-tradefed run singleCommand cts --skip-preconditions -m CtsBionicTestCases\nChange-Id: Id0ebdf336b2f297007479ceb1bbccf778a7ca3f2\n"
    },
    {
      "commit": "927877c7d3173c1259732e51428f4ae38dc6bc4f",
      "tree": "fc558a23c5b705ffcfaff7e6e4b2278a27e3d0c2",
      "parents": [
        "708589f5e8244a17d690848eed5f0fbfcce48a26"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 21 11:17:13 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 10 13:56:20 2016 -0700"
      },
      "message": "bionic-unit-tests: remove dependency on ANDROID_DATA\n\nReplace references to ANDROID_DATA enviroment variable with references\nto g_testlib_root.\n\nBug: http://b/22182538\nTest: build and run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nTest: make cts \u0026\u0026 cts-tradefed run singleCommand cts --skip-preconditions -m CtsBionicTestCases\nChange-Id: I5667e991551cec55b9b664f2f0063039671ff34b\n"
    },
    {
      "commit": "708589f5e8244a17d690848eed5f0fbfcce48a26",
      "tree": "c89c96b86a7248a9e398a00128cd3c4459503a3c",
      "parents": [
        "1c45e6fa47a2ab9b0b9dc8ab05f75023a8ebbd2d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 19 10:50:28 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Oct 10 04:41:56 2016 -0700"
      },
      "message": "bionic-unit-tests: Create symlinks in runtime\n\nInstead of creating symlinks in build time and then relying\non usage of adb sync (adb push follows symlinks) - create\nthem in test run time.\n\nTest: mm \u0026\u0026 run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nBug: http://b/22182538\nChange-Id: I9d2a873e3ba303533c14ba5e3b779e4a67925462\n"
    },
    {
      "commit": "a36e59bb9973aaae2e3487e0bfadd1f79814097e",
      "tree": "340c2c5c1fceebc214e8c2c2f6f9cb2e875d8640",
      "parents": [
        "dd14725eeb1e5496e92ad777db165b21ad4651f0"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 01 11:37:39 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 02 14:27:47 2016 -0700"
      },
      "message": "Move test libraries under /data/nativetests\n\nMove libraries used in bionic-unit-tests out of system partition to\n/data/nativetests../bionic-loader-test-libs\n\nBug: http://b/22182538\nTest: build bionic and run bionic-unit-tests\nChange-Id: I170177bef782839d0b4970ae4418bf54d0a77836\n"
    },
    {
      "commit": "44a654446e77549a0e988778ea0b738c4790e156",
      "tree": "e0d52b29c1be31d12c6702225ed7520b89ab0bd2",
      "parents": [
        "061446c2df4ac5f06d10da755d5977abdcb152b9"
      ],
      "author": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Tue Aug 16 20:47:40 2016 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Tue Aug 16 18:52:06 2016 +0000"
      },
      "message": "[mips] Add missing linker shdr tests\n\nTest: bionic-unit-tests for mips, mips64.\nChange-Id: I8ed5f03df8d129e74fa04be2b203bd113a381888\n"
    },
    {
      "commit": "3b2d331e77143ce63ad7f404ab6669c03178eff4",
      "tree": "9e22d232e0fae6f84fd31d8f5b8b890296d12399",
      "parents": [
        "52848b02b37eae075fd5f3cbc9087f49cd0173d4",
        "559583469cd6425cdf3f63bcfc453d7d885ce131"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 23:23:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 23:23:26 2016 +0000"
      },
      "message": "Merge \"linker: add test for zeroed out shdr_table_\""
    },
    {
      "commit": "4154b77285ee97186a9d81ef72cbad91f6b8ba0f",
      "tree": "c85baee79559721c3c393f3a4f33cd03f57cd101",
      "parents": [
        "63ccb1bdac7b70b59d7f4187919d7b291e1a3f36",
        "46230445172d3cd72c38102d57f5a1b725c80367"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 22:01:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 22:01:30 2016 +0000"
      },
      "message": "Merge \"linker: add test for zero shdr offset\""
    },
    {
      "commit": "559583469cd6425cdf3f63bcfc453d7d885ce131",
      "tree": "b4f97018d077943756709fbcb2738ebfffe59250",
      "parents": [
        "46230445172d3cd72c38102d57f5a1b725c80367"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 14:06:04 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 14:06:04 2016 -0700"
      },
      "message": "linker: add test for zeroed out shdr_table_\n\nBug: http://b/30795430\nChange-Id: I86b658d01b64670d3e702ddb1d3f9db4f75d784f\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "63ccb1bdac7b70b59d7f4187919d7b291e1a3f36",
      "tree": "5c7ce1d6702b5f33a4a4af1ebb078543ee2f03f4",
      "parents": [
        "228e747b6c40da2945310cda214b829f7de8cb60",
        "293d5132d0a48a699efa6b1675eb3e2f73dd04da"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 21:00:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 21:00:47 2016 +0000"
      },
      "message": "Merge \"[MIPS] Fix bionic test build\""
    },
    {
      "commit": "46230445172d3cd72c38102d57f5a1b725c80367",
      "tree": "7a29c4208375355d93ddd1ad8d0eca2c5f46f688",
      "parents": [
        "228e747b6c40da2945310cda214b829f7de8cb60"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 13:40:53 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 13:42:47 2016 -0700"
      },
      "message": "linker: add test for zero shdr offset\n\nBug: http://b/30795430\nChange-Id: I03853257c4b632ad9daaf1e90f9620678397cff0\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "293d5132d0a48a699efa6b1675eb3e2f73dd04da",
      "tree": "260ea9e5c189a227d323833e4cd7722269d6191f",
      "parents": [
        "21482db6e134749d43a2985d5b33397bc1a54852"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Mon Aug 15 15:58:42 2016 +0200"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 12:48:20 2016 -0700"
      },
      "message": "[MIPS] Fix bionic test build\n\nGroup of libtest_invalid* libraries does not exists for mips architecture,\nso disable relevant tests.\n\nChange-Id: I3a4fef94933eb33654c4274aa249ea5d61d6cf9b\n"
    },
    {
      "commit": "8bdf70e6e481d4ff0c1097f738d8e857a43c1b16",
      "tree": "055f58375e7da9739c65a93c17411ac8c56508d7",
      "parents": [
        "c9a95613a95b1a275ff897594abb89786ae387ed"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 11:30:45 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 11:30:45 2016 -0700"
      },
      "message": "linker: add test for empty shdr table\n\nBug: http://b/30795430\nChange-Id: Id839c22f88276f31e0615bc2a67d75e27a9aa7c6\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "c9a95613a95b1a275ff897594abb89786ae387ed",
      "tree": "c83add2071e92bae785f4a65c84423b6c7b85bc9",
      "parents": [
        "0deb70cd04aef99b12d9596615c661a87cf6b95c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 10:27:47 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Aug 15 10:29:50 2016 -0700"
      },
      "message": "linker: add test for zero shstrndx\n\nBug: http://b/30166532\nBug: http://b/30795430\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\nChange-Id: I4cec73635cf403df9dd60b9a294d2298bb0abe3d\n"
    },
    {
      "commit": "cb86c3128f5e59348d91f2edfa2de908d69cd384",
      "tree": "103fb76e4b9f41d17e12c3398bded90475669607",
      "parents": [
        "972e3d0787cf177450cdc1b52e177c747b94caba"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 15:28:42 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 15:28:42 2016 -0700"
      },
      "message": "linker: add test for zero e_shentsize\n\nBug: http://b/30166532\nBug: http://b/30795430\nChange-Id: I249c081563f0ca7bcc799d8445a53683616eaa4e\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\n"
    },
    {
      "commit": "972e3d0787cf177450cdc1b52e177c747b94caba",
      "tree": "1c7fe58e2c8a7c40c0f5b124b4c0bdc7136ce1c6",
      "parents": [
        "4a77fa3dcd9a6da622c77e25a3537f3a6a594863"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 14:25:50 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Aug 12 14:48:15 2016 -0700"
      },
      "message": "Add test for misaligned section header\n\nMake sure linker does not crash when dlopening\nelf-file with odd section header offset.\n\nBug: http://b/30795430\nBug: http://b/30687964\nTest: bionic-unit-tests --gtest_filter\u003ddlfcn.dlopen_invalid*\nChange-Id: If59cb6da85b8752a69dc5687de85f9a9b74c92b4\n"
    },
    {
      "commit": "9700babc051f5839b4fc861587d63bf06bab6324",
      "tree": "9a98bffcda9eb741b937947d781e8bdf33025b93",
      "parents": [
        "3e35b26704b17139f6cd49d66d1be8e1a74d43dc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Aug 10 18:54:06 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 11 17:24:47 2016 -0700"
      },
      "message": "linker: disallow W + E PT_LOAD segments\n\nNo mapped segment from the elf file can be writable and\nexecutable at the same time. This commit adds a check\nfor malformed PT_LOAD segments in the elf-files.\n\nBug: http://b/30146890\nTest: run bionic-unit-tests --gtest_filter\u003ddlfcn.*\nChange-Id: Ia23acbe5a48780b65d7e4a50bbe024cd528079f4\n"
    },
    {
      "commit": "554374693408cd7c74d0cae596fca7349661edea",
      "tree": "3eb695917d4e37fc7f78a26202ec2119692fd964",
      "parents": [
        "a9fbaee593242b3257819c1603cdd157604247e7"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jul 20 15:33:07 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Jul 20 16:10:19 2016 -0700"
      },
      "message": "Pass argc/argv/envp to dso constructors\n\nThe glibc implementation of the loader passes argc/argv/envp\nto all elf constructors. This change makes bionic linker\nbehave in the same way.\n\nBug: http://b/30145768\nChange-Id: I1c65c42aa5305a5b133c64b5748205bbde869e0e\nTest: run bionic-unit-tests --gtest_filter\u003ddl*:Dl*\n"
    },
    {
      "commit": "2ba1cf39ae6087249a839ec7b3793d4d4fa75438",
      "tree": "adf1d98570a548157112a307ccd58c17b5ffb320",
      "parents": [
        "5df5884743306f7b2ee437c293f4197101528a98"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 17 13:29:37 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 17 13:55:46 2016 -0700"
      },
      "message": "Fix dlopen of main executable by absolute path\n\nThis CL adds initialization of inode for the main executable\nwhich enables linker to resolve the correct soinfo when\napplication calls dlopen with absolute path to the\nmain executable.\n\nBug: http://b/28420266\nChange-Id: I102e07bde454bd44c6e46075e3faeeb5092830d8\n"
    },
    {
      "commit": "ba35b2d1b91459568133c1f4729a6fff8359e3d9",
      "tree": "4b485116f8c05472c6f9067e365bb29ea43df6d3",
      "parents": [
        "5e843fb7c4da3e45c099abd1cb72462dbd775078"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 08 11:47:53 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 08 11:50:42 2016 -0700"
      },
      "message": "Add test for IRELATIVE resolution with RTLD_LAZY\n\nEven though bionic linker does not support RTLD_LAZY - it\nis good to know that its behavior matches glibc.\n\nBug: http://b/27930475\nChange-Id: I1a47263aaa3dc44f9ac61fe77deb55a21e7f881a\n"
    },
    {
      "commit": "0a2ab0203cc12c9b4b7647b18caf0343af8ca1a4",
      "tree": "97bd399c67534672f8e4f99a37ff3015a25ea34c",
      "parents": [
        "66606ff84c079e95c03a61cc8bcfb08261a5a173"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 05 17:12:01 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Apr 05 17:37:45 2016 -0700"
      },
      "message": "Do not test ifunc on mips\n\nThis commit fixes mips build\n\nBug: http://b/28009632\nChange-Id: I5c657b31947791aea4cc02a2fc4ede6d0ecde851\n"
    },
    {
      "commit": "c967d892456ae8d578dfc75f241d9af04f31811f",
      "tree": "4e99908cc061ba4d35a783b4fe2f0bac029b0f02",
      "parents": [
        "d15837a3b20ac2151481323d6d06e8c0355d3757"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 30 16:44:48 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 04 11:28:41 2016 -0700"
      },
      "message": "Enable ifunc test for arm\n\nBug: http://b/27930475\nChange-Id: I1f9e7c5b9ffabfd77ae6ebd534938aef39ec7987\n"
    },
    {
      "commit": "9cf99cbad89c8495828788ce693a99ced434f66f",
      "tree": "fa089662db2475f6e4e1260f029fcab805eb0a96",
      "parents": [
        "d3e5301a75256171199b23f6ba2c6651d05ce5f1"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 14:22:24 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Dec 16 15:24:13 2015 -0800"
      },
      "message": "linker: add dlvsym(3)\n\nThis changes implements dlvsym - dlsym for versioned symbols.\n\nBug: http://b/22865643\nChange-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f\n"
    },
    {
      "commit": "4a2c5aa30ceea2aaf8dcaee2feb4879978af4fce",
      "tree": "77265fd642a5bbfd2d0804f9922effca3f8de815",
      "parents": [
        "9d8632e1a76de6bd6abc853c0fbd6a2c9dc32cdc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 16:08:14 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 16:24:57 2015 -0800"
      },
      "message": "Move dlsym and dladdr implementation to linker.cpp\n\nBug: http://b/25716705\nBug: http://b/22865643\nChange-Id: If22fc1eda219f676b5fcc06490f7901d21d1749c\n"
    },
    {
      "commit": "6f2d3104c82f81c1f0123a3cfb25ae670841d0ba",
      "tree": "0e69cd361e7de4ce1e0129195901602787160997",
      "parents": [
        "fb7f45b6a3242c9a9a547705de08cf59e6b7f935"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Tue Oct 13 16:43:00 2015 +0200"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 13 10:57:41 2015 -0700"
      },
      "message": "Correctly resolve realpath for absolute paths\n\nIntroduced by: https://android-review.googlesource.com/174475\n\nChange-Id: I44e00040b28be167d5141454f919340afec6084e\n"
    },
    {
      "commit": "0cdef7e7f3c6837b56a969120d9098463d1df8d8",
      "tree": "f44b3e6464e03267081879a3155daf6ad096d905",
      "parents": [
        "83474cd38712c0f955174609a880deabebb27518"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 06 17:56:31 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jul 07 10:56:06 2015 -0700"
      },
      "message": "Respect caller DT_RUNPATH in dlopen().\n\nWhen dlopen-ing a library, add the caller\u0027s DT_RUNPATH to the directory search\nlist. This fixes dlfcn.dt_runpath in bionic-unit-tests-glibc(32|64).\n\nBug: 21899363\nChange-Id: Ife6a7e192939292cf4dc291b7e6b95945761cde3\n"
    },
    {
      "commit": "aff18fd60804e177c319d04dd4c12f3ee1c0cba8",
      "tree": "4cbdec04aa3b8abfbf95ce90566151e3e0a7c668",
      "parents": [
        "a8993c994e45ec2dc00dcef15910560e22d67be9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 23 13:58:22 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jun 23 13:58:22 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nChange-Id: If66d0c5ae1ea1ed371b44e067d4ae59ac54a8842\n"
    },
    {
      "commit": "6865082ca6d887766c6651ed2d079dca56a99d32",
      "tree": "6884766e12440a9d2b5bfd99de77ee0972edaab8",
      "parents": [
        "f3463db7eb37cb7d9dd5e32dfb5b2bd24f808fb3"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jun 10 13:38:39 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jun 10 16:44:22 2015 -0700"
      },
      "message": "Support DT_RUNPATH in the linker.\n\nOnly $ORIGIN substitution is supported, but not linux-specific $LIB\nor $PLATFORM.\n\nChange-Id: I5814a016c7c91afba080230a547a863686e7c2b9\n"
    },
    {
      "commit": "f439b5a3186ca0fef1092f45770abc716da9d87a",
      "tree": "d85508ffcefb14495e90d6e0669440558f753367",
      "parents": [
        "d70891687d742414d457e41a998726e5eb0a09bd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat May 30 13:04:39 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Jun 01 14:33:43 2015 -0700"
      },
      "message": "Fix dlsym(handle_of_main_executable, ...)\n\n  According to man dlopen(3) and posix docs in the case when si is handle\n  of the main executable we need to search not only in the executable and its\n  dependencies but also in all libraries loaded with RTLD_GLOBAL.\n\n  see also: http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlopen.html\n\nBug: http://b/21528224\nBug: http://b/17512583\nBug: https://code.google.com/p/android/issues/detail?id\u003d173822\nChange-Id: Ib2801367ba48b6f3704da89a6d9f5e6911430013\n"
    },
    {
      "commit": "697bd9fd38ab078a117ad9a5777cf286c467b9b9",
      "tree": "f34ace69fa45951dbcd215dea1c040b549bf3c6f",
      "parents": [
        "75f2dfca653dd57b6f65bf898ec4f45d87d18926"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 11:12:27 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 12 13:46:40 2015 -0700"
      },
      "message": "Improved dlsym tests and fixes to linker\n\n Answers the question: what if dependent library\n was preloaded with RTLD_LOCAL flag.\n\n Also add test for RTLD_NEXT within local_group.\n\nBug: http://b/17512583\nChange-Id: I79e081e68b3a8c0ed8980d4275a06515fea94ec9\n"
    },
    {
      "commit": "6612d7a34768484eb002c07a1c7df1bd85c0997a",
      "tree": "fcc60bf45254bf181ed12930c162b270a5cd6908",
      "parents": [
        "2bb93482a7793640205ade2f7316db5b3f5cac19"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 16:26:03 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 24 16:26:03 2015 -0700"
      },
      "message": "Enable dlsym_df_1_global test for arm/arm64\n\nChange-Id: I1fdebced93175cb14053e2239e79f97239fc2dc2\n"
    },
    {
      "commit": "2a815361448d01b0f4e575f507ce31913214c536",
      "tree": "82b941e908b54d6d48ef04495ff2808aa2823ae1",
      "parents": [
        "c6ccdfaf1ff4665ec96962863054263510d73e7b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 13:42:33 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 16 17:57:30 2015 -0700"
      },
      "message": "Support symbol versioning\n\nBug: http://b/20139821\nChange-Id: I64122a0fb0960c20b2ce614161b7ab048456b681\n"
    },
    {
      "commit": "ef25592f14d23ce6294ea103e9edf894779d141d",
      "tree": "5c6bd7e34adb984bb2d63f9f115ce6d85b0803f5",
      "parents": [
        "598493e725e0298ae11ddbdee62c3a7007eb503c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 08 11:53:08 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 09 14:56:26 2015 -0700"
      },
      "message": "Fix dl* tests to run-on-host\n\nBug: http://b/20121152\nChange-Id: I1e1f41d885c75dbb26f91565a53a15d62ef72ce6\n"
    },
    {
      "commit": "aae859cc3ca127d890e853cbf12b731e05624a22",
      "tree": "159e996dd6756b99fe70371e99a69ec6040e851b",
      "parents": [
        "e686df8d839216460f02cf7db6c4e26a13e49afd"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 31 11:14:03 2015 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Apr 06 21:15:43 2015 +0000"
      },
      "message": "Add realpath for soinfo\n\n  This change adds realpath to soinfo and\n  extends limit on filenames from 128 to PATH_MAX.\n\n  It also removes soinfo::name field, linker uses\n  dt_soname instead.\n\nBug: http://b/19818481\nBug: https://code.google.com/p/android/issues/detail?id\u003d80336\nChange-Id: I9cff4cb5bda3ee2bc74e1bbded9594ea7fbe2a08\n"
    },
    {
      "commit": "76ac1acdacc045cf1e56504e011dca68137dcd61",
      "tree": "9eb3bee0f92ae74f1eba59efad4c037d50aa3dcd",
      "parents": [
        "ab7c79e22e5495a2aa171047a044ce1037e461a9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Apr 01 14:45:10 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 02 14:12:45 2015 -0700"
      },
      "message": "Look into local group on dlsym with RTLD_DEFAULT\n\n  Fix dlsym to look into local group when called with\n  RTLD_DEFAULT and RTLD_NEXT.\n\nBug: 17512583\nChange-Id: I541354e89539c712af2ea4ec751e546913027084\n"
    },
    {
      "commit": "52393a56335435efc605aff66aca3145873e1e56",
      "tree": "db601ac602f90c06269d41fb653c15797b2d7188",
      "parents": [
        "6943f2968cb6054f8874e30b309985b41a37e2e0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 22:50:01 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 22:50:01 2015 -0700"
      },
      "message": "Move open from zip tests to dlext\n\n To avoid building them for glibc.\n\n Also replace snprintf with std::string\n\nChange-Id: I12e1d2e4ab46ff5af6c05453da67842e0d838fc5\n"
    },
    {
      "commit": "618f1a36f8635fa0f2d60c621fbf79ead2c3f3de",
      "tree": "22f103645d9fcd4568dae35f9c76262541bc85bb",
      "parents": [
        "c6fbbb42e69bef4f058d0cbfaaaf3cbf51f95694"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 17 20:06:36 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 18 18:14:30 2015 -0700"
      },
      "message": "Implement lookup by DT_SONAME\n\n  This CL also fixes SEARCH_NAME hack and resolves\n  https://code.google.com/p/android/issues/detail?id\u003d6670\n  once and for all.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d6670\nChange-Id: I9b8d6a672cd722f30fbfbb40cdee8d9b39cfe56e\n"
    },
    {
      "commit": "aef719510a57274e73ca02ab5ecdc5bf17d3985c",
      "tree": "a3161800a6a0082e59df412a6d4d712041383fc2",
      "parents": [
        "5f8ddf69e59b13653d016e236599b95daf6501a8"
      ],
      "author": {
        "name": "Simon Baldwin",
        "email": "simonb@google.com",
        "time": "Fri Jan 16 13:22:54 2015 +0000"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 17:50:50 2015 -0700"
      },
      "message": "Support loading shared libraries from zip files\n\nAdd code to support loading shared libraries directly from within\nAPK files.\n\nExtends the linker\u0027s handling of LD_LIBRARY_PATH, DT_RUNPATH, etc\nto allow elements to be either directories as normal, or ZIP\nformat files.  For ZIP, the ZIP subdirectory string is separated\nfrom the path to file by \u0027!\u0027.\n\nFor example, if DT_NEEDED is libchrome.so and Chrome.apk is the\nAndroid ARM APK then the path element\n\n  /system/app/Chrome.apk!lib/armeabi-v7a\n\nwould cause the linker to load lib/armeabi-v7a/libchrome.so\ndirectly from inside Chrome.apk.  For loading to succeed,\nlibchrome.so must be \u0027stored\u0027 and not compressed in Chrome.apk,\nand must be page aligned within the file.\n\nMotivation:\n  Chromium tracking issue:\n  https://code.google.com/p/chromium/issues/detail?id\u003d390618\n\nBug: 8076853\nChange-Id: Ic49046600b1417eae3ee8f37ee98c8ac1ecc19e7\n"
    },
    {
      "commit": "cb0443c0fa07e4c049f426e3041894df522732df",
      "tree": "381413df3bfbe60beb5b974fa0b81a69c13c6bbb",
      "parents": [
        "169a84f980d7a55c5f829cdd53a3eaba8f968442"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 14:15:46 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 16 14:20:57 2015 -0700"
      },
      "message": "Remove obsolete test_isolated wrapper function\n\n We already run all of our tests in isolated mode.\n\nChange-Id: I8236baa302b1026a9b4a1c33a4aa65e223771bc7\n"
    },
    {
      "commit": "279a22f96e639e76c801bdb39aee5576f2280fe0",
      "tree": "23032a2fff43e6e8e3100d34c21fa1fac8172a65",
      "parents": [
        "7f3d65de8cf2920981d73adee278c0d7bee79170"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 23 12:03:53 2015 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jan 23 16:30:34 2015 -0800"
      },
      "message": "Minimize calls to mprotect\n\n  Implement refcounter based data protection guard\n  to avoid unnecessary calls to mprotect when dlopen/dlclose\n  is called from a constructor.\n\nBug: 19124318\nBig: 7941716\nChange-Id: Id221b84ce75443094f99756dc9950b0a1dc87222\n"
    },
    {
      "commit": "bfa88bca5ca387d6b3560074050856527cfc7514",
      "tree": "d4738b581edd115f85c9b225a1156f2254ca4eb7",
      "parents": [
        "6d634f9baaf804a91c97e019c832c1e9611a903a"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 16 11:40:46 2014 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 16 19:46:45 2014 +0000"
      },
      "message": "Add another test for weak-reference\n\n  This one covers undefined weak reference in .so\n  referenced via JUMP_SLOT relocation.\n\nBug: 17526061\nChange-Id: Ib8764bd30c1f686c4818ebbc6683cf42dee908b2"
    },
    {
      "commit": "ab972b9adf8789a9e1b03129cd7f0c22e6bba117",
      "tree": "33b816d65afbcd622e38730b7516ba59ddb48fac",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Nov 29 13:57:41 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 02 10:54:26 2014 -0800"
      },
      "message": "Count references for groups instead of instances\n\n  Count references on the group level to avoid\n  partially unloading function that might be\n  referenced by other libraries in the local_group\n\n  Bonus: with this change we can correctly unload recursively\n  linked libraries. is_recursive check is removed.\n\n  Also dynamic executables (not .so) with 0 DT_NEEDED libraries\n  are now correctly linked.\n\nChange-Id: Idfa83baef402840599b93a875f2881d9f020dbcd\n"
    },
    {
      "commit": "7699d13a74769fe8063fcca95588c87c571226c0",
      "tree": "731b4a69cb9b890e74c37e0a04df00c4fa7a6f93",
      "parents": [
        "27aa9c5b50cc3e979fc67c1bf5296dfd725c8540"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 18 17:26:31 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 19 10:39:05 2014 -0800"
      },
      "message": "Yet another relocation test\n\n This time we check if a -\u003e b -\u003e c function in \u0027a\u0027 relocates against\n implementation in \u0027c\u0027.\n\nChange-Id: I528180c3efd346bd447ea0237e5a8a0ac3cc031f\n"
    },
    {
      "commit": "b3356773c6b5fbbbb26d22b3d6c6e0e598840e44",
      "tree": "df02a83689195961585f09e5b041f39892371fd1",
      "parents": [
        "c490b5029fdc96f1dbf00d02d0ad63a03d8cd4f3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 14 11:19:22 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Nov 14 11:19:22 2014 -0800"
      },
      "message": "Add test for --hash-style\u003dsysv\n\n With build system switched to gnu-hash we need\n a test for sysv-hashed library.\n\nChange-Id: I34adc216fa79199aa46066cf13fcc1c1f2581f0e\n"
    },
    {
      "commit": "ec18ce06f2d007be40ad6f043058f5a4c7236573",
      "tree": "0e22f0d9ad23e06303584d05483ff5a881afe20b",
      "parents": [
        "e5cabca516252addb5e305c8e1e0f35cafbcafbe"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Nov 09 19:27:20 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 12 16:38:12 2014 -0800"
      },
      "message": "Add support for hash-style\u003dgnu\n\nChange-Id: I171434a587420895feac8a9b1ad2342087197568\n"
    },
    {
      "commit": "4e446b19d8710cd2004785db4a00f18f249fe73f",
      "tree": "1c7618642ff6c6ec18ed49fbe1e64546e522f3b3",
      "parents": [
        "f33ad400230fa1f16ba4501efb60a1b6035e06ca"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 17:27:02 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 17:27:02 2014 -0700"
      },
      "message": "Fix arm64 and arm builds.\n\nChange-Id: I2c8c41626768e792f27a2616f2cd5ae66606319d\n"
    },
    {
      "commit": "d225a5e65223b375a63548c4b780f04d8f3d7b60",
      "tree": "a98d29bee4e948053033be67fa8e88b102beefce",
      "parents": [
        "d50495a56760fdc116b7484bcdf1183c76db9b37"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Aug 28 14:12:12 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Oct 31 11:39:51 2014 -0700"
      },
      "message": "Fix symbol lookup order during relocation\n\n  Relocate symbol against DF_1_GLOBAL shared libraries\n  loaded before this shared library. This includes\n  main executable, ld_preloads and other libraries\n  that have DF_1_GLOBAL flag set.\n\nBug: 2643900\nBug: 15432753\nChange-Id: Ia788748be59b739d1c7e62b978e7e255f9e65c7b\n"
    },
    {
      "commit": "cfa97f172dc1b10d650fefbb6ccffd88ce72a5fb",
      "tree": "f811c34ec0dde4eed15c64d33b4a89c8e5a00030",
      "parents": [
        "cf8ea37fc91e23d37b3c5873b5e152ccae293f03"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Oct 21 09:23:18 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Oct 23 12:13:54 2014 -0700"
      },
      "message": "Fix relocation to look for symbols in local group\n\n  The local group is a sequence of libraries in default (breadth-first)\n  order. It allows RTLD_LOCALLY loaded library to correctly relocate\n  symbols within its group (see test-cases).\n\n  Local group lookup is performed after main executable and ld_preloads.\n\nBug: 2643900\nBug: 15432753\nChange-Id: I9bb013b46d17dbb5cbdfb8fef26f552748385541\n"
    },
    {
      "commit": "1b20dafdbe65e43b9f4c95057e8482380833ea91",
      "tree": "deb1f41801011c4376ba2d2dfc1edf127329c3d4",
      "parents": [
        "1f7d5ac53854a09bbcace08b3a1d1b9cf3f2eed3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 19 15:06:58 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Oct 01 11:09:37 2014 -0700"
      },
      "message": "Add RTLD_NODELETE flag support\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d64069\nChange-Id: Ie5f90482feae86391172be4b32d6cb7d76f446fb\n"
    },
    {
      "commit": "e8ba50fe0d51fbefee1a8f5bb62bf51d841512c8",
      "tree": "9e7af562f02dea98c8d0f28b88b5e7b2bf9c0975",
      "parents": [
        "0b8f6d592ac20ec81dbc96766123c67655f34842"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 17:00:10 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 17:39:48 2014 -0700"
      },
      "message": "Fix dlsym() to take into account RTLD_GLOBAL/LOCAL\n\n  Symbols from libraries opened with RTLD_LOCAL (default)\n  should not be visible via dlsym(RLTD_DEFAULT/RTLD_NEXT, .)\n\nBug: 17512583\nChange-Id: I1758943081a67cf3d49ba5808e061b8251a91964\n"
    },
    {
      "commit": "eb27bbae8f0edc6b62ca2db73256c7fb53b9e9bf",
      "tree": "19a937c05bf7cfc1530232cba522ab8413c349c8",
      "parents": [
        "95b0c6a9407d7a4084d956e273ad1697550452d3"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 14:13:24 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 15 15:03:15 2014 -0700"
      },
      "message": "Add dlfcn_test to glibc test suite.\n\nChange-Id: I955e4f7dfcc23ea5c767f967b3532dc31663b876\n"
    },
    {
      "commit": "d74aa580354037b9972524e9d654c0a336974838",
      "tree": "189b7fade3764e5105c37bc53b5366e15037fd53",
      "parents": [
        "aad92067bf4eecda81a4c331ee4dec70483c5104",
        "a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 12 16:55:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 12 16:55:42 2014 +0000"
      },
      "message": "Merge \"Fix unload of recursively linked library\""
    },
    {
      "commit": "66bbf1595c0fc25d4bc47457d8020b11e135996d",
      "tree": "9464625e75da5be80863865837e5f04be8f618c1",
      "parents": [
        "8d8a789c49ffb6b71e4b8f34df937cfaaff86e40",
        "d9ff7226613014056c9edd79a68dc5af939107a0"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 12 16:50:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 12 16:50:05 2014 +0000"
      },
      "message": "Merge \"Refactoring: C++11 style DISABLE_ bionic marcos\""
    },
    {
      "commit": "a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5",
      "tree": "9c449ba5033138dc2fb5b80268bbb01a83e5aa4a",
      "parents": [
        "8d8a789c49ffb6b71e4b8f34df937cfaaff86e40"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Sep 09 10:21:42 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Sep 11 22:40:48 2014 -0700"
      },
      "message": "Fix unload of recursively linked library\n\n  Expanded test for recursive libs. Fixed bug with unnecessary\n  soinfo_free of already loaded library.\n\nChange-Id: I2cc19f2650c8b12a35feeac127ef608ebba44d88\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": "d9ff7226613014056c9edd79a68dc5af939107a0",
      "tree": "9866b50193d3886937a4ea13a5c3f88de7600f20",
      "parents": [
        "3c3624f3df14590e7213d35c3b39a0a11c7d2d34"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 16:22:22 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 17:51:31 2014 -0700"
      },
      "message": "Refactoring: C++11 style DISABLE_ bionic marcos\n\n  Enable the -std\u003dgnu++11 flag for libstdc++ static and\n  dynamic libs.\n\n  ScopeGuard uses DISABLE_ macros instead of \u0027\u003d delete\u0027;\n\nChange-Id: I07e21b306f95fffd49345f7fa136cfdac61e0225\n"
    },
    {
      "commit": "14669a939d113214a4a20b9318fca0992d5453f0",
      "tree": "160b15f09cb7edc2da5b02e47cf3d5ce1461df97",
      "parents": [
        "320a01d51693408dad859094ca52e5f315ff1d15"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 05 16:42:53 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Sep 08 13:02:50 2014 -0700"
      },
      "message": "Load libraries in breadth-first order\n\n  This patch fixes the problem with symbol search order\n  for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries\n  and ld_preloads in correct order.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d74255\nChange-Id: If1ba5c807322409faa914e27ecb675e2c4541f0d\nAttempt: 2\n"
    }
  ],
  "next": "498eb18b82a425f9f30132e4832f327b2ee0e545"
}
