)]}'
{
  "log": [
    {
      "commit": "356f7d45c19ff8b862ff4d5db7384e87c2b052f9",
      "tree": "57db9c0e7b1d346c85a40ffd72602dce13c12df9",
      "parents": [
        "aef038aac1f18259a941b05b028e5e9beb5b3bd7"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Tue Jan 26 09:18:53 2021 -0500"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Thu Feb 04 13:45:56 2021 -0500"
      },
      "message": "bp2build: convert paths/module refs to Bazel label\n\nThis currently expands all globs, still need to support converting glob\nsyntax.\n\nTest: go build_conversion_test\nTest: GENERATE_BAZEL_FILES\u003dtrue m nothing\nTest: m nothing\nBug: 165114590\nChange-Id: If7b26e8e663d17566fad9614ca87a8da1f095284\n"
    },
    {
      "commit": "18aefc19776337955c9a1a8946f188900cb4d537",
      "tree": "b3e831f67d9ec2952839b9ab156c0a6ba149d491",
      "parents": [
        "1f8c2729846b83e24c09292ef5739b13375f7c0c"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Mon Dec 21 09:11:10 2020 -0800"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Tue Dec 22 12:38:35 2020 -0800"
      },
      "message": "Remove unnecessary snake case variables.\n\nTest: m nothing + TreeHugger\nChange-Id: I99f7162944daa6c57c6ae4763261e108bb5cb6b1\n"
    },
    {
      "commit": "bf4f55f1803be9041c917bb1fba96403f0431725",
      "tree": "843d5488265482ad22ad7ecd8ac157414cc5a3b8",
      "parents": [
        "464e6c71dfb7fa19b21446fa3c0fbb76addc932b"
      ],
      "author": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Mon Nov 23 17:02:44 2020 -0500"
      },
      "committer": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Tue Dec 01 18:28:38 2020 -0500"
      },
      "message": "Improve commenting for cc/builer.go, and kill dead code\n\nTest: m nothing\nChange-Id: I836c717d3243e901257120be71246e419de4d28e\n"
    },
    {
      "commit": "e0f2ab3f3c4f6a66bd4e19c729bd93db3ef8076e",
      "tree": "263ab2231208da76aa869d6c2f1b57803455fc9d",
      "parents": [
        "f77bd8d60daf62403ad0de7e3cfdeefd6c2a60ee"
      ],
      "author": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Fri Nov 20 17:27:25 2020 -0500"
      },
      "committer": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Fri Nov 20 17:27:25 2020 -0500"
      },
      "message": "Improve commenting of cc/binary.go.\n\nTest: N/A\nChange-Id: If4a1be0a0f111cd08fc1e8762702c32115562cf1\n"
    },
    {
      "commit": "a615901b53c2b1ee4491869c25e92b73675216db",
      "tree": "ad2596ee2796862defb25e947572d9c5c9539f93",
      "parents": [
        "1d26d3033a3bb1bf6c62e36818fc901949268bf1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 12 12:14:36 2020 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Nov 14 14:38:34 2020 -0800"
      },
      "message": "Use the the preferred architecture symlink as the tool path if it exists\n\nWhen a genrule uses a binary with symlink_preferred_arch set as a tool,\nuse the symlink instead of the binary as the tool, as the symlink is\nthe more canonical name for the binary.\n\nTest: m checkbuild\nChange-Id: I5330b57139f03ca07bf70547261f191ed84ec9b8\n"
    },
    {
      "commit": "60e0cfb5cbaefa7bdd2b97e1dbbf35c235f5af3d",
      "tree": "ba63247d2d8d56c3b888721ec9b4e70d63ae47ad",
      "parents": [
        "627ce86770dca98915d6d81b66841a15014019a0"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Oct 21 15:17:56 2020 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Oct 22 10:26:26 2020 -0700"
      },
      "message": "Add vendor-ramdisk image to Soong.\n\nAdd vendor_ramdisk_available and vendor_ramdisk attribute to\nvarious rules. When a vendor_ramdisk variant of a module is\ngenerated, it is installed to $OUT/vendor-ramdisk.\n\nIt is similar to a ramdisk image.\nTest: m nothing -j\n\nChange-Id: Ib2d16459f3094dbe21c3bdb7c016cb4b2bf62765\n"
    },
    {
      "commit": "56a8321c210bf73c7b9f177849ff4a6b6192d237",
      "tree": "493b42599afe8b2f4cc849107e5541f8307b7b10",
      "parents": [
        "a8baa884240d22fb2b896e714e2bdf28e735f332"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 15 18:30:11 2020 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 06 13:39:57 2020 -0700"
      },
      "message": "Remove global state from apex modules\n\nA global variant was used to store the global mapping between\nmodules and APEXes.  Replace it with storing pointers to APEX\ncontents inside each module so that they can query the contents\nof any APEXes they belong to.\n\nBug: 146393795\nTest: all Soong tests\nTest: single line change to build.ninja host install dependency ordering\nTest: no Android-${TARGET_PRODUCT}.mk, make_vars-${TARGET_PRODUCT}.mk or late-${TARGET_PRODUCT}.mk\nChange-Id: Id2d7b73ea27f8c3b41d30820bdd86b65c539bfa4\n"
    },
    {
      "commit": "d458745f1596c8310c77b9f4a5ca95b0d3fa0dff",
      "tree": "edb6dbc4e391538afbaa867d7800229f4bf4de66",
      "parents": [
        "3806fc0943cab958a84275ae1fd366a69621fe00"
      ],
      "author": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Wed Aug 19 14:53:01 2020 +0200"
      },
      "committer": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Thu Aug 27 10:13:42 2020 +0200"
      },
      "message": "cc: export Stripper struct\n\nThe cc stripping logic can be reused for Rust. Export the Stripper\nstructure for that purpose. Extract the strip-related flags from\nbuilderFlags into StripFlags. Add the method flagsToStripFlags\n(similarly to flagsToBuilderFlags).\n\nAdd the helper method disableStripping on libraryDecorator.\n\nTest: m\nBug: 153430439\nChange-Id: I11aef1abb8d498a4c1672500a7398279edf7f548\n"
    },
    {
      "commit": "89f7bf1635c50569a4748ff67431a29b600a2e0e",
      "tree": "68c1599985a0e9e11b879c3e2f52428385cee5a2",
      "parents": [
        "2d815963ba597cce3b2401d405d0ed3a7beb5737"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Aug 25 18:57:39 2020 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Aug 25 18:57:39 2020 +0900"
      },
      "message": "bootstrap is added for cc_binary only when the module is in an APEX\n\nLike shared libraries, the bootstrap subdirectory is appended to the\ninstall path only when the module is in an APEX. Currently, this change\ndoesn\u0027t make any difference because only the Bionic binary (linker) is\nsatisfying the existing condition InstallToBootstrap() and it already\nsatisfies DirectlyInAnyApex.\n\nHowever, this change makes a diference when we build the binary for the\nhost targets. Then without this change, it is installed to\nout/soong/host/\u003cOS\u003e-\u003carch\u003e/bin/bootstrap. This doesn\u0027t make sense\nbecause we don\u0027t use APEXes for the host targets. With this change,\nthe binary is correctly installed to out/soong/host/\u003cOS\u003e-\u003carch\u003e/bin\nbecause DirectlyInAnyApex returns false for hosts.\n\nBug: 159685774\nTest: m\nChange-Id: I0d63bd8c11e3a96ee6a27b2295bc14d6dc15ff9e\n"
    },
    {
      "commit": "e07f2316b7a5d5ee82a33caf814fd24077c372f8",
      "tree": "d35660fe51f1d8c2f34681e69ff100fc723b775e",
      "parents": [
        "1b9604b463f62abd42f404ee1e06ac878a75427c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 13 11:24:56 2020 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 13 17:50:29 2020 -0700"
      },
      "message": "Rename ApexName to ApexVariationName\n\nIn preparation for reusing the same variation for multiple apexes,\nrename ApexName to ApexVariationName.\n\nBug: 164216768\nTest: all soong tests\nChange-Id: I88f2c5b192ffa27acd38e01952d0cefd413222a0\n"
    },
    {
      "commit": "92fe74067729af7dbfce82cd73fae83758eb8cf2",
      "tree": "35a0f13371f2c26bebaa1ba53eda8008da030e3f",
      "parents": [
        "a57e56a684cb0d250a4f9060c59f7cc5ae607ec3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 15 13:33:30 2020 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 11 15:06:55 2020 -0700"
      },
      "message": "Stop using prebuilt NDK CRT objects.\n\nWe don\u0027t need the prebuilt versions. The NDK CRT objects are (now)\nbuilt from the platform sources and the only difference is that the\nNDK CRT objects also include an ELF note that identifies the NDK\nversion, which isn\u0027t helpful for anything built by the platform.\n\nAdd a `crt` property to cc_object that allows CRT objects to identify\nthemselves. CRT objects, unlike other modules, will have a variant\nbuilt per-API level they support, rather than just an SDK variant and\na platform variant. This is needed because new CRT objects will rely\non APIs not available in old libcs and old CRT objects will not\nsupport all the features of a modern one.\n\nTest: treehugger\nBug: http://b/159925977\nChange-Id: I6595485fa1bfe0ad4945193d344b863f64eec654\n"
    },
    {
      "commit": "40fd90ae523beb27d52093b9ca5ba9154a336859",
      "tree": "fa2d61d2c3ef4d90cdba9b3d4c92cf610521aa02",
      "parents": [
        "670ed3d97df4df8c7c24f3ee4a1c30341c1808b1"
      ],
      "author": {
        "name": "Jingwen Chen",
        "email": "jingwen@google.com",
        "time": "Mon Jun 15 05:24:19 2020 +0000"
      },
      "committer": {
        "name": "Jingwen Chen",
        "email": "jingwen@google.com",
        "time": "Thu Jun 25 12:42:07 2020 +0000"
      },
      "message": "Support multiple dists per Android.bp module, and dist output selection.\n\nThis CL adds \"dists\" to the base property struct to support multiple\ndist file configurations, and generic tag support to dist tagged outputs\nof modules.\n\nFixes: b/152834186\nTest: soong tests and `m sdk dist`\n\nChange-Id: I80c86bc9b7b09e671f640a4480c45d438bdd9a2a\nSigned-off-by: Jingwen Chen \u003cjingwen@google.com\u003e\n"
    },
    {
      "commit": "7f283f4bd0b5e0bdbde09ed117fbc70b6cee2d8f",
      "tree": "7282d2eb1aa793eb7e17f7dfb7783ef0408a73eb",
      "parents": [
        "5539e7b568c19dc6d5720f49599f9832cdeee8e1"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Mon Jun 01 21:53:49 2020 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Fri Jun 05 04:25:40 2020 +0000"
      },
      "message": "Refine logic choosing vendor snapshot modules\n\nThis refines the vendor snapshot codes in order to fix logic errors.\n\n- Capture toolchain_library and cc_library_headers correctly.\n- Redirect unwind static library correctly.\n- Filter out sanitize / coverage / lto by looking at HideFromMake.\n- Add binary() function for clear and shorter codes.\n- Include test modules.\n- Add more tests to prevent further snapshot breakages.\n\nBug: 157106227\nTest: m vendor-snapshot\nTest: m nothing for all available targets\nTest: EMMA_INSTRUMENT\u003dtrue EMMA_INSTRUMENT_FRAMEWORK\u003dtrue \\\nNATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003d\"*\" m nothing\n\nChange-Id: Id90082b5ab730f928582ad24f022ba410855400e\nMerged-In: Id90082b5ab730f928582ad24f022ba410855400e\n(cherry picked from commit 4d8d8fec4a8c3c152aa2d9e9e5252d8612d9afc3)\n"
    },
    {
      "commit": "25ce04bd3a076cf773edc6771f3baba11bb5c8f7",
      "tree": "bf7861746003377c80c50bd171a1e9115d60fee8",
      "parents": [
        "7c9662a8e992c47668f48fd1ad0f62463a007391"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 16 11:47:25 2020 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 18 16:17:35 2020 +0000"
      },
      "message": "Add support for cc_binary in module_exports\n\nBug: 142920869\nTest: m nothing\nChange-Id: Ib7e16cb323806782c2186e73e13642e4485fc149\n"
    },
    {
      "commit": "1b3348d50acb1317f62110ebadc879f2ef571ce5",
      "tree": "079b8fdc1107524926b982f744854232f2143c83",
      "parents": [
        "0c9c0f045fa73b414ffcb72f0394161d7565db3d"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Jan 21 15:53:22 2020 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jan 22 16:54:18 2020 -0800"
      },
      "message": "Add ramdisk image.\n\nIt is similar to recovery image.\nTest: m nothing -j\n\nChange-Id: I11389777c6bfb0c0d73bbb4c70091c1e70f44077\n"
    },
    {
      "commit": "2ee6979443259c24e5259b2c18dc65de4d97a25a",
      "tree": "ebd302f1ac18b2fcfe4470b1cbb240798b3e151d",
      "parents": [
        "8122cf6d097f55de6b9a39827f4f81e2150e099b"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 16 12:14:42 2020 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 16 14:10:18 2020 +0000"
      },
      "message": "Dedup cc binary build components registration\n\nBug: 146540677\nTest: m nothing\n\nChange-Id: I1c677d0ee2cead1d61f81e34e8d5a2f4a52f6cad\n"
    },
    {
      "commit": "4af21ed26f41f9779c4e48dfb3b8d86366a24346",
      "tree": "045e68db56a42c2556f4726a6140f1a2f416ebf3",
      "parents": [
        "1f056cd69d5d6e5e720a028fea345e09e3508ffe"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Nov 04 09:37:55 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 07 15:27:58 2019 -0800"
      },
      "message": "Split local and global cflags\n\nNative compiler flags are currently applied in approximately:\nglobal cflags\nlocal cflags\nlocal include dirs\nglobal include dirs\nglobal conlyflags\nlocal conlyflags\nglobal cppflags\nlocal cppflags\n\nThis means that a flag that is enabled in the global cppflags\ncannot be disabled in the local cflags, and an Android.bp author\nmust know to disable it in the local cppflags.  A better order\nwould be:\nglobal cflags\nglobal conlyflags\nglobal cppflags\nlocal cflags\nlocal conlyflags\nlocal cppflags\nlocal include dirs\nglobal include dirs\n\nWe are mixing both the global and local cflags into a single\nvariable, and similar for conlyflags and cppflags, which\nprevents reordering them.  This CL prepares to reorder them\nby splitting the global and local cflags into separate variables.\n\nBug: 143713277\nTest: m native\nChange-Id: Ic55a8c3516c331dc5f2af9d00e59ceca9d3e6c15\n"
    },
    {
      "commit": "b49fe1bde729e66e0c7766c2ac4a5ef1b426e5f7",
      "tree": "d1e606c1e5e04c29b901c4c17b1071132371a194",
      "parents": [
        "ac1b07e2dc95f9d117cee7210d7d3b918cecdd50"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri Oct 11 15:03:34 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Oct 24 22:25:54 2019 -0700"
      },
      "message": "Stop linking libdl.a into static bins\n\nlibdl.a has a no-op dlopen, which breaks static libraries that need a real\ndlopen. Instead of automatically linking libdl.a into static executables,\nmake it optional.\n\nUntil recently, the libunwind_llvm.a unwinder, used on arm32, needed the\nno-op dladdr, but it\u0027s now built using -D_LIBUNWIND_USE_DLADDR\u003d0.\n\nThe HWASan run-time uses dlsym and dladdr, so add a libdl dependency for\nHWASan-built static binaries. We could also remove the dependency from\nlibclang_rt.hwasan_static-*.a, but this is also easy to do.\n\nBug: http://b/141485154\nTest: bionic unit tests, device boots, verify that static and dynamic\n   executables can throw/catch an exception\nTest: verify that a static executable using dlopen doesn\u0027t link (unless it\n   adds an explicit dependency on libdl)\n\nChange-Id: Ic52c3f336b671b4ed335e99c94a64dfe8614b618\n"
    },
    {
      "commit": "3b19f5d71dbdbbf79a211f40ccfd39f42f2bc7ec",
      "tree": "8559295a723d8b002755fba3645e44ed620ca071",
      "parents": [
        "1f6c94a3ac5cc86c81a3a8e9ed5561d0e1e9c5fc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 17 14:45:31 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 19 12:54:32 2019 -0700"
      },
      "message": "Remove old-style support for translated second architectures\n\nTranslated second architectures now go in NativeBridgeArch instead\nof DeviceSecondaryArch.\n\nThis reapplies I568046330abc002d4eed582cb999b62a5eaba790 with\nctx.Config().HasMulitlibConflict() added to fix the NDK build,\nwhich has arm64, arm, x86_64, and x86 architectures enabled.\n\nTest: m checkbuild\nTest: OUT_DIR\u003dout_ndk build/soong/scripts/build-ndk-prebuilts.sh\nTest: no change to build.ninja or Android-aosp_cf_x86_phone.mk\nChange-Id: Iadcafbd64bfb9579ae7c86914927c43a062b0c8e\n"
    },
    {
      "commit": "279de572d79d6eaccf298facc766745ce22d9312",
      "tree": "e0ebedeffd69eeed8a9b19b05244197b70dd393d",
      "parents": [
        "84bd071cac28b71032bea5d1f604a9b25b395bc6"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Sep 10 23:18:20 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 11 12:16:31 2019 +0100"
      },
      "message": "Treat libclang_rt.hwasan-* the same way as the other Bionic bootstrap libs.\n\nEnsure that it ends up in the bionic/ subdir in the Runtime APEX and is\nsymlinked from /system/lib(64). That makes it available in the default\n(platform) linker namespace and no longer requires it to be accessible\nthrough the runtime namespace. All this makes it consistent with how the\nother Bionic libs are handled, and avoids the need for various special\ncases in ld.config.txt files (to be cleaned up later).\n\nWith this there might no longer be a need for a linker namespace for the\nRuntime APEX, and we could consider removing the kludge with the\n/apex/com.android.runtime/${LIB}/bionic subdirectories and the special case\nin getCopyManifestForNativeLibrary in apex.go. However, keeping it calls out\nthe special treatment of those libraries, and allows a namespace to be added\nagain if necessary.\n\nTest: Build and boot on taimen_hwasan-userdebug\nTest: adb shell /apex/com.android.art/bin/dexdump on taimen_hwasan-userdebug\nTest: atest CtsCompilationTestCases on taimen_hwasan-userdebug\nBug: 140734238\nBug: 140790209\nChange-Id: Ieb506bfa5d5c159db391273c7eba41d7909de286\n"
    },
    {
      "commit": "d7227f99ebcef0a32db7b56d992cb77a9098a79b",
      "tree": "09dd7e23e9921febb97055742386335c76b49e9a",
      "parents": [
        "c3233c291f1b53bc7a609fa7b9a4505462d21583"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 05 14:26:33 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 05 15:30:05 2019 -0700"
      },
      "message": "Support boringssl hash injection on binaries and make it transitive\n\nMove handling the inject_bssl_hash property to a helper function,\nand also treat it as set if any static libraries have it set.\n\nBug: 137267623\nTest: m checkbuild\nChange-Id: Icb12cfffb20797c807b410daffbf7fcccb1b1975\n"
    },
    {
      "commit": "ee9a98d88ec9a792c3d67b9aed9e4571bf2544cf",
      "tree": "d8af68026356f9509f21d1184edc55d01c73b587",
      "parents": [
        "02ed5df4aca361954383c85b3f23c0693f6edc92"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Aug 09 14:44:36 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Aug 13 08:55:08 2019 +0900"
      },
      "message": "Build native coverage variant of APEXes when needed\n\nWhen the native coverage is enabled, APEXes (and files there) are built\nfor native coverage as well.\n\nBug: 138952487\nTest: make -j NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003d\u0027*\u0027 com.android.resolv\nfind out -name \"*.gcno\" | grep DnsResolver shows files\n\nTest: libnetd_resolv.zip is found under\n$(TARGET_OUT)/apex/com.android.resolv/lib directory\n\nChange-Id: I97bcee9bf8ffc0dc71453abbdb613ed56ea2cdb4\n"
    },
    {
      "commit": "acbf6c76c63c8583771badafbdacd219cb70d49d",
      "tree": "7e80997123091f3bff74c397d941f62074db5551",
      "parents": [
        "db7a770509f9eb570828a65ad0f8a3887c64fd45"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Jul 09 16:19:16 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jul 10 18:07:38 2019 +0900"
      },
      "message": "Use ctx.Target().NativeBridge to detect if the arch is translated or not\n\nBug: 137015854\nTest: m\nTest: build cf_x86_phone and ensure there is no dangling symlink\n/system/lib/arm/libm.so\n\nChange-Id: I0f5efdb9e1f5e4e213ca4ebaa28ace0a130b36a6\n"
    },
    {
      "commit": "7268fd494d0996dd2db4c8dd5d4d5be1c2eecaf1",
      "tree": "176b639322c9e72a5d2310df9222be3cc549099f",
      "parents": [
        "633352f03f20b8b11f2d425f2c4c6c0fa1b910f8",
        "c743414d4298c2ffad94eb4fc00d644b992b0bf8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 12 02:00:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 12 02:00:01 2019 +0000"
      },
      "message": "Merge \"Package coverage files as a zip.\""
    },
    {
      "commit": "c743414d4298c2ffad94eb4fc00d644b992b0bf8",
      "tree": "b7d8a8ed38d521fbef61ff43d75162b4705e70fd",
      "parents": [
        "46160c6423394141119201e0bd0901ba5b1956d3"
      ],
      "author": {
        "name": "Oliver Nguyen",
        "email": "olivernguyen@google.com",
        "time": "Wed Apr 24 14:22:25 2019 -0700"
      },
      "committer": {
        "name": "Oliver Nguyen",
        "email": "olivernguyen@google.com",
        "time": "Tue Jun 11 16:04:11 2019 -0700"
      },
      "message": "Package coverage files as a zip.\n\nTest: make NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003d\"*\"\nChange-Id: I955212a20ea19c854ebc88635252a1d174ea8f7f\n"
    },
    {
      "commit": "d7607c1c99d445d3aae93c25f492ed7a6fc53c07",
      "tree": "afc6cd437fe68d5a05667b829209206e7c3325de",
      "parents": [
        "a53ae43180975b2b0c725ccd33a1d79710ca0a5f",
        "9efb8c773f0c2ba32cdf295b6224f4b31bf23aa0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 11 13:45:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 11 13:45:25 2019 +0000"
      },
      "message": "Merge \"Have `symlink_preferred_arch: true` honor the `stem` property.\""
    },
    {
      "commit": "75a50a2c1508638693027114f53e633703a4db20",
      "tree": "f986d2444d5f5681fdb1500c7b6ad99504e62070",
      "parents": [
        "b6fd6f75f29a98a2fcc5fc3510d0f8a320f73870"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 07 17:58:59 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Jun 10 12:59:11 2019 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Enable lld for windows\"\"\"\"\n\nThis reverts commit b20200b3f5b5485502a05fb32a0ff3d45b4f9892.\n\nBug: http://b/110800681\nTest: manual\nChange-Id: Id3eb45ed29f3977fef3da241ec2c43755116d60c\n"
    },
    {
      "commit": "9efb8c773f0c2ba32cdf295b6224f4b31bf23aa0",
      "tree": "3a0148ac5950361aa5375a6cf88ba4e7849fe551",
      "parents": [
        "50e91c1a7a93077989cc590ea3878c46b3df4ba8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 05 13:31:31 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 10 15:03:44 2019 +0100"
      },
      "message": "Have `symlink_preferred_arch: true` honor the `stem` property.\n\nIf a module defines a `stem` property, use it to name the symlink\ncreated for `symlink_preferred_arch: true` (instead of the module\u0027s\nname).\n\nAlso always require suffixes when using `symlink_preferred_arch: true`.\n\nTest: m\nChange-Id: Ia8a56f94d21599194797ef8b259f5f03e08cb16a\n"
    },
    {
      "commit": "b20200b3f5b5485502a05fb32a0ff3d45b4f9892",
      "tree": "9e341b9abce8e0618927951d1a5ed86c03c03168",
      "parents": [
        "14bb14e0c32e1ba656069f8af5819b5f41d1ea03"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 07 12:30:30 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 07 12:34:18 2019 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Enable lld for windows\"\"\"\n\nThis reverts commit 6d8c0a50bc3903f90935e5163e1b9bb46a30d5a9.\n\nThe switchover to lld appears to be making adb crash on exit for unclear\nreasons. Revert it as a quick fix pending further investigation.\n\nBug: http://b/134613180\nTest: adb.exe under windbg\nChange-Id: Ibdf5981c3c6828b3684974b7c30a7c96449c64c5\n"
    },
    {
      "commit": "d9bf9be00785d10be8b961843b53b004d0c600d4",
      "tree": "cbaf7e90b89bd5027fcd63a1a643b3c57cd9fd8f",
      "parents": [
        "b4c35f33786175f19bcb69ee069ac64b7c699717"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 05 19:20:33 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 05 19:38:45 2019 +0100"
      },
      "message": "Allow arch-specific `symlink_preferred_arch` properties.\n\nTest: m\nBug: 133864678\nChange-Id: Ia6e62156adda2b3a51220552bbe4dab738753674\n"
    },
    {
      "commit": "f979d73428f021170eb096f7bbc40d8c6b59dd8f",
      "tree": "d2bff7e5492d7b146292f6b816c58692b5b680ac",
      "parents": [
        "7d06395f0c12ce8c265639106a5666ae04f1a447"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu May 30 20:53:29 2019 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Fri May 31 15:07:16 2019 -0700"
      },
      "message": "Omit .gnu_debuglink sections in object files\n\nI\u0027m not sure if these sections are used, but by adding them to\nlibgcc_stripped.a, we can end up with multiple .gnu_debuglink sections in\nan executable, where the first two unhelpfully point at \"libgcc.a\". e.g.:\n\n$ readelf -SW -x.gnu_debuglink out/target/product/walleye/system/bin/bootstrap/linker64\n...\n\nSection Headers:\n  ...\n  [18] .gnu_debuglink    PROGBITS        0000000000000000 10f19c 000020 00      0   0  1\n  ...\n  [22] .gnu_debuglink    PROGBITS        0000000000000000 18a2c8 000010 00      0   0  4\n  ...\n\nHex dump of section \u0027.gnu_debuglink\u0027:\n  0x00000000 6c696267 63632e61 00000000 3d5f65d8 libgcc.a....\u003d_e.\n  0x00000010 6c696267 63632e61 00000000 3d5f65d8 libgcc.a....\u003d_e.\n\nHex dump of section \u0027.gnu_debuglink\u0027:\n  0x00000000 6c696e6b 65723634 00000000 f85db7ea linker64.....]..\n\nBug: none\nTest: m libgcc_stripped linker\nTest: no .gnu_debuglink section in libgcc_stripped.a\nTest: only one .gnu_debuglink section in system/bin/bootstrap/linker64\nChange-Id: I0c47a9acd6d52f5cbc5bfa8b67d072ebb075a242\n"
    },
    {
      "commit": "3478bb2a7fbcaaea1326a1df4a564d7ca24056ce",
      "tree": "79335e512ae8ce190a8a13b114a42d2d729a6879",
      "parents": [
        "4c83b8950af48bd503c89988f4de7c6c41023c71"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Apr 24 14:41:12 2019 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri May 17 10:00:39 2019 -0700"
      },
      "message": "Teach soong not to duplicate the HWASAN runtime into each APEX.\n\nWhen HWASAN is enabled, the runtime is conceptually part of Bionic (and\nmutually depends on it), so it needs to be treated in the same way as the\nBionic libs.\n\nNow there are only two copies of the runtime: the one in\n/system/lib64/bootstrap (which won\u0027t be used by ordinary processes) and the\none in the runtime APEX.\n\nThis reduces the size of the HWASAN system image and fixes an issue where\nmultiple copies of the HWASAN runtime were being loaded into 64-bit binaries in\nAPEXes because the linker namespace for the binary is different from the one\nfor its dependent libraries outside of APEXes. HWASAN only supports loading\none copy of the runtime per process, so this was causing such binaries to\ncrash on startup.\n\nChange-Id: I228896e193a035e6dfba9f6e28d0b2e12fc163ea\n"
    },
    {
      "commit": "6d8c0a50bc3903f90935e5163e1b9bb46a30d5a9",
      "tree": "7ff5fb061d38be76c569e5d817a1efdfaf1901b4",
      "parents": [
        "819635624843ae286cefae6a9a89d3d90ed61cd8"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Apr 15 23:03:38 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Apr 16 16:22:03 2019 -0700"
      },
      "message": "Revert \"Revert \"Enable lld for windows\"\"\n\nThis reverts commit 61166dc047ff30869667a58cf0daca68d20e38ab.\n\nOne difference from the earlier change is that import libraries are now\nusing the \u0027.lib\u0027 extension instead of \u0027.a\u0027 to prevent clash with\nAdbWinApi.a.\n\nBug: http://b/110800681\n\nThe following flags that the binutils linkers support are not\navailable in lld for Windows:\n  -soname\n  --no-undefined\n  -rpath\n\nWindows also uses \"import libraries\", which are stub libraries used only\nfor linking.  The binutils linkers accepted a DLL and treated them as an\nimport library.  But lld issues the following error:\n\n  lld-link: error: ...DLL: bad file type. Did you specify a DLL instead\n  of an import library?\n\nTo resolve this, pass \u0027-out-implib\u003dlibFoo.lib\u0027 to lld when linking\nlibFoo.dll to get lld to generate an import library.  Add libFoo.lib as\nan implicit output to the \u0027ld\u0027 build rule.\n\nRewrite the shared libraries when building a library/binary to use the\nimport library instead of the DLL.  As a side-effect, this also uses the\nnewly-created AdbWinApi.lib that\u0027s alongside\ndevelopment/host/windows/prebuilt/usb/AdbWinApi.dll\n\nTest: Run Windows tests (go/android-llvm-windows-testing) and check\nabsence of regressions.  Also check that the following commands pass:\n      $ adb.exe devices\n      $ fastboot.exe devices\n\nChange-Id: I34e07d345e0207086ac8e8ea12525d8c322b20fd\n"
    },
    {
      "commit": "61166dc047ff30869667a58cf0daca68d20e38ab",
      "tree": "0489920cd601d01124c2637dd3449bb020222db1",
      "parents": [
        "9a4f3f7ea87d983ddf69831a9e197f6b62d4d873"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 02 17:53:12 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed Apr 03 00:59:14 2019 +0000"
      },
      "message": "Revert \"Enable lld for windows\"\n\nThis reverts commit 3c21c0b1d9bab0d51100ca03aa157a1d8545c2ea.\n\nReason for revert: appears to break AdbWinUsb.dll usage by fastboot (and adb?)\n\nBug: http://b/129420419\nBug: http://b/110800681\nChange-Id: I36d6d87f2e830e08e257ab42d470e49cdbb95819\n"
    },
    {
      "commit": "65c95ff1fb3e50927f49e0e95c1f980af850f034",
      "tree": "24b49a7cd7ce9d9afac4fd12b90fa99e7492c8f8",
      "parents": [
        "ee30d5e13278e434679e946432ce09459a1aa0de"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Mar 25 10:21:31 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Mar 29 08:56:42 2019 -0700"
      },
      "message": "Include libprofile-extras to all coverage variants\n\nBug: http://b/128524141\n\nInclude libprofile-extras (defined in system/extras/toolchain-extras) to\nall modules that need a coverage variant.  Also add\n\u0027-uinit_profile_extras\u0027 when linking with coverage.  This causes the\nsetup code in libprofile-extras to be linked into binaries/libraries\nwith coverage enabled.\n\nWe add the static library to the non-coverage variants as well but is a\nno-op for them (since the \u0027-u...\u0027 flag is not added for them).\n\nAdding this dependency creates several circular dependencies since\ncoverage variants were being created for other module types that never\nhad any compilation or linking done during the build.  This change stops\ncreating coverage variants for toolchain_library, cc_prebuilt_library_*,\ncc_library_headers module types (by adding a function to the linker\ninterface to specify whether native coverage is enabled).\n\nTest: m NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003d*\nTest: blueline_coverage target in internal branch (using forrest)\nChange-Id: I5db876eb953639a55ba007248dd24e497f987730\n"
    },
    {
      "commit": "c249c718abaa3c479cdc259545e1b11e56248812",
      "tree": "ea2d558a2857cbc27ace5f8b2bd16db109250cb1",
      "parents": [
        "789b84b12f23389676f848eaf80dc0469eb64919"
      ],
      "author": {
        "name": "Patrice Arruda",
        "email": "patricearruda@google.com",
        "time": "Tue Mar 19 17:00:29 2019 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Mon Mar 25 14:21:29 2019 +0000"
      },
      "message": "Soong: Add synopsis to several modules under cc package.\n\nAdded synopsis to the following modules under cc package:\n    * cc_binary\n    * cc_binary_host\n    * cc_defaults\n    * cc_genrule\n    * cc_test\n    * cc_test_host\n\nBug: b/128337482\nTest: Generated the documentation and verified that the\nsynopsis was added to each of the module.\n\nChange-Id: I23b7eda449c340783d7cc592df5d2bd399255bf9\n"
    },
    {
      "commit": "3c21c0b1d9bab0d51100ca03aa157a1d8545c2ea",
      "tree": "f249d66cfe8c40623633602c9dcb72a4364d8661",
      "parents": [
        "967511a4e844e439ab18cf0e77f2d406cc88d3be"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Feb 28 15:52:05 2019 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed Mar 20 21:07:47 2019 +0000"
      },
      "message": "Enable lld for windows\n\nBug: http://b/110800681\n\nThe following flags that the binutils linkers support are not available\nin lld for Windows:\n  -soname\n  --no-undefined\n  -rpath\n\nWindows also uses \"import libraries\", which are stub libraries used only\nfor linking.  The binutils linkers accepted a DLL and treated them as an\nimport library.  But lld issues the following error:\n\n  lld-link: error: ...DLL: bad file type. Did you specify a DLL instead\n  of an import library?\n\nTo resolve this, pass \u0027-out-implib\u003dlibFoo.a\u0027 to lld when linking\nlibFoo.dll.  Add libFoo.a as an implicit output to the \u0027ld\u0027 build rule.\n\nRewrite the shared libraries for a library/binary to use the import\nlibrary instead of the DLL.  As a side-effect, this also (correctly)\nuses the AdbWinApi.a that\u0027s alongside\ndevelopment/host/windows/prebuilt/usb/AdbWinApi.dll\n\nTest: Run Windows tests (go/android-llvm-windows-testing) and check\nabsence of regressions.\n\nChange-Id: I15a178589aa6882caa6e7e38650cc6ef48109764\n"
    },
    {
      "commit": "c3e2c86caf8cc3702bf65ce9f138c1e56480aea5",
      "tree": "82123b76915c6ffcf0d158d7aaa9ec242b07859c",
      "parents": [
        "f1c1006ecae91bfee0db9afd11046c141d90407e"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat Mar 16 01:10:08 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat Mar 16 02:13:46 2019 +0900"
      },
      "message": "Install symlink to the runtime APEX only for device\n\nHost does not need the symlink. It also broke master-art-host targets.\n\nTest: ALLOW_MISSING_DEPENDENCIES\u003dtrue\nDIST_DIR\u003d~/temp\n./art/tools/dist_linux_bionic.sh -j50 showcommands\ncom.android.runtime.host\n\nChange-Id: Ie8e02553c5a1b6cd5afebd73a64268d2950fc18e\n"
    },
    {
      "commit": "f11943527d5fee8c253a23c959ebb70267721652",
      "tree": "ae4fd1db3570caddc681e65f79ca1d6c4648516f",
      "parents": [
        "33548f07a8cef49a5201a844bd4982c2af8ee610"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Feb 25 11:05:47 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Mar 15 03:04:52 2019 +0900"
      },
      "message": "Create symlink for bionic files\n\nThis change creates following symlinks for bionic files.\n\n/system/lib/libc.so -\u003e /apex/com.android.runtime/lib/bionic/libc.so\n/system/lib/libm.so -\u003e /apex/com.android.runtime/lib/bionic/libm.so\n/system/lib/libdl.so -\u003e /apex/com.android.runtime/lib/bionic/libdl.so\n/system/bin/linker -\u003e /apex/com.android.runtime/bin/linker\n...\n\nThis allows us to not have mountpoints under /bionic.\n\nBug: 125549215\nTest: m and inspect the symlinks in the system partition.\nChange-Id: I3a58bf4f88c967862dbf06065a1af8fc4700dda3\n"
    },
    {
      "commit": "b5c34d7f4076187195399f6e490ed9845b56aa51",
      "tree": "6e0967c7e0632f925e7d4c9dff137243d4d75bf7",
      "parents": [
        "93c3f5368de394657b48360590f090719d01c2ec"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Nov 07 16:28:49 2018 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Feb 04 18:20:28 2019 +0800"
      },
      "message": "Use llvm-{strip,objcopy} by default\n\n... except for Darwin Mach-O, as it is not supported by llvm-strip.\n\nTest: m checkbuild\nBug: 119221035\nChange-Id: I021637b6dd3530bff1f563f2ec7c2168e1083b7e\n"
    },
    {
      "commit": "af6d8959411c0381a6cdf49ade70d1b65a08a2d1",
      "tree": "d1d05336138aef4aa7e79c233fd052a2f3a40362",
      "parents": [
        "df819e6b0c84e0c21525b3542fe59dd5df6d31d6"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jan 31 12:21:23 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Feb 01 11:04:58 2019 +0900"
      },
      "message": "Add unstrippedOutputFilePath to the linker interface\n\nTest: m\nChange-Id: I85a0cbda6ebb9838451ed8c607c2087460b7b742\n"
    },
    {
      "commit": "a4b9dd08c02fddb1487f21f526bc8ccc598f237a",
      "tree": "2b459d7472e312980955f4b92379a1e394d3217a",
      "parents": [
        "429660f3c8c51f2060ecbe85592d91151f9511f5"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jan 16 22:53:13 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jan 31 13:44:20 2019 +0900"
      },
      "message": "\"bootstrap: true\" modules are using bootstrap Bionic\n\nIf the bootstrap property is set to true, a binary configured to refer\nto the bootstrap linker at /system/bin/bootstrap/linker[64]. This is for\nvery early processes that are executed before the init makes the linker\nby bind-mounting it.\n\nBug: 120266448\nTest: m init_second_stage and use readelf on the built file\nDT_INTERP is set to /system/bin/bootstrap/linker64 and\n\nChange-Id: I67487701192f127679cc8127ddc9f53e102ba9c4\n"
    },
    {
      "commit": "3d67359f2f0eee9da739a7f96ae9888116e09079",
      "tree": "2d8f7ae5e9c3526b4e15a9b20ad495c4fd709087",
      "parents": [
        "62f6fcbbb9528b58fd98e5fd5c71e484844be12f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 18 14:37:31 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 29 03:21:47 2019 +0000"
      },
      "message": "Add support for symlink_preferred_arch in apex\n\nSome modules rely on symlink_preferred_arch to have expected files\npresent. This change makes apexs include these symlinks.\n\nTest: m com.android.runtime.debug\n      pushd $(mktemp -d)\n      mkdir mnt\n      unzip $OUT/apex/system/com.android.runtime.debug.apex\n      sudo mount -o loop,ro apex_payload.img mnt\n      Ensure that mnt/bin/dalvikvm and mnt/bin/dex2oatd both exist and\n      are symlinks to mnt/bin/dalvikvm64 and mnt/bin/dex2oatd32\n      respectively.\n\nBug: 119942078\nBug: 122373634\nBug: 123079311\nChange-Id: I47868fbedc5bdd3141a836c488f79e91e0a6ddfe\n"
    },
    {
      "commit": "64a44f231dedcb704ef5069762ac3a3c5bfd49b0",
      "tree": "1bb51c60c160b1f17113bc498a6a7686e62839d2",
      "parents": [
        "de54534d2addd0e65d7ccf3fef64859f5b883392"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 18 14:37:08 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 25 14:05:51 2019 +0900"
      },
      "message": "Make sure that ASAN runtime lib is the first DT_NEEDED one\n\nIntroduce a new tag earlySharedDepTag which is added in front of the\nordinary sharedDep dependencies. Dependency to the ASAN runtime lib is\nadded with the new tag.\n\nBug: 120894259\nBug: 121038155\nTest: m; SANITIZE_TARGET\u003daddress m\nUse readelf -d to see if the runtime lib is in the first DT_NEEDED one.\n\nChange-Id: I90de6ab95df734a99995532d826564b13fe05316\n"
    },
    {
      "commit": "c32c6b0d79b0f907328cce9077d6d5a3864ca269",
      "tree": "c00cf77e1e48b7486fd59ced827e138f0fe04760",
      "parents": [
        "590b1ae37cb8db754b3fc1d139b6490c4ca5752f"
      ],
      "author": {
        "name": "Doug Horn",
        "email": "doughorn@google.com",
        "time": "Thu Jan 17 14:44:05 2019 -0800"
      },
      "committer": {
        "name": "Doug Horn",
        "email": "doughorn@google.com",
        "time": "Thu Jan 24 18:59:29 2019 +0000"
      },
      "message": "Support building for Fuchsia.\n\nThis CL adds configs for the arm64 and x64 fuchsia\ndevice targets, sets up the necessary linker flags,\nand disables some functionality that is not currently\nsupported on Fuchsia.\n\nBug: 119831161\nTest: Compile walleye, internal validation against\nfuchsia_arm64-eng and fuchsia_x86_64-eng.\nChange-Id: I2881b99d2e3a1995e2d8c00a2d86ee101a972c94\n"
    },
    {
      "commit": "16e91a067d13698c59323349d5251aab9dca479f",
      "tree": "c369b353de0dc695c3c88bc182cb4d10dd2158d6",
      "parents": [
        "da6eb592bfc991e2063de39d77a2f1886c9b92b5"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 20 18:18:08 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Dec 21 18:01:39 2018 +0900"
      },
      "message": "Fix: static dependency across an APEX is lost\n\nThis change fixes following problem:\n\n1) a native lib having stubs is defined.\n2) the lib is included in an APEX.\n3) a static binary is linking the lib from outside of the APEX.\n4) then, the dependency from the binary to the lib is vanishing.\n\nThis is happening because cc.depsToPaths() mistakely does not\ndistinguish static lib deps from shared lib deps. For shared lib deps,\nit creates two dependencies (one for stubs variant and the other for\nnon-stubs variant) and choose the stubs variant when the lib and the\ncurrent module is not in the same APEX (i.e. dependency to the non-stubs\nvariant is discarded). However, since we don\u0027t have stubs variant for\nstatic library, it ends up having no dependency to the library if the\nlink is static.\n\nFixing the issue by skipping the variant selection routine when the link\nis static.\n\nTest: m (apex_test added)\nTest: build with https://android-review.googlesource.com/c/platform/bionic/+/849044\nChange-Id: I21102a31cc5c0b105da2affdd035bd5cc571a6ab\n"
    },
    {
      "commit": "232c07c2177afb8b78cc83278a64cb19a4bdaccc",
      "tree": "4fe2a192469eda90a91d1c72f7962464cbec7a3d",
      "parents": [
        "539f409d783b7f9513a9459b694f4250a9906a83"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Tue Dec 18 11:08:25 2018 -0800"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Tue Dec 18 15:56:59 2018 -0800"
      },
      "message": "Ignore shared libs for static executables.\n\nIe42edc5184f315f998db953594e425214b810e0e added system_shared_libs to\nstatic libraries so that their exported headers can be referenced.\nHowever, it also added unrequired dependencies, which is an\nerror-triggering issue for static executables.\n\nThis change addresses it by adding a condition to shared libs handling code\nin binary.go.\n\nBug: 121152570\nTest: cc_test.go, library_test.go\nChange-Id: I1828442c4e496f8d815fccaeca970cd5766bdf5d\n"
    },
    {
      "commit": "569edc5f66dc5d5080da34d19ef40e00cddff2e6",
      "tree": "bf01fbd9e323b57ced77ad78c6ff4bd5c21e0025",
      "parents": [
        "bba551c1faa41025e2e76230b258f94d042b99d9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Nov 19 09:33:29 2018 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Nov 19 15:26:14 2018 -0800"
      },
      "message": "Add dist support to Soong\n\nWhen dist\u0027ing a library or binary that has use_version_lib set, always\ndistribute the stamped version, even for the device.\n\nTest: m test_build_version_test dist\nChange-Id: I2995ec516b1d182ce18f099aeaa4d186ffbcf01f\n"
    },
    {
      "commit": "a0790e35c7b275ee3b8288cf5453c15390850458",
      "tree": "1952cc9a1d0229ab60a8c0e36e593f3716113c5a",
      "parents": [
        "9ff34c0ca8bc4f8b26424c58978b89eb25fd1564"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Oct 12 00:24:23 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 22 15:46:03 2018 -0700"
      },
      "message": "Rework how linux_bionic is built with LLD\n\nIn order to simplify the wrapper function, and stop using a linker\nscript, generate a set of flags to pass to LLD. Then run\nhost_bionic_inject on the linked binary in order to verify the\nembedding, and give the wrapper function the address of the original\nentry point (_start).\n\nBug: 31559095\nTest: build host bionic with prebuilts/build-tools/build-prebuilts.sh\nChange-Id: I53e326050e0f9caa562c6cf6f76c4d0337bb6faf\n"
    },
    {
      "commit": "8536d6b3b7d9514656c66ce0c000fa66e43895be",
      "tree": "4c1dbd921aaa0dc27ed9b99884085bc267f59460",
      "parents": [
        "230e4c77a56ac6b46628fbb7a5d2b80c68beeb48"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sun Oct 07 20:54:34 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 09 02:16:58 2018 +0000"
      },
      "message": "Remove GCC checks\n\nClang is always used now, so we can remove all the GCC checks. Removing\nGCC-specific configuration will happen in the next CL.\n\nTest: m\nChange-Id: I4835ecf6062159315d0dfb07b098e60bff033a8a\n"
    },
    {
      "commit": "446c66667214334a9c7313ddafa2cbc4ca00236f",
      "tree": "c48bdb832b472289d2d76e59fdbbedde0ee07c12",
      "parents": [
        "1278a6ce77e99144fe527043c316699e9a1ba439"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 14 16:00:16 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 14 23:02:31 2018 +0000"
      },
      "message": "Don\u0027t pass -pie for Windows binaries\n\nPassing -pie to clang for Windows binaries causes a warning:\nclang-7: warning: argument unused during compilation: \u0027-pie\u0027 [-Wunused-command-line-argument]\n\nBug: 115776263\nTest: m checkbuild\nChange-Id: Ie502a05dac32c192c38953c684dc80d1db24b792\n"
    },
    {
      "commit": "b60190a4f8b1f1a3bfd8af702cea0c2f06f6831b",
      "tree": "05225182066f8477a9a912320be32f8b016ca6be",
      "parents": [
        "b496cfd9d238423afb165d6e4006f247c96bb7bc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 04 16:28:17 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 10 23:12:12 2018 -0700"
      },
      "message": "Use soong_cc_prebuilt.mk instead of prebuilt.mk for Soong cc modules\n\nExport Soong cc modules to Make using a new soong_cc_prebuilt.mk that\nbypasses all of prebuilt_internal.mk, dynamic_binary.mk and binary.mk.\nThis also means that stripping is handled in Soong instead of Make.\n\nRelands If9008c50920779048480f5eeeb0084f26006c998 with fixes for\nmac builds.\n\nBug: 113936524\nTest: m checkbuild\nChange-Id: I9710ff57f0793f36eb889eabd08bd60a365a88dd\n"
    },
    {
      "commit": "cb9342eabd937601a7328d7c19e988b3b378b676",
      "tree": "cf98cf00a0059d86b0bfa74ae99377b6449b2a0c",
      "parents": [
        "e2874cd99d574de49d34f8987a0af64331c7ad6e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 10 21:35:34 2018 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 10 21:35:34 2018 +0000"
      },
      "message": "Revert \"Use soong_cc_prebuilt.mk instead of prebuilt.mk for Soong cc modules\"\n\nThis reverts commit e2874cd99d574de49d34f8987a0af64331c7ad6e.\n\nReason for revert: broke mac builds\nBug: 113936524\n\nChange-Id: Id0311d6b202b18e80953da632133548d56ed851a\n"
    },
    {
      "commit": "e2874cd99d574de49d34f8987a0af64331c7ad6e",
      "tree": "e35c664af0b11055e9d31c84309b1da9b7af9492",
      "parents": [
        "0f40a7527a6f14a56e0cc14a10bca3122c6461de"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 04 16:28:17 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 10 11:04:01 2018 -0700"
      },
      "message": "Use soong_cc_prebuilt.mk instead of prebuilt.mk for Soong cc modules\n\nExport Soong cc modules to Make using a new soong_cc_prebuilt.mk that\nbypasses all of prebuilt_internal.mk, dynamic_binary.mk and binary.mk.\nThis also means that stripping is handled in Soong instead of Make.\n\nBug: 113936524\nTest: m checkbuild\nChange-Id: If9008c50920779048480f5eeeb0084f26006c998\n"
    },
    {
      "commit": "61f32128aa8e5dcd64a94b932575e161639a7e1c",
      "tree": "8d6bbec99989ee44dd971748d60bd491a620a3d6",
      "parents": [
        "0981b5c30f31ba8caa38fde9540e85f61799d052"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jul 26 14:00:24 2018 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 08 14:36:34 2018 -0700"
      },
      "message": "Dedup version-script handling code.\n\nThis is common to binaries and libraries, so move it from library.link\nand binary.link to baseLinker.linkerFlags and baseLinker.linkerDeps.\n\nTest: make checkbuild\nBug: None\nChange-Id: I5fb24118e601673ae0713a6adc773a1565749be8\n"
    },
    {
      "commit": "19fae4e80361a6169cd7bcecbd256623f663b78f",
      "tree": "a0183256bdb5b65888a92a8a23e932166e518ae2",
      "parents": [
        "ffc924b8f8186f2ef492a72f4c8929a9cb0b390e"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Jun 29 14:56:08 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Jun 29 14:57:46 2018 -0700"
      },
      "message": "Remove unsupported/unused No_pie property\n\nBug: http://b/111000882\n\nDoesn\u0027t seem to be supported.\n\nTest: AOSP build, TreeHugger\nChange-Id: Idaab52caa876102b062b3c21acd42c37328bd328\n"
    },
    {
      "commit": "204165320e467bcf1448be60adf675a46c06724c",
      "tree": "234bf7a0bd00573753e3909926459359a7f6aa39",
      "parents": [
        "d7e5c05eac3e4c22af8190c83f3a9e2cacf385b9"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed Jun 27 10:52:17 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed Jun 27 11:27:06 2018 -0700"
      },
      "message": "Do not set entry-point for Windows\n\nBug: http://b/62424007\n\nThis breaks 64-bit Windows executables.  Probably due to the Clang\nmigration, the entry-point need not be set even for 32-bit executables.\n\nTest: 32-bit and 64-bit aapt2_tests.exe and ziparchive-tests.exe can\nstart.  (There are some failed tests, though).\n\nChange-Id: Id3a7d3d2802f6b671332afff4558840bdabddeb5\n"
    },
    {
      "commit": "2e6743176a385a94d42f40ad8b3ee5bc74308dad",
      "tree": "469ce125c62065d12c01fff0de96b909d2d30b64",
      "parents": [
        "6a25de47dcf50d1a8f86165a348bcf3a09bf2136"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue May 29 13:56:37 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat Jun 09 01:57:00 2018 +0900"
      },
      "message": "Recovery partition has same layout as system\n\nRecovery partition has same layout as system. In other words,\nexecutables are installed to \u003crecovery_root\u003e/system/bin and libs are\ninstalled to ../system/lib.\n\nThis is made possible because the recovery partition is now\nself-contained, i.e., shell, adbd, etc. are hosted in the recovery\npartition and thus we no longer has to mount the real system.img\nto /system. So /system is now available to executables built for\nrecovery mode.\n\nBug: 63673171\nTest: `adb reboot recovery; adb devices` shows the device ID\nTest: Select \u0027mount /system\u0027 in the recovery mode, then `adb shell`.\n$ lsof -p `pidof adbd` shows that libm.so, libc.so, etc. are loaded from\nthe /lib directory.\n\nChange-Id: I6c4f903ad21fd3dd10a07c4588be85d3d678c099\n"
    },
    {
      "commit": "30485c920c64880856c58bc33e2b45109a13c004",
      "tree": "c200398533fb07fe194d3beeda4e9915f9e69dbf",
      "parents": [
        "38462a68811eb4e427ff47d7cc62de1ac5835135"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Jun 04 10:37:43 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jun 07 16:04:14 2018 -0700"
      },
      "message": "Use llvm-{objcopy,strip} when clang lld is used.\n\n* Pass LLVM_{OBJCOPY,STRIP} to makefile rules.\n* strip.sh is used only in soong-only mode.\n  It will use llvm-strip and  and llvm-objcopy\n  when --use-llvm-strip is given.\n  Keep flags of strip.sh in alphabetic order.\n* Tested build/soong/scripts/build-ndk-prebuilts.sh\n  by adding \"UseClangLld\": true, to soong.variables file.\n\nBug: 80093681\nTest: build/soong/scripts/build-ndk-prebuilts.sh\nChange-Id: I612267304eea434c7a33cc086b27b577d5f64094\n"
    },
    {
      "commit": "f9332f1c866ce87b5a8603256cd1a606c4753d5f",
      "tree": "8d6e2a05dc82d7d31a8c89142ff2d0b47713dbfa",
      "parents": [
        "ff9d8911f68bcfce038d833522d8a41d7f22fe35"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Feb 01 00:54:12 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue May 15 16:27:12 2018 +0900"
      },
      "message": "Support recovery and recovery_available\n\n`recovery: true` installs a module to the recovery partition.\n`recovery_available: true` makes a module to be available to other\n`recovery:true` or `recovery_available: true` modules.\n\nThese to are very similar to vendor, vendor_available properties, except\nfor the target partition.\n\nBug: 67916654\nBug: 64960723\nTest: m -j, toybox_recovery is installed to the recovery/root/sbin\nChange-Id: Iaebe0593de16c69fa70de251a61f4d018a251509\n"
    },
    {
      "commit": "3fb1faeeb98143e132ca4d6f1cac42d6f060888b",
      "tree": "b4c20c42a739b22d472b8d23ebf8189597e77c93",
      "parents": [
        "47f98af97fdf6d8d294d5f1173abcf189c21acd5"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Mar 12 15:30:26 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 11 01:45:14 2018 +0000"
      },
      "message": "Use Config/DeviceConfig functions to access ProductVariables\n\nAn upcoming change will stop exporting ProductVariables from Config, so\nswitch to using existing accessor functions, and add more when they\u0027re\nmissing.\n\nBug: 76168832\nTest: out/soong/build.ninja is identical\nChange-Id: Ie0135bdbd2df3258ef3ddb53e5f8fc00aa9b97f7\n"
    },
    {
      "commit": "946e32e1842854899ed962ee3816ecca76354613",
      "tree": "795992e630f25e82ce49be27634d057cc6fccb44",
      "parents": [
        "a9255a8378368c3d3c24ebc65e4b139e6c039379"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Apr 03 13:22:50 2018 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Apr 03 16:02:29 2018 -0700"
      },
      "message": "Add overrides to cc_binary\n\nTest: use it for healthd, it is not installed.\nBug: 77541952\n\nChange-Id: I170a31d1b4d15f20de6a6b6279a2eeda49ca7447\n"
    },
    {
      "commit": "86803cfe6e814d3699e842cfc41244cd9a6e0c30",
      "tree": "ddb07422dff2e413f4761eaa6dbc22be5ea966e9",
      "parents": [
        "8673b5b959def87c0f3f5922b1eea430b1215b62"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 15 14:12:26 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 02 16:55:51 2018 -0800"
      },
      "message": "add a library to report build numbers without causing rebuilds\n\nAllow native modules to specify use_version_lib, which will make\nan android::build::GetBuildNumber() function available.  For host\nbuilds, the function will return the build number at the time that\nthe module was linked.  For device modules it will return the\nvalue of the ro.build.version.incremental property.\n\nBug: 71719137\nTest: build_version_test\nTest: m build_version_test \u0026\u0026 touch build/make/core/Makefile build/soong/cc/libbuildversion/tests/build_version_test.cpp \u0026\u0026 m build_version_test shows different build numbers for binary and library tests.\nChange-Id: I6f7d40b7574bb8206866c4e39bad9c710c796e32\n"
    },
    {
      "commit": "2383f3b693b15b57770def61b546f0e0193e9c30",
      "tree": "cc6a018fca0003613a87975c8b61ebfe069ce6e3",
      "parents": [
        "fa54e751d9467fb75365c3b5c034a029717aea22"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 06 14:40:13 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 06 14:42:06 2018 -0800"
      },
      "message": "Support filegroups for version_script and related properties\n\nBug: 71715793\nTest: m checkbuild\nChange-Id: Ibf78a5ec88e743f29504c91057d2cfced667c8b4\n"
    },
    {
      "commit": "6510f91a1c8a40b6b06d382792d4da1a72eb1118",
      "tree": "4511e4f6ee6f7d43d03b7489ede41b6f22b2a559",
      "parents": [
        "aabf67968c4abc98d94bd8ccd6d612246b2fbbdc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 29 00:27:14 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 30 00:44:18 2017 +0000"
      },
      "message": "Replace ModuleContext.AConfig() with Config()\n\nAConfig() now duplicates Config().  Replace the uses of AConfig()\nwith Config().  Leave AConfig() for now until code in other\nprojects is cleaned up.\n\nTest: m checkbuild\nChange-Id: Ic88be643049d21dba45dbd1a65588ed94bf43bdc\n"
    },
    {
      "commit": "0007d810e2954dd544e7f36442cc0d7188f3c63a",
      "tree": "a1c6ea7dc6a73e6b1c823e37cad29557208cb913",
      "parents": [
        "4647be4afe1dd6d0c4ce2da9e053f27d770216dd"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Tue Nov 07 10:57:05 2017 -0800"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Tue Nov 07 15:57:16 2017 -0800"
      },
      "message": "Change bool, and string properties to *bool, and *string for cc\n\nthere\u0027s no use case for prepending/appending to bool, and string\nproperties within module struct. Declearing \"*bool\" and \"*string\" almost\ncover everything user need.\n\nI did see one case that user specify relative_install_path as\npath prefix in cc_defaults, and concatenate with the one in real module\nto get the final relative install path in Android.bp \u003cbionic/tests/libs\u003e.\n\nTest: m -j checkbuild\nBug: b/68853585\nChange-Id: If3a7a2689c3fc307aae136af6bc9c57f27a1e1a0\n"
    },
    {
      "commit": "af3cc2d23c4473828c9e4596bce36c2ba762e992",
      "tree": "7db84020037e4f83ff17fae7e033dfb85c46987e",
      "parents": [
        "16b9ce4dff7d522aca993b38e4e44be309ba658b"
      ],
      "author": {
        "name": "Jeff Gaston",
        "email": "jeffrygaston@google.com",
        "time": "Wed Sep 27 17:01:44 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 18 18:06:02 2017 +0000"
      },
      "message": "Some clarifications in preparation to automatically order linker dependencies\n\nTest: Browse the code and determine whether it\u0027s easier to understand\nBug: 66260943\nChange-Id: I88c24a8a31ef68f428919087d206433659265684\n"
    },
    {
      "commit": "ada83ec0a6dc677cffd0d29c10b48cbda477daf7",
      "tree": "5be48add3d9c89ce7c5b4e615642812f5aa7bb01",
      "parents": [
        "d685385c6baf385c1d87bfa92dcd0f824a2cb09f"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Aug 31 23:38:27 2017 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Sep 21 12:37:19 2017 -0700"
      },
      "message": "Add PGO support to soong\n\nBug: http://b/63768402\nBug: http://b/65598278\n\nAdd support for the \u0027pgo\u0027 property to specify how a module is processed\nunder PGO.  A sample property is below:\n\npgo: {\n    instrumentation: true, // could be \"sampling: true\" when supported\n    profile_file: \"pgo_simple.profdata\",\n    benchmarks: [\"pgo_simple\"],\n}\n\n1. Runtime profiles can be gathered using \"sampling\" or\n\"instrumentation\".  Sampling is not supported initially.\n\n2. If \u0027toolchain/pgo-profiles\u0027 project is found,\n\u0027toolchain/pgo-profiles/${profile_file}\u0027 is passed to the compiler and\nlinker when building this module.\n\n3. If ANDROID_PGO_INSTRUMENT environment variable is set, and includes a\nbenchmark in the \u0027benchmarks\u0027 list, appropriate flags (for e.g.\n-fprofile-generate for instrumentation) are passed to the compiler and\nlinker when building this module.\n\nTest: Add example modules that specify the pgo property and verify\nappropriate flags and dependencies in the Ninja file.  Some\ntests/examples are in https://android-review.googlesource.com/474805\n\nChange-Id: I6242e0c904497a115e367dea6927ba1c4b906355\n"
    },
    {
      "commit": "c77a0b3f9c54e326341bc5b87ed5840c82ae79aa",
      "tree": "b6b7e9b0f396a92690538e7f270e8e857b01b8a1",
      "parents": [
        "efb1dd93bf9664e74a98ff14ad92f1da5e8378db"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Sep 18 23:19:12 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 20 15:34:33 2017 -0700"
      },
      "message": "Extract the linker and embed it into host bionic binaries\n\nThe linux kernel requires that the ELF interpreter (runtime linker)\nthat\u0027s referenced by PT_INTERP be either an absolute path, or a relative\npath from the current working directory. We\u0027d prefer a relative path\nfrom the binary, similarly to how we handle looking up shared libraries,\nbut that\u0027s not supported.\n\nInstead, extract the load sections from the runtime linker ELF binary\nand embed them into each host bionic binary, omitting the PT_INTERP\ndeclaration. The kernel will treat it as a static binary, and we\u0027ll use\na special entry point (linker_wrapper) to fix up the arguments passed by\nthe kernel before jumping to the embedded linker. From the linker\u0027s\npoint of view, it looks like the kernel loaded the linker like normal.\n\nBug: 31559095\nTest: Enable host bionic,\n      out/soong/host/linux_bionic-x86/nativetest64/libdemangle_test/libdemangle_test\nChange-Id: I8d0aea9790b5e86fcc3ea6e2d00cfa33907e2853\n"
    },
    {
      "commit": "feda20b947079826ad294011ee402678cea197db",
      "tree": "e5b8ea96e563b14a98055b8db6138b26ff9bf140",
      "parents": [
        "3203dde60be8b6e2329a3801247fe0aa8c898904"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Aug 29 15:00:01 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Aug 29 15:00:01 2017 +0200"
      },
      "message": "Support version_script for cc_binaries\n\nBug: http://b/65151367\nTest: make\nChange-Id: Ib9b2da45e3c748eeafa792dfd0447b756855f6ef\n"
    },
    {
      "commit": "36242850fdad11b4e6fbe061ef30f62e7e8c08d8",
      "tree": "a3ca380533afd39e733c658560f87effb1ee0a46",
      "parents": [
        "48173891485a22c9cab0e48f90a3a23be212f44a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 23 15:06:31 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 30 21:08:36 2017 +0000"
      },
      "message": "Refactor factories\n\nChange module factories from returning a blueprint.Module and a list\nof property structs to returning an android.Module, which holds the\nlist of property structs.\n\nTest: build.ninja identical except for Factory: comment lines\nChange-Id: Ica1d823f009db812c518f271a386fbff39c9766f\n"
    },
    {
      "commit": "6e8115acb14a32709746b5415f94a958be929c4b",
      "tree": "42458ecb5d0207106bb20110809e289ace91b35d",
      "parents": [
        "970711686733f2e2e0abdf05ba96d8228faf09d2"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue May 09 10:21:52 2017 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue May 09 14:38:10 2017 -0700"
      },
      "message": "Work-around for crt objects with sdk: current\n\nTest: convert libcups from Android.mk-\u003eAndroid.bp, mm -j64.\n\nChange-Id: I4fddcfa5806d0ce27a229c37a078b0d93e9082a8\n"
    },
    {
      "commit": "e87b768200fb1ea3a9a47645b3e4159d549c0b70",
      "tree": "024cd4bc9da1732221b04b1c8a54cb39219a22ad",
      "parents": [
        "3e231fd8bd61f2eb77e76e06a1877e2904564358"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Mon Apr 17 16:21:41 2017 -0700"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Mon Apr 17 16:21:41 2017 -0700"
      },
      "message": "Make PIC/PIE levels compatible for LTO (Soong).\n\nThe build system currently uses -fPIC for position independent\nlibraries, and -fpie for position independent executables. However,\nthese levels are incompatible and conflict when an executable includes\na static lib with the -fPIC flag - such as when building with\nLTO. This CL changes the flag for executables to the compatible -fPIE\ninstead, which is equivalent for all architectures except PowerPC.\n\nBug: 30227045\nTest: ENABLE_CFI\u003dtrue m -j40 checkbuild # builds and boots\nChange-Id: I95b585b553bc00bc1d4f52f4271c5e30e1007d9b\n"
    },
    {
      "commit": "4416e5db6931629995fcd35c90b295c285be50c8",
      "tree": "556a7a5685f20e311c0b23480423fa67624209af",
      "parents": [
        "01a90597bcab97c4dace82a13a32da76875883cb"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Apr 06 12:43:22 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Apr 11 12:27:41 2017 -0700"
      },
      "message": "Split /system and /vendor modules, allow multi-installation\n\nNothing changes if BOARD_VNDK_VERSION isn\u0027t set.\n\nWhen the VNDK is enabled (BOARD_VNDK_VERSION in Make), this will split\n/system and /vendor modules into two different variant spaces that can\u0027t\nlink to each other. There are a few interfaces between the two variant\nspaces:\n\nThe `llndk_library` stubs will be available in the /vendor variant, but\nwon\u0027t be installed, so at runtime the /system variant will be used.\n\nSetting `vendor_available: true` will split a module into both variants.\nThe /system (or \"core\") variant will compile just like today. The\n/vendor (\"vendor\") variant will compile against everything else in the\nvendor space (so LL-NDK instead of libc/liblog/etc). There will be two\ncopies of these libraries installed onto the final device.\n\nSince the available runtime interfaces for vendor modules may be\nreduced, and your dependencies may not expose their private interfaces,\nwe allow the vendor variants to reduce their compilation set, and export\na different set of headers:\n\n  cc_library {\n      name: \"libfoo\",\n      srcs: [\"common.cpp\", \"private_impl.cpp\"],\n      export_include_dirs: [\"include\"],\n      target: {\n          vendor: {\n\t      export_include_dirs: [\"include_vndk\"],\n\t      exclude_srcs: [\"private_impl.cpp\"],\n\t      srcs: [\"vendor_only.cpp\"],\n\t  },\n      },\n  }\n\nSo the \"core\" variant would compile with both \"common.cpp\" and\n\"private_impl.cpp\", and export \"include\".\n\nThe \"vendor\" variant would compile \"common.cpp\" and \"vendor_only.cpp\",\nand export \"include_vndk\".\n\nBug: 36426473\nBug: 36079834\nTest: out/soong/build.ninja, out/soong/Android- only changes due to _core addition and\n      .llndk -\u003e .vendor\nTest: attempt to compile with BOARD_VNDK_VERSION:\u003dcurrent\nChange-Id: Idef28764043bf6c33dc0d2e7e2026c38867ff769\n"
    },
    {
      "commit": "3edeee113ac2f0be96348d7f5580414ae6642616",
      "tree": "a502b1e42b7c205202ac915dcfbc2691a1357021",
      "parents": [
        "ac01ff5447518986f778be5b5c5a7bb0bf354e9c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Apr 04 12:59:48 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Apr 04 15:39:04 2017 -0700"
      },
      "message": "Add ctx.Windows()\n\nReplace ctx.Os() \u003d\u003d android.Windows with ctx.Windows()\n\nTest: builds\nChange-Id: I7c24c39bcf54a51ad152b21c0021e40a0c07f189\n"
    },
    {
      "commit": "01a405a4810cfc33d8256cdb19882e16be2d3d64",
      "tree": "3c668dabc46065f365be107fa30e6408b1e56794",
      "parents": [
        "0e2d97b4b1d613ddd91f16fea9304c5f5d5d2517"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jun 13 17:19:03 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 14:18:42 2017 -0700"
      },
      "message": "Add LinuxBionic toolchain and switch\n\nThis adds a toolchain definition for LinuxBionic that only supports\nClang/64-bit. It pulls pieces from the x86_linux_host and x86_64_device\nconfigs, and uses the android clang triple, with some manual overrides.\n\nTo enable building this, set your soong.config file to:\n\n {\"Host_bionic\": true}\n\nBug: 31559095\nTest: out/soong/{Android,make-vars}-aosp_arm64.mk the same with or\n      without host bionic turned on\nTest: No change to out/soong/build.ninja before/after this change\nChange-Id: Id97dda8bd9aa670c32aed31fbe6aaa8175e70b59\n"
    },
    {
      "commit": "581341d4f2752a1f2823173167d30ddb30db5932",
      "tree": "c8a4413cdc0a81ca2d934442d71b55a6e5abfec9",
      "parents": [
        "e13374d3c1e33176ac229317505c5e2b4d8d5240"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Feb 09 16:16:31 2017 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Feb 14 13:05:48 2017 -0800"
      },
      "message": "Native Coverage support in Soong (gcov)\n\nThis is configured the same as make -- a global NATIVE_COVERAGE\u003dtrue\nflag to allow native coverage, then COVERAGE_PATHS\u003dpath1,path2,... to\nturn it on for certain paths.\n\nThere are .gcnodir files exported to Make and saved in $OUT/coverage/...\nfiles which are `ar` archives containing all of the compiler-produced\n.gcno files for a particular executable / shared library.\n\nUnlike the Make implementation, this only passes links the helper\nlibrary (automatically through --coverage) when one of the object files\nor static libraries being used actually has coverage enabled.\n\nHost support is currently disabled, since we set -nodefaultlibs, which\nprevents libclang_rt.profile-*.a from being picked up automatically.\n\nBug: 32749731\nTest: NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003dsystem/core/libcutils m -j libbacktrace libutils tombstoned\n      $OUT/coverage/system/lib*/libcutils.gcnodir looks correct (self)\n      $OUT/coverage/system/lib*/libbacktrace.gcnodir looks correct (static)\n      $OUT/coverage/system/lib*/libutils.gcnodir doesn\u0027t exist (shared)\n      $OUT/coverage/system/bin/tombstoned.gcnodir looks correct (executable)\nTest: NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003dexternal/libcxxabi m -j libc++\n      Confirm that $OUT/coverage/system/lib*/libc++.gcnodir looks correct (whole_static_libs)\nChange-Id: I48aaa0ba8d76e50e9c2d1151421c0c6dc8ed79a9\n"
    },
    {
      "commit": "7a108bccaddb72b6ef76e1d7cd22136c7cd12c52",
      "tree": "e281f123d367cafe62220ebe94daec3a7b0b33a0",
      "parents": [
        "5951d3e2bba6c6a5e26728f51942c17954bacb2c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 30 22:44:19 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 30 22:51:59 2017 -0800"
      },
      "message": "Allow clang builds to disable -pie\n\n-pie triggers a bug in glibc\u0027s linker when used with goma\n(https://sourceware.org/bugzilla/show_bug.cgi?id\u003d16381).  Allow\nthe clang build to disable -pie for host modules through the\nDISABLE_HOST_PIE environment variable so it can produce a toolchain\nthat works with goma.\n\nBug: 15814177\nBug: 34722791\nChange-Id: Ic664a1b821aaeaf2bde14b0afa1a1975e31300cb\n"
    },
    {
      "commit": "dc2597d25a453cd26b99754efedc1101f114b2b8",
      "tree": "e84880eb682a6b05207468fc6c674d451d2eb992",
      "parents": [
        "29c69e83dd1ef05e985d5bbee106d4dc29f2ca5e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 26 17:44:26 2017 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jan 26 17:44:26 2017 -0800"
      },
      "message": "Don\u0027t force libraries upon static executables.\n\nThe linker uses libc++_static but needs to avoid the libc.a\ndependency. It does this by setting `stl: \"none\"` and manually\nlinking libc++. This behavior matches make.\n\nA better approach would probably be to generalize system_shared_libs\nto system_libs and apply those to static executables the same way we\ndo for dynamic ones, but that\u0027s a patch for another day.\n\nTest: make checkbuild\nBug: http://b/34740564\nChange-Id: Ie9da0d49a453a220593e8ec2ee721e9af9378007\n"
    },
    {
      "commit": "37047f1c7e6062b1f51fefcb1539225dddf742d0",
      "tree": "1e9148d41f16e11b03c272f3c80217c81f56ff59",
      "parents": [
        "5950f3827c37b073377c84fa407982bc2f47856c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 13 17:06:13 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 13 17:32:29 2016 -0800"
      },
      "message": "Pass DepsContext to dependency methods\n\nPass a DepsContext that embeds android.BottomUpMutatorContext\ninstead of android.BaseContext so that dependency methods can\ndirectly add dependencies.\n\nTest: m -j\nChange-Id: Id4c157975d3d6f03efd99785d217bef486a76139\n"
    },
    {
      "commit": "989c66e3702a19e9e0fb8211542dae100706b364",
      "tree": "4c3bea725b8683345d420d347e77b4ddf9dea48c",
      "parents": [
        "9b09f248d846104665d02ded05ab8b20c37bc964"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 08 09:43:41 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 08 09:44:58 2016 -0800"
      },
      "message": "Use toolchain to get binary extension for symlinks\n\nGet the binary extension directly from the toolchain instead of\ncomputing it from the target.\n\nTest: mmma -j external/clang\nChange-Id: Ib181bc60d0617ad50529791e7b9fc61268376819\n"
    },
    {
      "commit": "9b09f248d846104665d02ded05ab8b20c37bc964",
      "tree": "960b01f178cb3dc2fabfccb9b2060a3ce62781be",
      "parents": [
        "8cc1cb68cd334076948eb1208dc1818de9a61915"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 07 13:37:42 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 07 17:35:37 2016 -0800"
      },
      "message": "Install symlinks with same suffix and extension as installed file\n\nMove symlink installation into the binaryDecorator so that it can\naccess the suffix and extension when installing symlinks.  Also\nconsolidates the symlink and symlink_preferred_arch handling.\n\nTest: m -j clang, ls -l out/host/windows-x86/bin/clang++.exe\nChange-Id: I1204afb71fac87b276bd6b625b52ee21274855a0\n"
    },
    {
      "commit": "d2ede879b5027413b288be92bdc4f320124c5d3c",
      "tree": "fad2da22ce685b05ff4042ab86941b260e69b801",
      "parents": [
        "112fd2b9b1ad51d5a7c17a4859fda75592d6ef93"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Nov 18 14:54:24 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Nov 28 13:45:24 2016 -0800"
      },
      "message": "Add basic VNDK support in Soong\n\nExport a list of libraries in the VNDK, which is currently empty.\n\nTake in Make\u0027s global BOARD_VNDK_VERSION, and use that as the SDK\nversion for modules that specify use_vndk: true.\n\nModules that use the vndk have some configuration as if they were\nbuilding against the NDK (the absence of globally defined headers), but\nin other cases look like platform modules (using the platform libc++,\nfor now).\n\nThis change does not attempt to enforce any linking constraints, that\nwill come in a later patch.\n\nTest: out/soong/build.ninja doesn\u0027t change\nChange-Id: I3be206b67015ac5177b7eef4a451c579e3dc903f\n"
    },
    {
      "commit": "2e47b34435de8cfe3f1533c553fe546217c98b3c",
      "tree": "be009e1af663c782465c0bd9cf2545926eea367d",
      "parents": [
        "967c6a9b87eb4eca13449498183e3f191843c9cd"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Nov 17 01:02:25 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Nov 17 01:50:43 2016 -0800"
      },
      "message": "Add Toolchain.Bionic()\n\nMove some cc ctx.Host() / ctx.Device() checks over to using\nctx.toolchain().Bionic(). There will be more changes, these are just the\nobvious ones dealing with host_ldlibs / crt / system libraries.\n\nBug: 31559095\nTest: out/soong/build.ninja is identical\nChange-Id: Ibba60483b4ab0e01f6996eb7d883120e4acc1830\n"
    },
    {
      "commit": "ebedf678de4a013590c29bfb97bd445c12e7b010",
      "tree": "fee625ec8367866645ecf35c9c1e53349135efd9",
      "parents": [
        "90f7a4dcab5b6309dd5b0cc458622e7ad52cf616"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Nov 08 15:06:22 2016 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Nov 10 14:01:08 2016 -0800"
      },
      "message": "Support `sdk_version: \"current\"` for the NDK.\n\nWe need to fall back to the old CRT objects since we aren\u0027t generating\nthose yet.\n\nTest: Created a test module using \"current\", checked that it linked\n      the libs from current.\nBug: None\n\nChange-Id: I5fe170d7b26154da8877672ac2acb7da0262fe38\n"
    },
    {
      "commit": "a03cf6d3221142a7d38fefb187728a084f0b0367",
      "tree": "b048c310fd53cdc60f1452d97671377167da409d",
      "parents": [
        "5cb580f407d2b1b639d7aeea8e1310740e55fe1c"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Sep 26 15:45:04 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 31 16:21:01 2016 -0700"
      },
      "message": "Add clang-tidy support\n\nFor every file which we can run clang-tidy (C/C++ clang-built), we add a\nnew build node that depends on the object file (since clang-tidy does\nnot export a depfile), and is depended on by the link step. This is\nbetter than how we\u0027re doing it in make, since calling tidy can be turned\non or off without needing to rebuild the object files.\n\nThis does not attempt to port WITH_TIDY_ONLY from Make, since the way\nthat it works is broken (due to the lack of a depfile).\n\nBug: 32244182\nTest: WITH_TIDY\u003dtrue mmma -j bionic/libc\nTest: ./soong (Setting ClangTidy: true)\nChange-Id: I40bbb5bb00d292d72bf1c293b93080b5f9f6d8ea\n"
    },
    {
      "commit": "5cb580f407d2b1b639d7aeea8e1310740e55fe1c",
      "tree": "06df2217c80ade92c65e85f87f8d9e959ba96257",
      "parents": [
        "5d5db02bf6cd527455abcbf3502e990bb2d21e5a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Sep 26 17:33:01 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 31 16:18:49 2016 -0700"
      },
      "message": "Start using \"struct Objects\" to store object Paths\n\nSo that we can represent other files that get generated along with the\nobjects, like the gcno coverage information, and per-file clang-tidy\nruns.\n\nTest: Soong\u0027s build.ninja identical before/after\nChange-Id: I5c553a153c436d5403549f62c73fe79c5f101779\n"
    },
    {
      "commit": "ce75d2c6a23fdff806466fab7ad6d8ec471182e0",
      "tree": "7beffa26d89505d595ea3ca60bdf975d1145b7b9",
      "parents": [
        "4498afc55b858e856d84925281dbf254a6280efb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 06 16:12:58 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 13 14:52:47 2016 -0700"
      },
      "message": "Initial prebuilt support\n\nSupport prebuilt shared libraries as an initial proof-of-concept of\nprebuilts.  Future changes will support binaries and static libraries,\nand the ability to select which to use based on something besides\nblueprint properties.\n\nTest: TestPrebuilts run during m -j\nChange-Id: I6e84da667e9005ae11844bad01d25cbe4ced1ce3\n"
    },
    {
      "commit": "798bfce9d00217716eaee2256878db625b9e6e2e",
      "tree": "80939327c1f981ae0c689c907b37f8fb39334a99",
      "parents": [
        "3f9bde87fb7f7da0ee41ff5674efee6177c88822"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 12 14:28:16 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 12 14:30:44 2016 -0700"
      },
      "message": "Move registration into android package\n\nMutator registration is tightly coupled with the android package, move\nall registration from the soong package to the android package.\n\nTest: build.ninja identical\nChange-Id: Ie183d0b52cc7431c9e05b231934d189208ef1efe\n"
    },
    {
      "commit": "26c34ede294735354d75a5f511d9afd39dc8013c",
      "tree": "347b7a9d337b27e16eacf541fa92f6f773b0b1e4",
      "parents": [
        "12013c8fe6d272c665b8b31672d49868a3cd41d3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 30 17:10:16 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 30 21:05:59 2016 -0700"
      },
      "message": "Add support for toc optimization in soong\n\nSkip relinking against shared libraries whose interface hasn\u0027t changed.\n\nTest: mmma -j frameworks/native/libs/gui\nTest: touch frameworks/native/libs/gui/BufferItem.cpp\nTest: mmma -j frameworks/native/libs/gui, see nothing relinks past libgui\nBug: 26014946\nChange-Id: I4d4b8da6a35c682341ae51869f5c72b51e192053\n"
    },
    {
      "commit": "4aa75ca244ef7d0150978af626c0478fa784e93d",
      "tree": "654bb95f64779a467729af32356c5678a8bb9ece",
      "parents": [
        "024c32e9870a2a7d7704967eeb7764686cd69aab"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 28 16:18:03 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 28 17:38:02 2016 -0700"
      },
      "message": "Expose HostToolPath on the cc module to fix genrule.tool\n\nBug: 31742855\nTest: Use `tool` in a genrule, ensure it runs properly.\nChange-Id: Ib9ff35125edd66cdba8ede4f28aa6b753de0689b\n"
    },
    {
      "commit": "8b74d172209fccf1bd3cf1e71eaf1596f6c01ca5",
      "tree": "aa4f747c4d15fb0171b4d9891392db436d007efd",
      "parents": [
        "b1957a502116195a534f45c37f15efa35298e520"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 13 09:59:14 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 13 10:01:45 2016 -0700"
      },
      "message": "Fix binaries and symlinks for prefer32\n\nTrack the primary architecture selected for each class based on the\nmodule\u0027s multilib setting and the global config.  Fixes building\nbinaries with multlib set to first and DevicePrefer32BitExecutables set,\nand fixes symlinks to binaries with multilib set to prefer32.\n\nBug: 31452121\nTest: mmma -j art HOST_PREFER_32_BIT\u003dtrue\nChange-Id: I75094df42f3273f6d613e4058eaa565957174c28\n"
    },
    {
      "commit": "522e373a22927926ae175b6fbc97f2e72169b2ba",
      "tree": "568489ec90ee55ddee9c65b23c967bc012a1dba9",
      "parents": [
        "1e8ed27de3727846e7dc924498d03f430223260a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 07 13:14:06 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 07 13:14:06 2016 -0700"
      },
      "message": "Allow CustomizeProperties to override linker\n\nAllow CustomizeProperties to override the dynamic linker by setting a\nDynamicLinker property.  Needed by art, which overrides the linker for\ndevice-on-host testing.\n\nChange-Id: Ia4cb5a85b9a995d8138da33eb13543addf3b38cc\n"
    },
    {
      "commit": "20780c80a0bba03122c682cb6955a07dbee31b1c",
      "tree": "143a68e42b1ae3a731a760779f7e4efa089917d6",
      "parents": [
        "72301d978a16ba0b3a54eb899b5e73af7b29c0e9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 02 14:06:30 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 02 14:06:30 2016 -0700"
      },
      "message": "Remove HostPrefer32BitExecutables\n\nHOST_PREFER_32_BIT was used during the switch to 64-bit host tools to\nkeep the SDK building as 32-bit, but is never set any more.\n\nChange-Id: I7c2db269d3f7fa1f4e0c022cbced789755a62d81\n"
    },
    {
      "commit": "1e7d3706d67d6203be4db91362277548d6fc65b7",
      "tree": "f8ae3756ac778f039d8a207da53c25c55b3c8304",
      "parents": [
        "0f4e0d6c5d3688766747f353e1799c259d6c0d99"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 24 15:25:47 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 25 22:42:02 2016 +0000"
      },
      "message": "Add support for preferred arch symlinks\n\nAdd a symlink_preferred_arch property to binaries to allow compiling the\nbinary for multiple architectures and then creating a symlink to the\npreferred archicture, for example dalvikvm32 and dalvikvm64, with\ndalvikvm symlinked to dalvikvm64.\n\nTest: mmma -j art/dalvikvm\nChange-Id: Ied15f2be9d52c01006fe8ac207c175b78558eab1\n"
    },
    {
      "commit": "b916a38233e6862ec74dd840038ae224f6fde1c7",
      "tree": "c830af79126bf82b750bad58bd9808a638607da8",
      "parents": [
        "01344df46ee1744dd1ff7815705564deb43ac7cb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 29 17:28:03 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 05 10:25:09 2016 -0700"
      },
      "message": "Refactor cc modules to use decorators instead of inheritance\n\nFor example , instead of trying to have libraryLinker inherit from\nbaseLinker and libraryCompiler inherit from baseCompiler, create a\nsingle decorator object that wraps both baseLinker and baseCompiler.\n\nTest: Builds, no unexpected changes to build.ninja\nChange-Id: I2468adaea8466c203a240259ba5694b8b1df7a52\n"
    },
    {
      "commit": "42742b8bb043abd3b330defd1bfac4ed756e63ff",
      "tree": "438b1b4102b92b99b63a0a6b516f14b247f20f59",
      "parents": [
        "b98c8b05954dd78d3c4bb87b0bceeb03ef4b362c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Aug 01 13:20:05 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Aug 01 13:47:15 2016 -0700"
      },
      "message": "Rename compiler, linker and installer methods to be unique\n\ncompiler, linker, and installer interfaces may be implemented by a\nsingle decorator object, rename their methods to be unique to avoid the\nsame method being called multiple times.\n\nTest: out/soong/build.ninja unchanged\nChange-Id: I1608c41cd68f614ba99c11bb9fcc7936f618d9aa\n"
    },
    {
      "commit": "4d9c2d17c3e474c8955ec64e8eb20a9358480058",
      "tree": "9b1761603bfe8f19a3aa36981c03f0616262fbc3",
      "parents": [
        "c6b4e452b4f025ab2f5fab6ecead53ff016092aa"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 29 12:48:20 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 29 15:17:58 2016 -0700"
      },
      "message": "Separate cc.go\n\nSplit cc.go into files per module type, plus files for the compiler,\nlinker, and installer stages.\n\nChange-Id: Id44c03f42fcd180950ccd008d4de0c144ea3597b\n"
    }
  ]
}
