)]}'
{
  "log": [
    {
      "commit": "3274cc4692aa636471ad4ea0ae5f5e81d3552b14",
      "tree": "bdcffefcde2c3f65ae8ad5a3ea8710877a929615",
      "parents": [
        "2a8bca749533dcefabff497d4f7346a35601a702"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Nov 11 15:33:22 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Nov 21 16:15:20 2019 +0000"
      },
      "message": "Reland \"Add libdl_android to the Runtime (aka Bionic) APEX\".\n\nBefore this it ended up in /system.\n\nTest: build \u0026 boot\nTest: adb shell find system apex -name libdl_android.so | xargs adb shell ls -l\n  \u003d\u003e\n  apex/com.android.runtime/lib/bionic/libdl_android.so\n  apex/com.android.runtime/lib64/bionic/libdl_android.so\n  apex/com.android.runtime@1/lib/bionic/libdl_android.so\n  apex/com.android.runtime@1/lib64/bionic/libdl_android.so\n  system/lib/bootstrap/libdl_android.so\n  system/lib/libdl_android.so -\u003e /apex/com.android.runtime/lib/bionic/libdl_android.so\n  system/lib64/bootstrap/libdl_android.so\n  system/lib64/libdl_android.so -\u003e /apex/com.android.runtime/lib64/bionic/libdl_android.so\nTest: atest CtsBionicTestCases\nTest: Repro in b/144343305#comment8 together with ag/9754153\nBug: 135753770\nBug: 144343305\nChange-Id: I9ccd10b711223ca474e91741711b7b8efd521b2d\n"
    },
    {
      "commit": "c74666eb3c03166d282eca99266eb4c51a091a5a",
      "tree": "417e80373df41178d61f64b2bcfd5f0068ca705f",
      "parents": [
        "a3b0eab32fc7112277f8aef824a0a211e2dacf1e"
      ],
      "author": {
        "name": "Yuexi Ma",
        "email": "yuexima@google.com",
        "time": "Thu Nov 07 18:37:08 2019 +0000"
      },
      "committer": {
        "name": "Yuexi Ma",
        "email": "yuexima@google.com",
        "time": "Thu Nov 07 19:18:53 2019 +0000"
      },
      "message": "Revert submission of topic \u0027libdl_android-in-apex\u0027\n\nReason for revert: broke numerous major apps in app compat testing\nBug: 144100240\n\nChange-Id: I50b440356bdbde3ac130da5d28d5ef20f8b63582\n"
    },
    {
      "commit": "a3b0eab32fc7112277f8aef824a0a211e2dacf1e",
      "tree": "b4e6b8a7c83fb06746803392f9a4e3dd50a177e9",
      "parents": [
        "590bdbe6e938e1bc53b09674b7eedde440863f11"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 06 00:13:19 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 06 00:28:38 2019 +0000"
      },
      "message": "Add libdl_android to the Runtime APEX.\n\nBefore this it ended up in /system.\n\nTest: build \u0026 boot\nTest: adb shell find system apex -name libdl_android.so | xargs adb shell ls -l\n  \u003d\u003e\n  apex/com.android.runtime/lib/bionic/libdl_android.so\n  apex/com.android.runtime/lib64/bionic/libdl_android.so\n  apex/com.android.runtime@1/lib/bionic/libdl_android.so\n  apex/com.android.runtime@1/lib64/bionic/libdl_android.so\n  system/lib/bootstrap/libdl_android.so\n  system/lib/libdl_android.so -\u003e /apex/com.android.runtime/lib/bionic/libdl_android.so\n  system/lib64/bootstrap/libdl_android.so\n  system/lib64/libdl_android.so -\u003e /apex/com.android.runtime/lib64/bionic/libdl_android.so\nBug: 135753770\nChange-Id: Ibabb5714e8cc0454c77ae5d42d9650c345ff1b89\n"
    },
    {
      "commit": "e87e0dcbaec82aad9e2e3b441384a4b39a419105",
      "tree": "da1d4ede0f523aca496a5b39c892f19d1a8f1106",
      "parents": [
        "67ff8b5f9cb1af1a633e96a771e386d3305c6799"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Oct 02 17:09:33 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Oct 07 13:52:32 2019 +0900"
      },
      "message": "Restrict the availability of the bionic libs\n\nThe bionic libs are now restricted to be in the runtime APEX and the\nplatform (for bootstrapping). It can still be referenced from other\nAPEXes but can\u0027t be included there.\n\nBug: 139870423\nTest: m\nChange-Id: I7f99eef27ccf75844ca5c9a7ea866496841b738f\n"
    },
    {
      "commit": "78e42d81ec89d3cd73ed4e8613947c8bdf8341fc",
      "tree": "af755077cc7bf2860c96135dc9a3b72ae4494e8a",
      "parents": [
        "0633e569bc44271b68e6980cff51d1c89a7c23ae",
        "7f048808203bb4e1c01f50793b424364cd669f06"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue May 07 11:30:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 07 11:30:58 2019 +0000"
      },
      "message": "Merge \"Enable native_bridge_support\""
    },
    {
      "commit": "7ac2afbde37258b8fc489f24bd1fcbf2cac18e39",
      "tree": "ebc3b3051c9bc7219c8a90b1faf00a3adbd35bdd",
      "parents": [
        "2c02e45f4b4ad997ea681993601c9f67bf96a2ca"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon May 06 16:23:10 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon May 06 17:02:53 2019 -0700"
      },
      "message": "Exclude libgcc_stripped wherever libgcc is excluded\n\nTest: manual testing\nBug: 130267141\nBug: 29275768\nChange-Id: If50420c05d36e6f680a36673e7c26ca7deb93b28\n"
    },
    {
      "commit": "7f048808203bb4e1c01f50793b424364cd669f06",
      "tree": "a6165b26a6c255448370e195b95d360bfcb0ffae",
      "parents": [
        "2c02e45f4b4ad997ea681993601c9f67bf96a2ca"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri May 03 15:57:34 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon May 06 17:13:51 2019 +0200"
      },
      "message": "Enable native_bridge_support\n\nEnable native bridge support for bionic libraries.\nMakes it possible to use them in binaries for translated\narchitectures.\n\nBug: http://b/77159578\nTest: make\nChange-Id: Iccd4ad7aecfa5260cc15f09ca975d2e18987278a\n"
    },
    {
      "commit": "3ff116a68cfce57b4d343ae829542a9afdd2184b",
      "tree": "a90b7e707bf4cf44bd7bdb594e9149efacd85568",
      "parents": [
        "1b7881a393355fbbb19cc1b263c0f56f95b1eec7"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 02 23:04:52 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Apr 11 21:36:16 2019 +0900"
      },
      "message": "Load libc_malloc_* libraries from the runtime APEX\n\n/system/lib/libc.so is a symlink to libc.so in the runtime APEX.\nlibc_malloc_* libraries are bundled with libc.so because they share\nimplementation details.\n\nHowever, since libc.so is loaded in the default namespace where the\nruntime APEX path (/apex/com.android.runtime/lib) is not accessible,\nlibc.so has been using libc_malloc_* from /system/lib. This is\nwrong because libc.so (from the runtime APEX) and libc_malloc_* (from\nthe platform) may not be in-sync.\n\nlibc.so now uses android_dlopen_ext to load libc_malloc_* libraries\ncorrectly from the \"runtime\" linker namespace.\n\nBug: 122566199\nTest: bionic-unit-tests\n\nMerged-In: I46980fbe89e93ea79a7760c9b8eb007af0ada8d8\nChange-Id: I46980fbe89e93ea79a7760c9b8eb007af0ada8d8\n(cherry picked from commit 4e46ac69c23c8585bce17c2e032986a37bf33aef)\n"
    },
    {
      "commit": "8868d9e9004b4fa2d8139abaaff1baa21ea55dab",
      "tree": "c38fe375ecf4d393b983a326238eaca118711e9a",
      "parents": [
        "4699cf61746d37fc11c8eb8bdfc7eb296a476e4b"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Mar 19 13:01:42 2019 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon Apr 01 13:16:33 2019 +0200"
      },
      "message": "Move platform-private symbols out of libdl.so\n\nSymbols not intended to be accessible from apps are moved to libdl_android.so\n\nTest: bionic-unit-tests\nBug: http://b/129387775\nChange-Id: Ib8ba6147a20cf56550c9a008f66570a2d419565a\n(cherry picked from commit 2d6be9a751685b4c307632bf27e8c100310ad500)\n"
    },
    {
      "commit": "036e09c36e8c859ee23db7a84adcd9b8563f54c9",
      "tree": "4487746e251b08685070460505af39ae875ce90c",
      "parents": [
        "10935e063d3db0ff2b61f710b8f34bd92fa861ba"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Feb 25 10:54:29 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Mar 14 07:35:52 2019 +0900"
      },
      "message": "Don\u0027t install *.mountpoint targets\n\nThe *.mountpoint targets that installs /bionic/lib/lib*.so and\n/bionic/bin/linker* are no longer needed.\n\nNow, /system/lib/lib*.so and /system/bin/linker* are simply symlinks to\nthe corresponding files in the runtime apex. For example,\n\n/system/lib/libc.so -\u003e /apex/com.android.runtime/lib/bionic/libc.so\n\nThis is made possible because we now activate APEXes even before the\ndata partition is mounted. Before the data partition mounting, the\nAPEXes from the system partition are ativated. After the data partition\nis mounted, updated APEXes in the partition (if any) are activated. As a\nresult, the symlink always points to the valid path regardless of\nwhether /data is mounted or not.\n\nBug: 125549215\nTest: device boots\nChange-Id: Ie7d83686abe00b3c436f9f9db75d4244200a0fc9\n"
    },
    {
      "commit": "eeb2ee65f7cd37b651e00e6f0ae75bf47995fcce",
      "tree": "04bb1e34a9fac8e78bf053180a95765c129030b9",
      "parents": [
        "be9b7240c2a5db3b9a23f37b57dc7513f64ad114"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Feb 15 11:40:40 2019 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Feb 15 11:40:40 2019 -0800"
      },
      "message": "Clarify reason for native_coverage being off for libdl\n\nBug: http://b/124067925\n\nIt\u0027s off because it doesn\u0027t link with any system_shared_libs.\n\nTest: N/A\nChange-Id: I293fb9ba8df213f8f6bbec85135a974e5966f0cc\n"
    },
    {
      "commit": "852d5230e214fad979e99358b3ff55ea33b5f61a",
      "tree": "95d425abfa1f0346901327e9db17797bfd9e5af2",
      "parents": [
        "1d3c56bc308c34217e36def4b408d8bae390924e"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Dec 20 13:52:19 2018 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Feb 07 14:28:29 2019 -0800"
      },
      "message": "Disable native_coverage for libdl\n\nBug: http://b/116873221\nBug: http://b/124067925\n\nIf not,\nhttps://android-review.googlesource.com/c/platform/build/soong/+/848621\nbreaks blueline_coverage-userdebug target in internal branches with the\nfollowing error:\n    build/make/core/base_rules.mk:290: error: bionic/libdl:\n    MODULE.TARGET.SHARED_LIBRARIES.libdl already defined by\n    bionic/libdl.\n\nTest: build blueline_coverage-userdebug in internal branch.\n\nChange-Id: I8fff866ae2e17ce6daa4d8c75c72ceb17e2e73de\n"
    },
    {
      "commit": "a5f914aef163e27bf49ce2c29f2cef12a131132f",
      "tree": "9e2976d251f482c7a23ed8a293d3e104cde2c3e9",
      "parents": [
        "fcb35dc4aa07239878c8ba987aff739388b0f15f"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sun Jan 20 21:02:00 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jan 31 13:44:20 2019 +0900"
      },
      "message": "Add bionic mount points under /bionic\n\nThis change adds following files and symlinks:\n\nFiles:\n/bionic/lib[64]/lib{c|dl|m}.so\n/bionic/bin/linker[64]\n\nSymlinks:\n/system/lib[64]/lib{c|dl|m}.so -\u003e /bionic/lib[64]/lib{c|dl|m}.so\n/system/bin/linker[64] -\u003e /bionic/bin/linker[64]\n/system/bin/linker_asan[64] -\u003e /bionic/bin/linker[64]\n\nThe files serve as mount points for either the bootstrap Bionic or the\ndefault Bionic from the runtime APEX. init does the bind-mounting during\nbooting.\n\nThe symlinks are there to not change the ordinary paths to the bionic\nfiles; there are many places that the paths are implied or hard-coded,\ne.g., dlopen(\"/system/lib/libc.so\") or DT_INTERP pointing to\n/system/bin/linker in the vendor prebuilts.\n\nBug: 120266448\nTest: m blueline, cf_x86, aosp_arm\nThe aforementioned files and symlinks are found\n\nChange-Id: I97e38c29409ac0610dde285db8df6e94a7930094\n"
    },
    {
      "commit": "c45fe9f7bd49b110f63b5928d00cf33a7b515d04",
      "tree": "71c0df52796a2e3b24e1983897f019101e6bcf3e",
      "parents": [
        "c975355066daf0b3012d236aa4e726b0d3d7e06a"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 13 18:26:48 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 04 22:29:36 2019 +0900"
      },
      "message": "Add stubs variants for bionic libs\n\nBionic libs are part of the runtime APEX (com.android.runtime). In order\nto be able to update the runtime APEX independetly from the platform, we\nhave to prevent things outside of the APEX from using bionic symbols\nthat are not guaranteed to be stable. Otherwise, platform could break\nwhen a symbol is removed from the libs via the APEX update.\n\nTo achive this goal, this change adds stubs variant to the bionic libs.\nWith this, things outside of the runtime APEX (i.e. other APEXes and the\nplatform) are built with the stubs variants that provide only the\nsymbols that are guaranteed to be stable.\n\nThe set of symbols are basically the same as the symbols available to\nNDK clients. However, there are a few additional symbols that are not\navailable for NDK but should be made available for platform components.\nThey are marked with \"# apex\" tag. Symbols with that tag are not exposed\nto apps (via NDK stubs) or vendors (via LLNDK stubs).\n\nNote that the stubs is a build-time only artifact. It is used just to\nbreak the build when private symbols are used outside of the runtime\nAPEX. At runtime, the real library in the APEX is used.\n\nBug: 120266448\nTest: m\nTest: m bionic-unit-tests\nChange-Id: I7b8d75830c81d7d7d54e2fca21a85b3417531b47\n"
    },
    {
      "commit": "d19b3c527427770164437d258744828acadb6e42",
      "tree": "d7628a87508447e39dd5a090481b357ad9ca5876",
      "parents": [
        "9ea997a2ac4eeb26230e65d2b680ebff6fe0b8a4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 16:04:08 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 17 12:26:42 2018 -0800"
      },
      "message": "Generate the per-arch .map files at build time.\n\nWe shouldn\u0027t be checking in these generated files...\n\nBug: N/A\nTest: ran tests\nChange-Id: Ib67c1ba839eacd7acebd713e1dcd4dd2c25d67f0\n"
    },
    {
      "commit": "6b3be172d6cf5fd29d7e1f825a1b0e589fdc72b2",
      "tree": "bf0dd5982e0a1c1fbce9d7a34135e9c927d011e8",
      "parents": [
        "9b849d6391a278e06e3c4b39cbee9d30916f51b2"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Dec 03 13:57:20 2018 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Dec 03 15:41:56 2018 -0800"
      },
      "message": "Prevent dependency cycle due to system_shared_libs expansion\n\nIt was discovered that we were building some objects inconsistently due\nto an optimization in cc_library to only build objects once and use them\nfor both the static and shared libraries. But static libraries didn\u0027t\nget system_shared_libs set automatically, and we didn\u0027t notice that we\nwould have built the objects differently.\n\nSo static libraries now get the default system_shared_libs, we allow\nadjusting that for static vs shared in a cc_library, and we disable the\noptimization if the linked libraries are configured differently between\nstatic and shared in a single cc_library.\n\nThis triggers dependency cycles for static libraries that libc/libdl\nuse, so fix those cycles here.\n\nTest: treehugger\nChange-Id: I3cf7fda161a05ec32e0c1e871999720d12a4d38e\n"
    },
    {
      "commit": "17b35598f54ef91c4022b6a91238a2d6b669c194",
      "tree": "a9825132e413c3ad4dfc6fb852125e65e8c378ea",
      "parents": [
        "391af2cefea88abe7eccff8edd0ae06c653bef5e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 11 23:32:26 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 11 23:35:18 2018 -0700"
      },
      "message": "Allow host bionic to use libdl_static\n\nBug: 31559095\nTest: attempt to build host bionic\nChange-Id: If057681a3e098efcf79f9d8a74608b10b1ac20da\n"
    },
    {
      "commit": "7786a344ce17e8f065952afddebb1141f34c43f5",
      "tree": "11e9a7fc05da7f939b18e27d6570888682cd50b6",
      "parents": [
        "fc85c3c8476fe2490b027840994db4ff009631e0"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Aug 31 19:01:56 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Oct 03 10:07:13 2018 +0000"
      },
      "message": "Exclude libclang_rt.builtins symbols\n\nSimilar to libgcc, libclang_rt.builtins symbols need to be excluded.\n\nBug: 29275768\nChange-Id: Iaf7381de3b4dbd92997abd03667dea0baaab98e1\n"
    },
    {
      "commit": "ecbff8382da95c8560482af81e496011715fd5e7",
      "tree": "6eec7f41b7120b0491d9a575ae5a5de725caaf1e",
      "parents": [
        "778a84f75ba959a100f2299caf2e166e38af2708"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 23 18:45:53 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 23 18:45:53 2018 -0700"
      },
      "message": "Work around b/24465209, do not pack relocation table.\n\nGlobal flag --pack-dyn-relocs\u003dandroid is used with clang lld.\nFor b/24465209, we need to override that with --pack-dyn-relocs\u003dnone.\n\nBug: 80093890\nBug: 24465209\nTest: build with USE_CLANG_LLD\u003dtrue and run dlext.compat_elf_hash_and_relocation_tables\nChange-Id: Ic3837446ff0deccf4e66425b39d3b062abcacc5e\n"
    },
    {
      "commit": "0fc5df0fde88f49057ea28404e4a7e8b370b1cea",
      "tree": "1fdf7bf5f498a61908426c4324d2a43d951887ea",
      "parents": [
        "a6a56784e02d568c4965dcf5538dea48a472b7d1"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 22 21:34:26 2018 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 23 17:14:22 2018 +0000"
      },
      "message": "Work around b/24465209, do not use clang lld\n\nSee longer explanation in b/80093890.\nClang lld does not generate expected DT_REL and DT_RELA tags\nwith --hash-style\u003dboth and --pack-dyn-relocs\u003dandroid.\nI am not sure about the extent of b/24465209, so\nI would rather not to use lld for these .so files for now.\n\nBug: 80093890\nBug: 24465209\nTest: build with USE_CLANG_LLD\u003dtrue and run dlext.compat_elf_hash_and_relocation_tables\nChange-Id: I94e9fe8d687daeadb0182ae26596ca11d3f8bd9b\n"
    },
    {
      "commit": "5603c6e6b9722cb8fcd1bd7a361b64c8dae47a50",
      "tree": "6d83ddddfdb31dd367bd882a256bef41de069771",
      "parents": [
        "af2eb6f40adc6c293a634cd7733536dc41302d8a"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Apr 27 21:53:11 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon May 14 18:08:01 2018 +0900"
      },
      "message": "Mark as recovery_available: true\n\nLibraries that are direct or indirect dependencies of modules installed\nto recovery partition (e.g. toybox) are marked as recovery_available:\ntrue. This allows a recovery variant of the lib is created when it is\ndepended by other recovery or recovery_available modules.\n\nBug: 67916654\nBug: 64960723\nBug: 63673171\nBug: 29921292\nTest: m -j\nChange-Id: I59bf859a10a218af6591025a0fe7d1853e328405\n"
    },
    {
      "commit": "b7fd08cad7f4b3338edd687f9a127165e8a58132",
      "tree": "e4caf0a109a4413b8bacbd2075bd172b70517cd3",
      "parents": [
        "bf0f6d0b5a30babf1531b392f640454e6546566e",
        "46a943c8333a9293d02c302d26d965de2b2c8ec7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 04 15:24:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 04 15:24:46 2018 +0000"
      },
      "message": "Merge \"Support getting/setting API level in static binaries.\""
    },
    {
      "commit": "46a943c8333a9293d02c302d26d965de2b2c8ec7",
      "tree": "30b9f51323061d7a46577ac22995146c3e328340",
      "parents": [
        "4cdde64728e4d15f6abc2d713c40adaff7b0fc56"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 15:56:35 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 21:53:29 2018 -0700"
      },
      "message": "Support getting/setting API level in static binaries.\n\nBug: http://b/27917272\nTest: fixes static semaphore.sem_wait_no_EINTR_in_sdk_less_equal_than_23 test\nChange-Id: Ifeeff20772ff0308aab9417d48671b604a3e9665\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": "d50a1de565c00d415ad39ef8c14e392da4c99d43",
      "tree": "011e021bbb021d83634d00ffa3255ebd7d468cfe",
      "parents": [
        "a70089163ca09a983772dd2a8daa17e47f8ede53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 17:30:57 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 17:30:57 2018 -0800"
      },
      "message": "Run bpfmt manually.\n\nBug: N/A\nTest: builds\nChange-Id: I0cf145c3b699ac8ef170a63366832f63a9cc1a91\n"
    },
    {
      "commit": "40f15ec4b19140734d632a4ed32289fd4f2c4e32",
      "tree": "027e114066a88c59917bc2d35574c1dd9debfe38",
      "parents": [
        "88e61da8a7f75d189ec6f79c412392179ee0356e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Oct 27 11:21:20 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jan 22 12:40:56 2018 -0800"
      },
      "message": "Package bionic static libraries in the NDK.\n\nTest: build/soong/scripts/build-ndk-prebuilts.sh\nBug: https://github.com/android-ndk/ndk/issues/272\nChange-Id: Ibb21d799fdcf230ed45db0b809e20dd86d2d8e52\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": "1b0f2b49d528c90842b4263269d9039d7e07415e",
      "tree": "1be7ae23d7716db86552beca0064cf6e74e7d6e3",
      "parents": [
        "a238a9a32815f63b286d8383f7f73e2319472583"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 10 11:05:19 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 10 11:05:19 2018 -0800"
      },
      "message": "Remove obsolete workaround.\n\nBug: http://b/24465209\nTest: manually ran the app.\nChange-Id: I1e2a498864c74ff3a9886b97f7dc60ad7f6dfa44\n"
    },
    {
      "commit": "11da1dcd8c35f16a6e6bf869250ca06381e71dca",
      "tree": "627146f228fee73aa8fadead8f62ee902626b390",
      "parents": [
        "8e8c2c001380ad98f2e239c0c840dad80ebec35c"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Fri Jan 05 13:35:43 2018 +0100"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Jan 09 11:13:40 2018 +0100"
      },
      "message": "Move ld-android.so build under linker/\n\nThis will allow us to apply linker\u0027s version script to the \"fake\"\nversion of ld-android.so.\n\nTest: make\nChange-Id: I55645cc0fc90e6c65e2269ba2340a908aeed1eaa\n"
    },
    {
      "commit": "dfcc6e4f8acf41159c43e9b50547d99379483c72",
      "tree": "6d4407f72ca8ac44e9454f95bbdc45965c03c70d",
      "parents": [
        "0e0e370154ea478c9d7102061cbb62d9bfea6c1d"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Oct 13 11:56:55 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Oct 16 21:31:37 2017 -0700"
      },
      "message": "Rename libdl.c to libdl.cpp.\n\nThe no-arg function definitions in libdl.c weren\u0027t strictly correct,\nbecause they should have taken void. Rename .c to .cpp instead of\nfixing them.\n\nTest: mma\nChange-Id: I9e3528c836ffc8625a6a4d529034263b19b9fb3a\n"
    },
    {
      "commit": "c5ea3ebd714c70b21bcc7fcee6f7c00aa2bf8b64",
      "tree": "4044b21eb8436f697bcf4996b75b9274fa78b80a",
      "parents": [
        "3e8584d4a7d617289e8a954711ba895415d781c4"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Oct 05 17:23:10 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Oct 05 18:27:00 2017 +0200"
      },
      "message": "Make libdl symbols weak.\n\nAlso make a static library which can be used to override these symbols\nin other implementations of libdl.so\n\nTest: make\nChange-Id: Id433bb07ecbfc4955c3fb7591ace971c2cda7862\n"
    },
    {
      "commit": "dc7cc6258aa90409d3aa5453bdbb2667e049c9c1",
      "tree": "15479706305f69e29373626167150a9a575d76a3",
      "parents": [
        "7abea57ba599b9b114031ae33699b5d7fba8cc97"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Aug 30 10:52:19 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Aug 30 10:52:19 2017 +0200"
      },
      "message": "Restore dummy libdl.a implementation\n\nBug: http://b/36206043\nTest: bionic-unit-tests-static\nChange-Id: If0400b72b51570e5ca0d70ec0bd9fb77664b9210\n"
    },
    {
      "commit": "993b08366dbe01cea7269dfe481b6ac672681035",
      "tree": "ce6f72d8c72001e0581e5c696ef691659d2eb8a1",
      "parents": [
        "f07fd6aeb3210768aa53deef1363eaa0654d051b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 14:09:18 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 10 12:54:41 2017 -0700"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nChange-Id: Ibfe4cf5db732d9007b1cc12dbc523c427de1b23d\n"
    },
    {
      "commit": "b93d3c26f7dacb860ae2fef0567beae47c49e24a",
      "tree": "952d250ba7ff8b7fba5782742a4a823fef49bc9c",
      "parents": [
        "fd5260e3a71809f2518e0450c3e1d7c938ab05ad"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Mar 20 14:07:47 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 07 20:35:18 2017 -0700"
      },
      "message": "Add LLNDK stub libraries for the VNDK\n\nThe stub libraries are the same as the (equivalent version) NDK, but\nthey also contain symbols tagged with \u0027vndk\u0027. Except there are none of\nthose in Bionic currently.\n\nFor headers, the LLNDK/VNDK isn\u0027t using a sysroot like the NDK. Nor is\nit hardcoding an explicit source path list like the platform. Instead it\nruns the bionic/libc/include directory through versioner like the NDK,\nthen exports those generated headers and the kernel headers from the\nstub library like any other exported header. Except it uses -isystem\ninstead of -I due to export_headers_as_system.\n\nTest: aosp_arm; m -j\nTest: Enable BOARD_VNDK_VERSION on aosp_arm; m -j\nTest: Inspect out/soong/build.ninja before/after (w/o vndk)\nChange-Id: Ief58a73907a83053b408b1d4b62999cba470d61c\n(cherry picked from commit b8f7fde4bdfba5a65ef5a88265fdb79403e8a699)\n"
    },
    {
      "commit": "8229596d4125d87509f8510da234bb0a6c54d31b",
      "tree": "c3a24d2c42c941faf0ed154c5289e0a3ed3fc4a7",
      "parents": [
        "616b2d87eabee34559b12a3ddd3e057a1ad49879"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 14:23:50 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 14:24:40 2017 -0700"
      },
      "message": "Enable ld-android on linux_bionic builds\n\nBug: 31559095\nTest: Enable host bionic, run soong\nChange-Id: If94927c66c0c2dc74c213ca403d45e73508b0025\n"
    },
    {
      "commit": "0a3637d3eb2424d8e825ad1825f843450a888406",
      "tree": "dc0d4c31cddc2ff06902fcbdf4233f7759258764",
      "parents": [
        "1b2975d54b9c17ced29883aef24490773a4a9fe6"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jul 06 13:20:59 2016 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Jan 18 13:13:52 2017 -0800"
      },
      "message": "Runtime support for CFI\n\nControl Flow Integrity support in bionic.\n\nGeneral design:\nhttp://clang.llvm.org/docs/ControlFlowIntegrityDesign.html#shared-library-support\n\nThis CL implements subsections \"CFI Shadow\" and \"CFI_SlowPath\" in the above document.\n\nBug: 22033465\nTest: bionic device tests\nChange-Id: I14dfea630de468eb5620e7f55f92b1397ba06217\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": "d9e427cf41893377dcdd0650ba20ff7cf7d72209",
      "tree": "6515aceab94a11861876b6e145adb6922183ebff",
      "parents": [
        "227894a754eb11cb1203c359192d59654b01b93e"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 22 16:55:25 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 09 14:53:59 2016 -0800"
      },
      "message": "Bionic loader is no longer hijacking libdl.so\n\nDo not hijack libdl.so methods but make libdl proxy calls to\nloader instead. This will be replaces by calls to libc.so\nonce loader functionality is migrated.\n\nAlso add a lock to dl_unwind_find_exidx function call.\n\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nBug: http://b/27106625\nChange-Id: Ic33a7109a86f4262798d63a35f4c61d15b0068bb\n"
    },
    {
      "commit": "dcb846cb4978130d5db6b795e22e08b65e73f3cd",
      "tree": "08d415c92e8008104cd11fd76574816be320c70e",
      "parents": [
        "c12acef96bd80c419654e159e1dc24a69513a86d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 06 02:10:13 2016 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 06 02:10:13 2016 +0000"
      },
      "message": "Revert \"Bionic loader is no longer hijacking libdl.so\"\n\nThis reverts commit c12acef96bd80c419654e159e1dc24a69513a86d.\n\nBreaks the Mips build.\n\nBug: 27106625\nChange-Id: I27edb7114065c36e1b618e387530d58189cdb184\n"
    },
    {
      "commit": "c12acef96bd80c419654e159e1dc24a69513a86d",
      "tree": "2c9ee33aa3467a7fa0765a7a2de6c686056b755c",
      "parents": [
        "f8b4ff4aa1c1a855627b8dc36f0675d69ab9109d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Nov 22 16:55:25 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 05 11:19:19 2016 -0800"
      },
      "message": "Bionic loader is no longer hijacking libdl.so\n\nDo not hijack libdl.so methods but make libdl proxy calls to\nloader instead. This will be replaces by calls to libc.so\nonce loader functionality is migrated.\n\nAlso add a lock to dl_unwind_find_exidx function call.\n\nTest: bionic-unit-tests --gtest_filter\u003ddl*:Dl*\nBug: http://b/27106625\nChange-Id: I9e666e771e4bbca52151cfa7fc4c8677e1480818\n"
    },
    {
      "commit": "7ec52b12efc1c4ed9cd83ba8c95fab5bbf39aaf4",
      "tree": "091ac4e81ecc619f8116a3f229ad10f8c47e017d",
      "parents": [
        "11b362d284b49e070813cd459584ea3dabb20b1e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Nov 28 17:02:25 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 29 21:09:05 2016 +0000"
      },
      "message": "Enable libc/libdl/libm/linker for host bionic\n\nDisables debuggerd integration unless building for android.\n\nBug: 31559095\nTest: Diff out/soong/build.ninja before/after, only change is moving\n      linker\u0027s libdebuggerd_client static lib to the beginning of the\n      list.\nTest: lunch aosp_arm64-eng; mmma -j bionic\nChange-Id: I62e725f7a9b98b7fe31637d0a835fd5846b0aff0\n"
    },
    {
      "commit": "e8a9108b4b79e6ac73aa5f6f7ce2ab38d75e05d1",
      "tree": "de4cae340fa0434f004dbd6d12860a39067065aa",
      "parents": [
        "ed9e6a41c92c9552be84ecc126e29b4604eee246"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 04 13:45:44 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 05 09:36:48 2016 -0700"
      },
      "message": "Add ndk_library for libdl.\n\nTest: make checkbuild\nBug: http://b/30465923\nChange-Id: I8acf82f319d3b22948868bc5c4c377f2348af266\n"
    },
    {
      "commit": "27c43c505e4bc58a6ad6603ef466745df1392115",
      "tree": "1797850f7867a82f0022dd565e9da6b52fae2d02",
      "parents": [
        "668fddb3ba36b52a16381513b1a0a42d9dd910e1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 07 13:27:24 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 15 16:36:13 2016 -0700"
      },
      "message": "Update sanitize property format\n\nChange-Id: I2fd35d6d85c7da7e96ffcefcd81350c836f0db9c\n"
    },
    {
      "commit": "9e6f98fe9df0b10c2b414d85faa3d8833abe49b5",
      "tree": "dfd78472adc7d94089c116bf6ce4d0e839a41e41",
      "parents": [
        "af909869d868585a47914ab51536192da50935cb"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 03 14:30:57 2015 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 03 14:30:57 2015 -0800"
      },
      "message": "Update Android.bp with arch-specific version scripts\n\nChange-Id: I59b34f21b54e8a2084bb318a08c4092064f48083\n"
    },
    {
      "commit": "208ae17e5f05ce26f2fa830c6d60c055d1d3f86a",
      "tree": "95857ecee983b8e7741f96c229b5762db0fd4f68",
      "parents": [
        "14545d4ce3dd446f20a14dcff37d60ff8d756f7a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 16 16:33:27 2015 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 16 16:50:01 2015 -0700"
      },
      "message": "Add Android.bp for libc/libm/libdl\n\nChange-Id: I3537363849ba1244348996ff17c5ace1b95dbeee\n"
    }
  ]
}
