)]}'
{
  "log": [
    {
      "commit": "ec0aca3a84efcc85aec98eae4d577b647510aff0",
      "tree": "99f39455bad716983e0b4412d683de8e4dadbf90",
      "parents": [
        "59034511c5c9968a97985712a85b5ed93c49f2da",
        "b3af348dc03189ec12f35f8506bf6259de65e56e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 08 04:38:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 08 04:38:45 2017 +0000"
      },
      "message": "Merge changes I047d103b,I35de5d93,I3327d275\n\n* changes:\n  Add prebuilts/misc to root.bp\n  Export java modules to make\n  Fix java prebuilts\n"
    },
    {
      "commit": "31384debd7e119f8cd054ad89a53adb3dbd6a75d",
      "tree": "63159a1dd05d904e64748a0d71356f4a4eafc901",
      "parents": [
        "bbe3ff4c50f5ba762bf7d0f1d175efff976dbb9f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jul 28 12:39:46 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Aug 02 17:14:10 2017 -0700"
      },
      "message": "Adapt to PLATFORM_VERSION_FUTURE_CODENAMES.\n\nDon\u0027t preserve the confusing names from make. Rename AllCodenames to\nActiveCodenames, add FutureCodenames, and add CombinedCodenames to\nfetch the *real* AllCodenames.\n\nTo allow `introduced\u003dP` in NDK library definitions, we need to know\nthat P exists. Use the combined list of current and future API\ncodenames generating stubs.\n\nTest: make ndk\nTest: check out/soong/api_levels.json\nBug: None\nChange-Id: I435f9ce7446236edc268a84e33474044a55a6302\n"
    },
    {
      "commit": "bbe3ff4c50f5ba762bf7d0f1d175efff976dbb9f",
      "tree": "69ec011f74063d521d78671e02b01073fd22423a",
      "parents": [
        "ed2c78ef4e1340ca97528de95b32daeb6f95947d",
        "151027107db34321bd058c3a8347800e004d59eb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 23:11:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 23:11:12 2017 +0000"
      },
      "message": "Merge changes from topic \u0027ndk-weak-stubs\u0027\n\n* changes:\n  Add NDK API codenames for old releases.\n  Add support for weak symbols in the NDK stubs.\n"
    },
    {
      "commit": "5ea9bcc50be4259de861e9bced4681881c276611",
      "tree": "99a99334271e13fa7ee3b1619dadc308a7ec329c",
      "parents": [
        "ed2c78ef4e1340ca97528de95b32daeb6f95947d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 27 15:41:32 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 31 23:50:01 2017 -0700"
      },
      "message": "Fix java prebuilts\n\nThe java prebuilt tests weren\u0027t registering the prebuilts mutators,\nwhich hid an issue where prebuilts modules weren\u0027t getting renamed\nto avoid collisions with source modules of the same name, which\nended up causing the prebuilt module to try to add a dependency\non itself.\n\nTest: java_test.go\nChange-Id: I3327d27533591cb08a4b8b8b5e1668a6f72be8df\n"
    },
    {
      "commit": "ed2c78ef4e1340ca97528de95b32daeb6f95947d",
      "tree": "e3da340e99ad6c8547731fcd47119d3b5cf7749a",
      "parents": [
        "074a5d35bffc80ff05ae4ce593314045bbf03c2d",
        "8ea49592792b8f5892ab18b68207df0eae3b46a8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 01:00:37 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 01 01:00:37 2017 +0000"
      },
      "message": "Merge \"Add support for Exynos-M1\""
    },
    {
      "commit": "151027107db34321bd058c3a8347800e004d59eb",
      "tree": "22a5b16ee742f19f4e6b7bd70a3bfff2b4d1c3ab",
      "parents": [
        "f55f0787a7922e7aa3755abc9b2c0130e982afa6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jul 28 12:31:28 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jul 28 12:31:28 2017 -0700"
      },
      "message": "Add NDK API codenames for old releases.\n\nWithout these, we\u0027d need to go rewrite all the stub templates to stop\nusing the codename and use the number instead whenever an API is\nreleased.\n\nTest: changed something in libc to use introduced\u003dL, make ndk\nBug: None\nChange-Id: I1b8703655664c567f8a5c36219e73f11ba27d99a\n"
    },
    {
      "commit": "074a5d35bffc80ff05ae4ce593314045bbf03c2d",
      "tree": "cb011b82f9ecbcaaec691a3b0dc23116873fecfb",
      "parents": [
        "9ccbabc1eacd8503f612f1a9888d754c95839aa6",
        "ae15271392ada74c29ea5d864ffbeaac436faceb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 27 01:53:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 27 01:53:56 2017 +0000"
      },
      "message": "Merge \"Delete output files before copying to them.\""
    },
    {
      "commit": "ae15271392ada74c29ea5d864ffbeaac436faceb",
      "tree": "ce01119604553fb5fdb36f8c88129375214a4a0e",
      "parents": [
        "f5720175dd17df9a234a2fe73605b031313c6d52"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jul 26 14:09:50 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jul 26 15:38:40 2017 -0700"
      },
      "message": "Delete output files before copying to them.\n\nAvoid ETXTBSY when copying over a file that\u0027s being executed.\n\nTest: manual\nTest: m -j\nChange-Id: I0427b5018e67e12f685bce95028831b5661eee2c\n"
    },
    {
      "commit": "05f17764c39531bcbf2992ff12cb1cf36a609eab",
      "tree": "7c35102eab663537d96aedb26925feee571468f0",
      "parents": [
        "91f9b547672ecb20a308d52df3a0c09d616cb1b9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jul 24 15:58:20 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jul 24 15:58:20 2017 -0700"
      },
      "message": "Use a unified ninja builddir\n\nInstead of calling SetNinjaBuildDir, pass it to bootstrap.bash, so that\nthe bootstrap package can set it consistently during bootstrapping and\nnormal execution.\n\nBug: 63720725\nTest: m -j nothing\nTest: mkdir o; ../bootstrap.bash; ./soong\nChange-Id: Ica88d2d5f1461b5be49bfe6316c6ec4ef4d89d49\n"
    },
    {
      "commit": "8ea49592792b8f5892ab18b68207df0eae3b46a8",
      "tree": "4b6d9c527e3f2dc5bf9fe64b0537039d79c4c7a7",
      "parents": [
        "99cd671ac35897e9514c6ca687dfeeeecedb36d3"
      ],
      "author": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Jul 24 07:14:55 2017 +0900"
      },
      "committer": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Jul 24 07:14:55 2017 +0900"
      },
      "message": "Add support for Exynos-M1\n\nChange-Id: Ie57507a5d0ea9101db603ff3538c51853083a314\nSigned-off-by: Junmo Park \u003cjunmoz.park@samsung.com\u003e\n"
    },
    {
      "commit": "99cd671ac35897e9514c6ca687dfeeeecedb36d3",
      "tree": "f0e41b2ec144ddd4342035f1378c7d84744e4cd3",
      "parents": [
        "26f9ed2f703e4829a965f92b876bd998e1d04a22",
        "d86c902470c09205cc89529a6cd313fabee2be09"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 22 02:08:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 22 02:08:18 2017 +0000"
      },
      "message": "Merge changes I646f303b,I294ca692\n\n* changes:\n  Add support for Exynos-M2.\n  Override mcpu option of ToolingCFlags when mcpu is eyxnos-m2.\n"
    },
    {
      "commit": "d86c902470c09205cc89529a6cd313fabee2be09",
      "tree": "ccf68d9e9ac84b02b7a298c56aa100ac7702dcc2",
      "parents": [
        "ccbd62e050898b1e8b2b2b00fef0093998b7470e"
      ],
      "author": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Fri Jul 21 09:07:47 2017 +0900"
      },
      "committer": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Sat Jul 22 09:16:31 2017 +0900"
      },
      "message": "Add support for Exynos-M2.\n\nChange-Id: I646f303b460556a9b36a44574f25dd992d42906c\nSigned-off-by: Junmo Park \u003cjunmoz.park@samsung.com\u003e\n"
    },
    {
      "commit": "89536d4948f954124ec8d8c4957630784778ff92",
      "tree": "4549b67b80d81b0eb40830886da5bdb6f999a5f7",
      "parents": [
        "25167cdc7ad1b750571177fed9783a4f5a942c6a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 07 14:35:50 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 20 05:47:27 2017 +0000"
      },
      "message": "Add support for java_defaults modules\n\nTest: java_test.go\nChange-Id: I6dba1671c7eb019183af94bb7b10810296740101\n"
    },
    {
      "commit": "1f44a3aa4f2ce99a0640926096c82029083423ac",
      "tree": "690e403acc1154e0eda8d2ec7f935aeb50e63e0d",
      "parents": [
        "ec95f7f2f646d4f5be95bfd477416346eb4abf1c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 07 14:33:33 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 19 23:14:36 2017 +0000"
      },
      "message": "Don\u0027t pass same argument twice for defaults modules initialization\n\nInitDefaultsModule and InitDefaultableModule were requiring the\nmodule to be passed in as an argument twice, once as a\nandroid.Module and once as an android.DefaultableMOdule.  Use\na type assertion instead.\n\nTest: builds\nChange-Id: I57d721e68a4f016e02c17a678af5f2ba25a9a430\n"
    },
    {
      "commit": "efac4a87ee8e0160c4b5f41326db4fa35066cf23",
      "tree": "41fc6b7db92115ee4a1de4bd3ff9b28662073a56",
      "parents": [
        "3c8ba15bdd3b50b7c9d765b5c17a49a33948db97"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Jul 18 19:42:09 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Jul 18 19:42:09 2017 -0700"
      },
      "message": "Switch `owner` to *string to disable concat\n\nIf owner is specified in a defaults module, we shouldn\u0027t concat that\nwith the owner specified in a module using that defaults module. A\nstring pointer will produce the correct behavior (overriding the default)\n\nBug: 37330627\nTest: out/soong/Android-*.mk looks correct after this change\nChange-Id: I64574e2ba81c11b042248d7a44702ec4534ee932\n"
    },
    {
      "commit": "5f59553bca49ad4acd00625633c2a6fd5c4eb2c5",
      "tree": "5e787265050752194514347fb39151ce9219dfca",
      "parents": [
        "da4a7257b5b4c4fd41b8e8e084713e3e4f20187b"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Jul 13 14:46:05 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Jul 18 13:38:20 2017 -0700"
      },
      "message": "Allow integer_overflow sanitizer path exclusion.\n\nAdd support for excluding paths from having integer_overflow applied to\nthem when using SANITIZE_TARGET\u003dinteger_overflow via an\nINTEGER_OVERFLOW_EXCLUDE_PATHS make variable. This covers the soong side\nof the change.\n\nBug: 30969751\nTest: Build with SANITIZE_TARGET\u003dinteger_overflow\nSANITIZE_TARGET_DIAG\u003dinteger_overflow\nINTEGER_OVERFLOW_EXCLUDE_PATHS\u003d\u003cpath\u003e and confirmed this was no\nlonger being applied to binaries in that path.\n\nChange-Id: I298b772f5425da28dff1cf007825be19558db3a8\n"
    },
    {
      "commit": "cec8171420763a7a33f210be7bd45e22d3b38831",
      "tree": "090551693ef9bac520e6977cef72404d27153966",
      "parents": [
        "eb54da6ebe8b0baf285be7d107c4cf959c3c462e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 13 14:43:27 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 14 14:19:51 2017 -0700"
      },
      "message": "Add integration testing infrastructure\n\nFix mutator registration for tests to allow different tests\nin the same package to register different mutators.\n\nAllow tests to track the resulting ModuleBuildParams objects\nto use in assertions, and provide helpers for getting them.\nFor example:\n    config :\u003d android.TestConfig(buildDir)\n    ctx :\u003d android.NewTestContext()\n    ctx.RegisterModuleType(...)\n    ctx.MockFileSystem(...)\n    ctx.ParseBlueprintsFile(\"Android.bp\")\n    ctx.PrepareBuildActions(config)\n    ctx.Register()\n    // Get the Inputs value passed to the javac rule for the foo module\n    inputs :\u003d ctx.ModuleForTests(\"foo\".Rule(\"javac\").Inputs\n\nTest: java_test.go\nChange-Id: I10c82967f5f3586d2c176f169906b571ed82fc73\n"
    },
    {
      "commit": "d773eb3e8673162af6c841306c5e4ca7fabe4d51",
      "tree": "de90a9335bc292078b5b0f93cda51e17fe6c4092",
      "parents": [
        "0c3a1efae4814f62ece007c7fc2251386aaae2f2"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Jul 03 13:18:12 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat Jul 08 09:29:04 2017 +0900"
      },
      "message": "add device_kernel_headers module for vendor-specific kernel headers\n\ndevice_kernel_headers is a built-in heder-only lib that provides device-specific\nkernel headers. The header path is configured via a new product variable\nSystemIncludeDirs, which is currently the mirror of\nTARGET_PROJECT_SYSTEM_INCLUDES in the make world.\n\nNote: generic kernel headers (bionic/libc/kernel) have been added to the\ninclude path by default. \"device_kernel_headers\" module is for device-specific\nkernel headers such as /device/*/*/kernel-headers.\n\nNote 2: this is opt-in for Android.bp modules (i.e. header_libs :\n[\"device_kernel_headers\"] required.) while it is always provided to\nAndroid.mk modules.\n\nBug: 62939405\nTest: choosecombo to aosp_sailfish (or any other Pixel/Nexus targets)\nBOARD_VNDK_VERSION\u003dcurrent m -j gralloc.msm8996 (or any other vendor\nlibs using vendor-specific kernel headers)\n\nChange-Id: I81c60abc13942c89fff723d1544b27a81b300db0\n"
    },
    {
      "commit": "0c3a1efae4814f62ece007c7fc2251386aaae2f2",
      "tree": "ac4227abed121ec081b0e30137c857ec97fd73e4",
      "parents": [
        "e9425b0277ea05db66d986f5530bf53e09bd37ac"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Jun 28 09:10:48 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Jul 07 09:52:23 2017 -0700"
      },
      "message": "Add integer_overflow sanitization build option.\n\nAdds the SANITIZE_TARGET\u003dinteger_overflow build option to apply signed and\nunsigned integer overflow sanitization globally. This implements the\nSoong side of the build option.\n\nAn additional build option is provided to control whether or not to run\nin diagnostics mode, controlled by SANITIZE_TARGET_DIAG. This works the\nsame way that SANITIZE_TARGET does and currently only supports\n\u0027integer_overflow\u0027 as an option.\n\nA default sanitizer blacklist is added to avoid applying sanitization\nto functions that are likely to exhibit benign overflows.\n\nBug: 30969751\nTest: Building with and without the new flags, device boot-up, tested\nvarious permutations of controlling the new flags from build files.\n\nChange-Id: Ibc8a8615d3132f1a23faaf1cb4861f24c5ef734a\n"
    },
    {
      "commit": "e9425b0277ea05db66d986f5530bf53e09bd37ac",
      "tree": "28f67df707cf9e3a552df124b8c16fd88f330539",
      "parents": [
        "195fb4183c111d50639b497dc9d3cf4727938fad",
        "00269f23ee1c2d03d7fa88aada4911f7da25f531"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 07 03:30:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 07 03:30:13 2017 +0000"
      },
      "message": "Merge \"Fix install location for vendor tests\""
    },
    {
      "commit": "00269f23ee1c2d03d7fa88aada4911f7da25f531",
      "tree": "be521c20e103466b23a9bf91bd4e73806d3f62f9",
      "parents": [
        "4c35af09ea774288959b347d81365329b13be3a1"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Jul 06 16:59:48 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Jul 06 18:09:46 2017 -0700"
      },
      "message": "Fix install location for vendor tests\n\nThese should be install in /data/nativetest* with the rest of the tests,\nbut had been moved to /vendor/nativetest* accidentally. Add some tests\nso that this doesn\u0027t happen again.\n\nBug: 63393698\nTest: m -j blueprint_tools\nTest: compare out/soong/Android-aosp_arm64.mk\nTest: compare out/soong/build.ninja\nChange-Id: Id3b08a7e3908955df18a043a02ea576dc88086c3\n"
    },
    {
      "commit": "1a0f09bc568ff7b8b306336f032e7fd0b0f6a82e",
      "tree": "9c7706bfe1e6d2c784c9bf9d3584067724b59f8f",
      "parents": [
        "36242850fdad11b4e6fbe061ef30f62e7e8c08d8"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Wed Jul 05 10:35:11 2017 -0700"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Wed Jul 05 10:37:57 2017 -0700"
      },
      "message": "Fixed the unexpected scenario for \"device_supported\"\n\ncc_defaults {\n    name: boo,\n    device_supported: false,\n}\n\ncc_library_static {\n    name: foo,\n    defaults: [boo],\n}\n\nSoong still tried to build foo_android_arm/arm64 device target which is not what we\nexpected.\n\nTest: m -j checkbuild\n\nChange-Id: I26a67c9ea024f5458f0818def0fa10cecc5fb7cf\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": "20e1365e61017fddfdefde05e3e2ca8c2f6ae080",
      "tree": "41015def29d1daf57af1f3d35e4251e1050b2839",
      "parents": [
        "405ce4d352ca12cbc58f1a6777c6bfac4862a390"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 15:34:51 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 23 10:57:36 2017 -0700"
      },
      "message": "Fix panic in builds with no device\n\nRunning prebuilts/build-tools/build-prebuilts.sh in a repo that\ncontains art/build/art.go panics because config.Targets[Device] is\nempty.  Check the length before accessing the slice.\n\nTest: prebuilts/build-tools/build-prebuilts.sh\nChange-Id: Ifb9fe0fad07b22d6b574f505c08c5c761278aad0\n"
    },
    {
      "commit": "efc1b412f199bbbe2474d4c5396dc4b39a6beff7",
      "tree": "c324ef0de2b4a59c76b5c78637852f567be0038b",
      "parents": [
        "6b78fa8c012d3e84684d458f3271e91f0312423f"
      ],
      "author": {
        "name": "Jeff Gaston",
        "email": "jeffrygaston@google.com",
        "time": "Wed Mar 29 17:29:06 2017 -0700"
      },
      "committer": {
        "name": "Jeff Gaston",
        "email": "jeffrygaston@google.com",
        "time": "Fri Jun 09 17:57:18 2017 +0000"
      },
      "message": "Have Soong try to enforce that genrules declare all their outputs.\n\nThis causes Soong to put the outputs of each genrule into a temporary\nlocation and copy the declared outputs back to the output directory.\nThis gets the process closer to having an actual sandbox.\n\nBug: 35562758\nTest: make\n\nChange-Id: I8048fbf1a3899a86fb99d71b60669b6633b07b3e\n"
    },
    {
      "commit": "87f3b24418acb14760ea5faad9ea241c8f7edd33",
      "tree": "519f42a6d1588f345ec06ea7b204327f145fcdcf",
      "parents": [
        "76cee23144b40007db47fb74e6125a7b6a31052c"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Jun 07 12:31:57 2017 -0700"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Jun 07 12:31:57 2017 -0700"
      },
      "message": "Fix install path for sanitized native tests. (Soong)\n\nThis CL fixes a bug with how Soong builds the install path for native\ntests. Tests are installed in /data/nativetest* by default, but the\nlogic was wrongly redirecting sanitized versions to\n/data/asan/system/nativetest*. With this fix, they are correctly\nredirected to /data/asan/data/nativetest* instead.\n\nBug: 37942061\nTest: lunch marlin_asan-userdebug \u0026\u0026 \\\n        SANITIZE_TARGET\u003d\"address\" m -j70  \\\n        # nativetests are generated in /data/asan/data/nativetest*\n\nChange-Id: I0c132af5d443151c44219d231770049fddf79bbe\n"
    },
    {
      "commit": "d55aa7bdadda377d0fc1ffc8631ad8c913dd984f",
      "tree": "615d80aafb5cfb2e19d5ee87fda6c3da46f3a1af",
      "parents": [
        "977fd8f1fa60ea51f280962e3074d6999ff38c0b",
        "ae7f3e26ec88559c9e1d9b4aedac78fff83e4ea4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 31 11:32:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 31 11:32:31 2017 +0000"
      },
      "message": "Merge \"MIPS: Lower LibartImgDeviceBaseAddress() to fix ART tests.\""
    },
    {
      "commit": "ae7f3e26ec88559c9e1d9b4aedac78fff83e4ea4",
      "tree": "f34fe5a25813cbac060beedcf3274cf2aa532f0e",
      "parents": [
        "a9ec71f54f41c6261909525030a44d34a8cff479"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue May 30 16:36:58 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue May 30 16:38:42 2017 -0700"
      },
      "message": "MIPS: Lower LibartImgDeviceBaseAddress() to fix ART tests.\n\nSome of ART tests fail to mmap memory unless\nLibartImgDeviceBaseAddress() is further lowered.\n\nTest: booted MIPS32R2 in QEMU\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: repeat all of the above in configurations\n      ART_READ_BARRIER_TYPE\u003dTABLELOOKUP,\n      ART_USE_READ_BARRIER\u003dfalse\nTest: repeat the above tests on CI20\n\nChange-Id: I48cd9d8074e07073cc6abb2153660e00017b9e6b\n"
    },
    {
      "commit": "e5598169b30c3c3a17b9033d16bd2c917163fc34",
      "tree": "98be450ffcf8693581c5252e2caddeb18ab6241b",
      "parents": [
        "58006680019d21e89929e850c8a4cdb238471c12",
        "dab550d68b06b3fd91c0425826adc262b7cde595"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 26 19:34:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 26 19:34:32 2017 +0000"
      },
      "message": "Merge \"Add pdk product variable\""
    },
    {
      "commit": "715cac3971a2a1edf7bc635a5e6e0bb26002f885",
      "tree": "8295cdb80c0527948ced9bab6ce684c2c32369fe",
      "parents": [
        "442b7e6dc9d05c0c904c0023753ac6d5e876b507"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu Apr 20 06:53:59 2017 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu May 25 14:46:58 2017 -0700"
      },
      "message": "Optimizations to abi checking.\n\nWe now add export_static_lib_headers, export_generated_headers to the\nfilters while dumping the abi of a library using header-abi-dumper\n(through -I\u003cdir\u003e additions to the invocation of header-abi-dumper and\nheader-abi-linker)\n\nAlso add support for zipped reference source based abi dumps.\n\nTest: mm -j64 in hardware/interfaces/nfc/default/1.0 produces\nandroid.hardware.nfc@1.0.so.lsdump with abi filtered out using generated\nheaders.\n\nTest: Copied the linked abi dumps produced by mm -j64 in bionic/libc to\nprebuilts/abi-dumps/ndk and gzipped them. Ran mm -j64 again in\nbionic/libc and verified header-abi-diff getting invoked.\n\nBug: 32750600\n\nChange-Id: I26210af908c87a6143e39fa25f50307acb68a387\n"
    },
    {
      "commit": "dab550d68b06b3fd91c0425826adc262b7cde595",
      "tree": "d2e9344f60c7073f25fa7c1f588dae074395d6ff",
      "parents": [
        "a9ec71f54f41c6261909525030a44d34a8cff479"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 25 10:18:24 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 25 10:18:24 2017 -0700"
      },
      "message": "Add pdk product variable\n\nThe pdk product variable will be set by make when TARGET_BUILD_PDK\nis set, and can be used to disable modules that won\u0027t build in the\nPDK.\n\nTest: builds\nBug: 62086238\nChange-Id: I2191a57b9b06680fd741308e7464275a89773530\n"
    },
    {
      "commit": "e24bc204c95c539401cb2fecd0509841fe2fe154",
      "tree": "06f9d09eed2760e5f92434e3d78bc91d98cdc60c",
      "parents": [
        "2c13abc95e3e2c6c12fff6aa42262ef3296c2a1b"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu May 18 15:44:02 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri May 19 15:19:57 2017 -0700"
      },
      "message": "Add Treble as soong variable.\n\nThis exposes PRODUCT_FULL_TREBLE.\n\nThis is required so that we can add sane defaults to Treble code.\n\nTest: manual\nBug: 38415912\nChange-Id: Ia3ea4aeee799b998380a1600026075dab66286a3\n"
    },
    {
      "commit": "2c13abc95e3e2c6c12fff6aa42262ef3296c2a1b",
      "tree": "d8721ce185fc9844fc5fb004955f1e824ba195ec",
      "parents": [
        "e121bbbb3bc6088dd7a965cf391cdd646dc6634c",
        "270051119a21ae5f73aa69b16ce2fb53cae534d3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 17 00:31:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 17 00:31:08 2017 +0000"
      },
      "message": "Merge \"Fix the issue \"\\n\" didn\u0027t get interpreted properly.\""
    },
    {
      "commit": "270051119a21ae5f73aa69b16ce2fb53cae534d3",
      "tree": "471266c33cb0d65ea3ba0559612144691b1baf66",
      "parents": [
        "6df46f5d9384ac7a1eb5baf1dea462d366edcd49"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Fri May 12 14:02:13 2017 -0700"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Tue May 16 15:10:29 2017 -0700"
      },
      "message": "Fix the issue \"\\n\" didn\u0027t get interpreted properly.\n\nAdded params to WriteFile rule that allow users to turn on the\nspecific \u0027echo\u0027 options, such as \"enable the interpretation of backslash\nescapes\".\n\nBug: b/38261000\nTest: tested with real data files.\nChange-Id: I5145056b5c2522a3a72b9436055ec95d2fbd94c0\n"
    },
    {
      "commit": "2dc77f7275fd56c36c5a47ae0d00ae0cc3f7b2eb",
      "tree": "79e1b1e820b0a98365e3945d68220e817f7ca93c",
      "parents": [
        "b4a3288be86f9e218c0532288e946994cd3eb881",
        "6600a44072cd7e0cc036931e9ea5dffe612c9656"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 16 17:14:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 17:14:45 2017 +0000"
      },
      "message": "Merge \"soong: add cortex-a73 to microarchitecture list\""
    },
    {
      "commit": "04b830f1339f051f936d08bfc240675c1bdaaebe",
      "tree": "698fb2d60c796a49f8d604fb2e89762b00300719",
      "parents": [
        "bdb02bd3343ded0498a1428c9f0e28d3a4e47a20",
        "6606872bf6d40fd989fb63489c5313e208a1949c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 16 00:25:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 00:25:09 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Ensure environment dependencies are correct\"\"\""
    },
    {
      "commit": "6600a44072cd7e0cc036931e9ea5dffe612c9656",
      "tree": "f1d42b1c56aed2e149c97235d54544592baeb10f",
      "parents": [
        "6df46f5d9384ac7a1eb5baf1dea462d366edcd49"
      ],
      "author": {
        "name": "Jake Weinstein",
        "email": "xboxlover360@gmail.com",
        "time": "Mon May 15 18:27:12 2017 -0400"
      },
      "committer": {
        "name": "Jake Weinstein",
        "email": "xboxlover360@gmail.com",
        "time": "Mon May 15 18:27:12 2017 -0400"
      },
      "message": "soong: add cortex-a73 to microarchitecture list\n\n* Was missed in I3325f60add7f424f8cca53c22919fc481ef5e787\n\nChange-Id: I24d1ef38922cb8f46c9136018cce6a22293ca95e\n"
    },
    {
      "commit": "6606872bf6d40fd989fb63489c5313e208a1949c",
      "tree": "f8f1c505960159ffb37765df37b0a174bf24eb17",
      "parents": [
        "02f3add3a33ce563fb1172923ca0b5321f0edce1"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 08 21:15:59 2017 +0000"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 15 15:22:45 2017 -0700"
      },
      "message": "Revert \"Revert \"Ensure environment dependencies are correct\"\"\n\nThis reverts commit 4068a5db6c60d890e4d49379d600fd34ee94fdec.\n\nNow the Mac xcode-select and xcrun goes through Config.HostSystemTool,\nwhich will grab $PATH through Config.Getenv\n\nTest: m -j (on mac)\nChange-Id: I2632c4fdb2ec961e59944cf02ff165e0fd3c869d\n"
    },
    {
      "commit": "734e3809ad0ae93a62091db6c1713dce59f7b1b8",
      "tree": "ff99ae736481a69cf87240ee16fd7c3e22ab2e99",
      "parents": [
        "02f3add3a33ce563fb1172923ca0b5321f0edce1"
      ],
      "author": {
        "name": "Jeff Gaston",
        "email": "jeffrygaston@google.com",
        "time": "Mon Apr 10 15:47:24 2017 -0700"
      },
      "committer": {
        "name": "Jeff Gaston",
        "email": "jeffrygaston@google.com",
        "time": "Mon May 15 11:31:48 2017 -0700"
      },
      "message": "Clarify paths.go somewhat\n\nBug: 35562758\nTest: make\n\nChange-Id: I4cf05ffdd0962186f490467829e3576b4e269c47\n"
    },
    {
      "commit": "67a5c132c53ce0715f4d169fc26dd537294feaca",
      "tree": "03b682110bcc16e74c5884a561df44c359c0b3ae",
      "parents": [
        "570e18ffaa4cc389f28d42c4ce9d4d213e21be34"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 09 13:45:28 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 10 11:04:16 2017 -0700"
      },
      "message": "Prettify soong ninja build descriptions\n\nDescriptions currently look like:\n[  0% 4/29328] cc out-soong/.intermediates/external/clang/lib/Sema/libclangSema/android_arm_armv7-a-neon_denver_static_core/obj/external/clang/lib/Sema/SemaCodeComplete.o\n\nThis is not very helpful - most of the characters are used to show the\noutput path, which contains useful information like target architecture,\nbut also contains most of the path to the source files twice, and less\nuseful information like the exact variant name used by soong.\nMake the descriptions look like:\n[  0% 3/29329] //external/clang/lib/Sema:libclangSema clang++ SemaTemplateInstantiate.cpp\n\nThis is //path/to/module:modulename tool relative/path/to/source/file\n\nTest: builds, looks pretty\nChange-Id: I3087aa7d4eb1860ef6239d77407b8b35445616d7\n"
    },
    {
      "commit": "5b52959c996c929896d144b5be09ee5ff7e6a7af",
      "tree": "858b6df02bcf7462b2e12e6a8f4dc44048a8af28",
      "parents": [
        "51d4ab2d5e55b02d2a66420074d9317c47f1beee"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 09 13:34:34 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 09 14:32:45 2017 -0700"
      },
      "message": "Use ctx.ModuleBuild for darwin ar\n\nTest: builds\nChange-Id: If90975c8545158012bc6201acadd136363c21260\n"
    },
    {
      "commit": "ceeff0fd394830a574d18bdc028b1dc0cef0300f",
      "tree": "f985ee25828c59ddef21494db7f1a3a17c3ae052",
      "parents": [
        "e6d4cb3652c3702c034b152e546b8fad4422f0cf"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 08 13:43:00 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 08 15:57:05 2017 -0700"
      },
      "message": "Add product_sdk_version.cflags property\n\nlibwilhelm needs PRODUCT_SDK_VERSION\u003d%d.\n\nTest: builds\nChange-Id: Ie3caf9e4fdcb8e241c8743b1675520e93cf20cae\n"
    },
    {
      "commit": "4068a5db6c60d890e4d49379d600fd34ee94fdec",
      "tree": "930d281244a441230b1c78c8f92256e93ea6c7ed",
      "parents": [
        "e78473c33ce9b4a827e814229836d136581ad80e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 08 21:11:55 2017 +0000"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 08 21:11:55 2017 +0000"
      },
      "message": "Revert \"Ensure environment dependencies are correct\"\n\nThis reverts commit e78473c33ce9b4a827e814229836d136581ad80e.\n\nReason for revert: Broke mac builds, which rely on $PATH to find xcrun\n\nChange-Id: I58711b94d472ab828823afaf53394a1aa869f3f5\n"
    },
    {
      "commit": "e78473c33ce9b4a827e814229836d136581ad80e",
      "tree": "8dab6347df037054048e4094541d7703b224837d",
      "parents": [
        "528d5e5d2884309394a8518260682b4b41884051"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri May 05 23:01:54 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri May 05 23:08:16 2017 -0700"
      },
      "message": "Ensure environment dependencies are correct\n\nStore the os Environment on init, then clear it so that it\u0027s only\navailable via a call to Config.Getenv(). That way we\u0027re guaranteed to\nknow about all dependencies.\n\nTest: Add some os.Getenv/Config.Getenv calls and ensure correct behavior\nTest: cs/ shows no os.Getenv / os.LookupEnv / os.ExpandEnv calls that\nwould be affected\nChange-Id: Ic519e0c871f340e752df03b8af0599d47c1d91d8\n"
    },
    {
      "commit": "b2123aa1df97dca26c73ef1f467ee043dc8c08c3",
      "tree": "07b9d7de59efe42d27a6ef7db62db40d9e8917ef",
      "parents": [
        "c602b7d8817fdc0b7fbf1942b87c0f6eecf32aa2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 05 13:37:11 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 05 18:22:30 2017 -0700"
      },
      "message": "Add a variable to disable modules in the PDK\n\nNot plumbed through yet, but will at least prevent us from losing\ntrack of which modules will not build in the PDK.\n\nTest: builds\nChange-Id: I4c1a0e39104b104dc1ff23c4391d5e83b3002d3a\n"
    },
    {
      "commit": "c602b7d8817fdc0b7fbf1942b87c0f6eecf32aa2",
      "tree": "520eadac43ccc17272ca2bac73e907b0b049e8e9",
      "parents": [
        "2a252bef50fc3f0426c55c7524bb193b9afabc4a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 05 13:36:36 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 05 18:22:30 2017 -0700"
      },
      "message": "Allow \"required\" property to vary by arch\n\nRenderscript needs to require different bitcode files based\non architecture.\n\nTest: builds\nChange-Id: Ifffa16c892a7f8e309f1c5652472fba44cd2e786\n"
    },
    {
      "commit": "7e0eaf15b9eec975e45f9e5a27294a0bf0ef9beb",
      "tree": "32b67b132ce43197f4ee78816881d50e1124c1a1",
      "parents": [
        "2030a8cbcb91305b94d843d275bafee611b4a4f5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 05 16:16:24 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 05 18:22:30 2017 -0700"
      },
      "message": "Support %s in product variable properties\n\nSupport using strings as product variable substitutions, and\nadd tests for printfIntoProperty.\n\nTest: varaible_test.go\nChange-Id: I06cfadfb1d3fc81da72fb71323706df20426c8b7\n"
    },
    {
      "commit": "2030a8cbcb91305b94d843d275bafee611b4a4f5",
      "tree": "00e3f487098dc31bda97c892141dd8f6b6b6aec0",
      "parents": [
        "a731969dc1ab76e8c191591b3ab5844504c25740",
        "954364256f5445e8d2270c1cd3f2eca009e6e48f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat May 06 00:15:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 06 00:15:02 2017 +0000"
      },
      "message": "Merge \"Support override_rs_driver product variable\""
    },
    {
      "commit": "db0b9a3cf3c9965929c988f1292f892bfc5deec5",
      "tree": "fe145e5c2d864983915eaf98e1f8e4648e40c355",
      "parents": [
        "7c34c4c8eba1ec0d5b8cf50926e40aee3291604e"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Mon Feb 27 10:12:13 2017 -0800"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Fri May 05 13:27:56 2017 -0700"
      },
      "message": "Supported python build in host side.\n\nThe base module handles all the common functionalites, such as version\ncompatibilty check, version variations split, source file format check,\nsource/data file duplicate check.\n\nThe library/binary module focuses on how to generate binary build actions,\nsuch as setting up stub script, zipping, filling in __init__.py in\nrunfiles dir tree.\n\nBug: b/31676493\nTest: go test under python package\n\nChange-Id: I06608369f350f7195873d459e1c8d1bdb811e77e\n"
    },
    {
      "commit": "954364256f5445e8d2270c1cd3f2eca009e6e48f",
      "tree": "1f4cbb6543e04d3e2bf84084e63ef9f731eb1be4",
      "parents": [
        "37a2aeb95a7a94a17059e85327796fe7418395a4"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 04 13:57:05 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 04 15:44:11 2017 -0700"
      },
      "message": "Support override_rs_driver product variable\n\nTest: builds\nChange-Id: Ifd9bf09bb54418d62f6886b0d8ed84dd493a3162\n"
    },
    {
      "commit": "0e409a2810f360595fe741ab33792e618caec378",
      "tree": "e02566675ece16f2bd7f15ce55ad96d6cdfb78f1",
      "parents": [
        "f34d9d11d4e2a00aca2caa7b3eeeeb294e8aa5a7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 02 10:58:50 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 02 11:17:45 2017 -0700"
      },
      "message": "Add device_uses_hwc2 product variable\n\nTARGET_USES_HWC2 is going away, but propagate it to soong for now\nto unblock converting dependency chains that end in libhwui.\n\nTest: soong tests\nChange-Id: I20f1269caea1b5f5fc39239daa6b2e610bd36eb9\n"
    },
    {
      "commit": "1837b802e17e08a3a5cd0fdaa96c6577f71d3692",
      "tree": "408534fa3f86de650991ec02db0b0d58cc6090bc",
      "parents": [
        "893d816a6d808264c2c490229832ce5b9ca7896d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 26 19:10:34 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 27 12:21:24 2017 -0700"
      },
      "message": "Enable mips32r2dsp[r2]-fp in mega device build\n\nThese seem to build now.\n\nTest: mega device build\nChange-Id: If2514258b0c57d6db484aed4c17a3e1f62109429\n"
    },
    {
      "commit": "893d816a6d808264c2c490229832ce5b9ca7896d",
      "tree": "06856c9255c2eae388c91927d3deef79f90012e4",
      "parents": [
        "ccf01e755eb14b0caab40a58013edf672fde3ab6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 26 17:34:03 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 27 12:21:24 2017 -0700"
      },
      "message": "Turn installation on in mega device build\n\nTurn on installation in the mega device build, it is necessary for the ndk\nsysroot installation.  Partially fixes mega device builds, they also need\nto run without -w dupbuild\u003derr on the ninja command line because multiple\nvariants of the same architecture try to install to the same ndk sysroot.\n\nTest: mega device build\nChange-Id: I982d77f9ff19f5bc29fc9fe54a0df8db3579c3e3\n"
    },
    {
      "commit": "0906f17f7e8bf0e76cb8511669e8fc8d5f6f3794",
      "tree": "ce3aadcbb04b8690f9bb10161ce7c93180009b91",
      "parents": [
        "96247cef212e81199ea57b50f4e5ec4fdac5808a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 26 14:00:43 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 27 12:21:24 2017 -0700"
      },
      "message": "Add arm neon and mips dspr2 arch features\n\nCurrent modules must use armv7_a_neon to specify source files that\ncompile only with neon.  If a future arch variant also supports neon,\nall these modules will fall back to non-neon.  Support a neon arch\nfeature that modules can use instead.  Similarly, support dspr2 for\nmips.\n\narm_device.go was also mixing armv7-a-neon with armv7_a_neon.  Use\narmv7-a-neon consistently, and fix the - to _ when creating the\nproperty structs.\n\nTest: m -j checkbuild\nChange-Id: I24d3764280ab3bcbb9a73c0934edc9b99fc7f6a0\n"
    },
    {
      "commit": "87d8b56eda3c158cc7e4f496741c7e9de7383cc8",
      "tree": "f35c5d40ba19a7e5a1569ccc34edffd1cc6cae89",
      "parents": [
        "e28f4e2acfcca00766080d294daa75ae2efb5853"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Apr 25 10:01:55 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Apr 25 13:26:40 2017 -0700"
      },
      "message": "Make soong mm/ targets recursive\n\nPut mm/* targets into their parent directory\u0027s mm/ target.\n\nTest: examine out/soong/build.ninja\nChange-Id: Iacad3db8c904bb4d90b36e125bb359a7fb90368b\n"
    },
    {
      "commit": "9ce45296145df6b17f94cabe497aa9928b6b3c87",
      "tree": "c1eb5aec494ae924fe2193b0d63e50540dea24f8",
      "parents": [
        "f7d5dd7b3519f61780acfcc8149cb434f8c8386b",
        "c32c3ebfb9b1f1150d20f86cf92aa92779da696d"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Thu Apr 20 01:39:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 20 01:39:56 2017 +0000"
      },
      "message": "Merge \"Change the global CFI flag to default to enabled.\""
    },
    {
      "commit": "8596bab0b04445babc141e5558dacdeee0419e93",
      "tree": "f895868fddbb2476c2c4e8f26a19d28f95da9e99",
      "parents": [
        "5721284104e864932e97b7f9bdeef5a8fb0ee541",
        "2439eb7761332e90669573a67c2c072855bf378d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 19 19:50:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 19:50:11 2017 +0000"
      },
      "message": "Merge \"Added duplicates checking when extracting source deps.\""
    },
    {
      "commit": "3e231fd8bd61f2eb77e76e06a1877e2904564358",
      "tree": "9eeb71dc0e91b1fa2d198ed8504a843f6245b5db",
      "parents": [
        "c43ae770c56808c802916e6346576f3f0c047194"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Feb 08 13:45:53 2017 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Apr 14 19:48:10 2017 -0700"
      },
      "message": "Add header-abi-checker for Vndk abi checks.\n\nheader-abi-dumper: dumps abi exported by source files for Vndk.\nheader-abi-linker: links abi dumps produced by header-abi-dumper.\nheader-abi-diff: compares linked dumps.\n\nTest: mm -j64 showcommands \u003e make_log in bionic/libc.\n      This produced linked dumps in out/soong/.intermediates.\n      Copied these dumps to\n      prebuilts/abi-dumps/ndk/current/arm64/source-based/.\n      Changed the abi and re-ran mm -j64 showcommands \u003e make_log\n      confirmed that the build reported compatibility breakge without\n      actually failing (advisory mode).\n\nChange-Id: Iccad6908fe68a80f47230751671d156893b96ead\n"
    },
    {
      "commit": "c32c3ebfb9b1f1150d20f86cf92aa92779da696d",
      "tree": "7a5a3f8493b2a7bb64d4e6ccfaaa77c73582d697",
      "parents": [
        "d4025826c314ddefa221c5fc2df548bdd092ef7f"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Tue Jan 24 14:20:54 2017 -0800"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Thu Apr 13 17:17:28 2017 -0700"
      },
      "message": "Change the global CFI flag to default to enabled.\n\nThis CL changes the ENABLE_CFI flag to default to enabled. Setting it\nto false will override local settings to enable CFI.\n\nBug: 30227045\nBug: 22033465\nTest: m -j40 works and device boots\nTest: cfi is honored unless the global flag is set.\nChange-Id: Ie3285c5eac60c8f6012c6b6c23be149a8787af0c\n"
    },
    {
      "commit": "4247f0d0ed57d435862d90d69de922d477ceed3b",
      "tree": "86e740990fa4443913641c44df38287213a8a93d",
      "parents": [
        "1b594092566cecca885be55dd663d633d7af0ec5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 13 16:56:14 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 13 16:56:14 2017 -0700"
      },
      "message": "Enable arm_on_x86 mode when arm is a secondary arch\n\nEnable arm_on_x86 mode whenever compiling for x86 on the device,\nand either arm is listed as an ABI on the x86 arch, or arm exists\nas a target arch.\n\nBug: 35286489\nTest: examine bcc cflags\nChange-Id: Iebd0e7b95f584d25773a60474c27425cac7a578e\n"
    },
    {
      "commit": "2439eb7761332e90669573a67c2c072855bf378d",
      "tree": "5cce78dc88c7d8e2c829b0c16af856f8d9ff7609",
      "parents": [
        "2ce95652a867ca3613e54a28b4c3b6ad6278b8aa"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Mon Apr 10 11:27:50 2017 -0700"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Mon Apr 10 12:16:30 2017 -0700"
      },
      "message": "Added duplicates checking when extracting source deps.\n\nAdded this functionality since Blueprint layer won\u0027t check deps\nduplicates.\n\nTest: Manual m -j.\nChange-Id: I28d5f558a211609ecd0b4c2223be897fc1baae17\n"
    },
    {
      "commit": "aa118f95a675a788e9a9554b9ab220d4e41749fd",
      "tree": "b447c97d17e7a4a46dba986fb033fc5fd956581f",
      "parents": [
        "b916b80bf301545595a8263776180c1db90a9ccc"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Apr 06 12:49:58 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Apr 07 14:59:18 2017 -0700"
      },
      "message": "Implement vendor as a synonym of proprietary\n\nThe vendor image will have more than just proprietary modules in it\nunder Treble, so let\u0027s stop marking open source code as proprietary just\nto move it to vendor.\n\nBug: 36452052\nBug: 37134596\nTest: compare build.ninja before/after, no changes.\nTest: Set vendor: true, ensure it works.\nChange-Id: I44b0ec7007d0e311bdcbd44b238b1ef2d05cc6ff\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": "ac01ff5447518986f778be5b5c5a7bb0bf354e9c",
      "tree": "f769b5c990094fe51e4c0695a270ccedc2a9b068",
      "parents": [
        "ae4fc1840653fd5598f81d33ac33a00d09b94607"
      ],
      "author": {
        "name": "Alex Naidis",
        "email": "alex.naidis@linux.com",
        "time": "Tue Aug 30 15:56:33 2016 +0200"
      },
      "committer": {
        "name": "Alex Naidis",
        "email": "alex.naidis@linux.com",
        "time": "Tue Apr 04 19:09:43 2017 +0000"
      },
      "message": "Add support for an armv8 variant for Kryo\n\n* Use mcpu\u003dcortex-a57, since it is the closest to Kryo.\n* Clang doesn\u0027t support Kryo as a target yet.\n\nBug: 36728278\n\nTest: Built and booted a sailfish using Kryo.\n\nChange-Id: Ic0c9588d86fba41896e50e3f0cf0d2b310ffee93\nSigned-off-by: Alex Naidis \u003calex.naidis@linux.com\u003e\n"
    },
    {
      "commit": "ae4fc1840653fd5598f81d33ac33a00d09b94607",
      "tree": "226f3e23e36c182940a7280e06d5b0dd510ccbaa",
      "parents": [
        "1889d015c509d1446a421eeeb001e3f7902f49ef"
      ],
      "author": {
        "name": "Alex Naidis",
        "email": "alex.naidis@linux.com",
        "time": "Sat Aug 20 00:14:56 2016 +0200"
      },
      "committer": {
        "name": "Alex Naidis",
        "email": "alex.naidis@linux.com",
        "time": "Tue Apr 04 19:09:36 2017 +0000"
      },
      "message": "Add support for an armv7 variant for Kryo\n\n* Kryo is closer to Krait than to cortex-a53, so choose Krait defaults.\n\n* Made together with Jake Weinstein (xboxfanj)\n\nBug: 36728278\n\nTest: Built and boot sailfish set up as kryo.\n\nChange-Id: I04fa0a1dca6f97ae19202d28ee3ce8a59bf169b5\nSigned-off-by: Alex Naidis \u003calex.naidis@linux.com\u003e\n"
    },
    {
      "commit": "30c9d6e771ef76c4f809b0674ee9a3edd2aa88ab",
      "tree": "b04c79d90fdb9ffd4cdd030213ab1b01daf918c9",
      "parents": [
        "94e17470513150682252ea835ecf1ab01950ef54"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Mar 28 14:54:55 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 31 12:27:42 2017 -0700"
      },
      "message": "Generate file to map codenames to API levels.\n\nThe NDK stub library generator needs to know what unreleased API\nlevels exist and what the ordering is between them. This singleton\nwill later be expanded to generate api-level.h to cut down on\nduplication.\n\nTest: make out/soong/api_levels.json \u0026\u0026 cat out/soong/api_levels.json\nBug: None\nChange-Id: I53126dd2cacb67c331c44f7d7c77c98b176b93cd\n"
    },
    {
      "commit": "1dd88392869fc72463553b65537e5f8d8e33c118",
      "tree": "131df99770f6b5de62a3b079300f85f1c09b1c6b",
      "parents": [
        "c31994825a4846382147931022b2fcd2654e16f6"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Mar 29 22:00:18 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 31 01:03:56 2017 +0000"
      },
      "message": "Refactor sanitized library on-disk layout - Soong.\n\nThis CL moves the location of ASAN-ified libraries on disk in the\nfollowing manner:\n/data/lib* --\u003e /data/asan/system/lib*\n/data/vendor/* --\u003e /data/asan/vendor/*\n\nThere are a couple of advantages to this, including better isolation\nfrom other components, and more transparent linker renaming and\nSELinux policies.\n\nBug: 36574794\nBug: 36674745\nTest: m -j40 \u0026\u0026 SANITIZE_TARGET\u003d\"address\" m -j40 and the device\nboots. All sanitized libraries are correctly located in /data/asan/*.\n\nChange-Id: I06bf459260ec451d4495a02562f640ad622f34c2\n"
    },
    {
      "commit": "280802c102187b16e4677f11d48dcbee7c513ae5",
      "tree": "7954ee7bd85f22f50647cde5d8a6ae1e22902eaf",
      "parents": [
        "8d4e936630c6b7ecfd8d338447b4f09c9242ba95"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Wed Mar 29 16:24:19 2017 -0700"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Wed Mar 29 17:43:47 2017 -0700"
      },
      "message": "Fixed the issue that phony module was broken.\n\nPhony module was broken since it reached the code line to try to\ninvoke some specific arch functions which caused the runtime panic\nerror.\n\nBug: 36739664\nTest: mm -j32 -k\nphony {\n     name: \"shell_and_utilities\",\n     required: [\n         \"grep\",\n         \"gzip\",\n         \"mkshrc\",\n         \"reboot\",\n         \"sh\",\n         \"toolbox\",\n         \"toybox\",\n     ],\n}\nin system/core/shell_and_utilities/Android.bp\n\nChange-Id: Idf7da17d431aae5f0c56b08f5e5eef14ae4eef50\n"
    },
    {
      "commit": "11b261472a97399a5fda9d565375637aae7639f4",
      "tree": "2de6f556bddff8f9b0047adc1b09179e8dda6bc6",
      "parents": [
        "9e3f627ea73b3982d8be5ad8b402b4264aab0b18"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sun Mar 19 18:30:37 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 29 04:33:25 2017 +0000"
      },
      "message": "Rework vndk detection\n\nInstead of having a module define `use_vndk: true`, assume that we\u0027re\nbuilding with the VNDK if we\u0027re installed on the vendor partition, and\nBOARD_VNDK_VERSION\u003d\u003dcurrent. This now matches our behavior in Make.\n\nOnce BOARD_VNDK_VERSION!\u003dcurrent, we\u0027ll need to disable modules that\nneed to otherwise compile against the VNDK, since we can only compile\nagainst the current VNDK.\n\nTest: build.ninja for aosp_arm is the same before/after\nTest: Ensure there are no boards that set BOARD_VNDK_VERSION\nChange-Id: If937fa7bdb119648137af52daebadf486163484b\n"
    },
    {
      "commit": "2b4908b5780831bfbf366e77f238363382750706",
      "tree": "d96053c1edaa4b50de36698ecdd13cc807c29a8b",
      "parents": [
        "43dd94cf663efa4e86557cd4d73a47f0efd22765",
        "6e5dfaaeb133df47f8e2501dbbcaa52a6c8fabf4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 21 12:02:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 21 12:02:28 2017 +0000"
      },
      "message": "Merge \"MIPS: Adjust LibartImgDeviceBaseAddress() for CC GC.\""
    },
    {
      "commit": "6e5dfaaeb133df47f8e2501dbbcaa52a6c8fabf4",
      "tree": "5eb573528df7e95543c9b66d8f0d8f5c01459129",
      "parents": [
        "3250879667050a67f1e0ead62dba23f08a059be4"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Sat Mar 18 18:23:31 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Mar 20 16:58:43 2017 -0700"
      },
      "message": "MIPS: Adjust LibartImgDeviceBaseAddress() for CC GC.\n\nThe concurrent copying GC allocates large contiguous\nspace at low addresses. This moves the image(s) out\nof the way to higher addresses.\n\nTest: booted MIPS32R2 in QEMU\nTest: booted MIPS64 (with 2nd arch MIPS32R2) in QEMU\n\nChange-Id: I1c54e6142844ab1ad7820765ae313650e9ab8875\n"
    },
    {
      "commit": "43dd94cf663efa4e86557cd4d73a47f0efd22765",
      "tree": "ed3992b6141520c89019567e4bdfeb53a8f6890a",
      "parents": [
        "ed1665dc8a115b8a8d265964cabce2dae378537e",
        "55708f3fb39f48c4f9cd3edfb860f9aac9703816"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 20 22:34:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 20 22:34:55 2017 +0000"
      },
      "message": "Merge \"Support owner property\""
    },
    {
      "commit": "e3918170ae20405268646628da43383309faa6c6",
      "tree": "17775372f75065a3e7189109cb9551ddfe84d62e",
      "parents": [
        "3250879667050a67f1e0ead62dba23f08a059be4",
        "de89fb870706a59df36586eba1c58ccc7c1a1bae"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 20 20:51:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 20 20:51:45 2017 +0000"
      },
      "message": "Merge changes from topic \u0027prebuilts\u0027\n\n* changes:\n  Add support for binary and static library and prebuilts\n  Rename to cc_prebuilts_library_shared\n  Fix installing prebuilts with no source module\n"
    },
    {
      "commit": "55708f3fb39f48c4f9cd3edfb860f9aac9703816",
      "tree": "941347938f236bc39a3479d23d1ff9861ffe98b3",
      "parents": [
        "de89fb870706a59df36586eba1c58ccc7c1a1bae"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 20 13:23:34 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 20 13:33:45 2017 -0700"
      },
      "message": "Support owner property\n\nSupport owner properties in Android.bp files and propagate the value\nto make using LOCAL_MODULE_OWNER.\n\nBug: 36413696\nTest: builds\nChange-Id: Iac1cf7f2a14c9e3e6d85d6e09d5adb08a7078d00\n"
    },
    {
      "commit": "3250879667050a67f1e0ead62dba23f08a059be4",
      "tree": "56fd3b42ee2d4182092d0b4926d38783a22735e4",
      "parents": [
        "6bdcc8ddd6c1803f33f0917bc19880fff2bfa98d",
        "615609854fc1531cedd8a52874d0fad57851b850"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 17 22:45:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 17 22:45:31 2017 +0000"
      },
      "message": "Merge \"Revert \"install *.so in different paths for their types\"\""
    },
    {
      "commit": "c3e7fa65b4cabb24b98a06b3de42e5a2fd9ba509",
      "tree": "dd576d838d19773ee393e83b087751dbc3ccbda1",
      "parents": [
        "6bdcc8ddd6c1803f33f0917bc19880fff2bfa98d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 17 13:14:32 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 17 14:06:25 2017 -0700"
      },
      "message": "Fix installing prebuilts with no source module\n\nPrebuilts that were not overriding a source module would never\nget UsePrebuilt set, which would cause SkipInstall() to be called,\nand prevent the module from being exported to make.\n\nTest: prebuilt_test.go\nChange-Id: Ib09300efff26f09245331e9919ae2db82b0c3625\n"
    },
    {
      "commit": "6bdcc8ddd6c1803f33f0917bc19880fff2bfa98d",
      "tree": "e6a8001d3687fb9326bd03dfb06e5a522fe7114c",
      "parents": [
        "054350e8f129340d32a395c5bd8160f858979efb",
        "2502e12ba9e722060f05231967fff8540c12254f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 17 18:46:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 17 18:46:51 2017 +0000"
      },
      "message": "Merge \"Fixed the issue of dependencyTag in prebuilt.go\""
    },
    {
      "commit": "054350e8f129340d32a395c5bd8160f858979efb",
      "tree": "405225f19f3714a9b8d195800b4773e75ed62f84",
      "parents": [
        "33edec5651391246f1a83bb660147d8290b14a1f",
        "795c377e1450ad8e88deaaa5365ff1cc90c9f922"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 17 05:05:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 17 05:05:03 2017 +0000"
      },
      "message": "Merge \"Use a minimal set of mutators, module types, and singletons for tests\""
    },
    {
      "commit": "615609854fc1531cedd8a52874d0fad57851b850",
      "tree": "17bc565f536cccd3c3e6b834146fcb93e7a3e5e1",
      "parents": [
        "33edec5651391246f1a83bb660147d8290b14a1f"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Mar 16 19:48:32 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Mar 16 19:48:32 2017 -0700"
      },
      "message": "Revert \"install *.so in different paths for their types\"\n\nThis reverts commit 4c48f724e1b339128447ab1dafd656a9557557f5. It\u0027s\ncausing test failures, warnings and complaints, so backing it out and\nwe\u0027ll resolve those before putting it back in.\n\nBug: 33681361\nTest: m -j\n"
    },
    {
      "commit": "795c377e1450ad8e88deaaa5365ff1cc90c9f922",
      "tree": "08c3c008b105b615ee3bc03f0ccb1c7af1b7dc4f",
      "parents": [
        "4c48f724e1b339128447ab1dafd656a9557557f5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 16 16:50:10 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 16 16:50:10 2017 -0700"
      },
      "message": "Use a minimal set of mutators, module types, and singletons for tests\n\nCalling android.NewContext() in tests results in a context that\ncontains all the mutators, module types, and singletons, which\ncauses unexpected interactions in unit tests.  Create an empty\ncontext instead, and add in only the necessary mutators, module\ntypes, and singletons.\n\nBug: 36366816\nTest: soong tests\nChange-Id: Ic61262c37e3436b3ad4ccaca18b737021c304be6\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": "0e2d97b4b1d613ddd91f16fea9304c5f5d5d2517",
      "tree": "ed863b28c53cebdc7d841b9e960bfa1fc7346574",
      "parents": [
        "7752bca25db99acf108ef469627b84cfd917d88e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Nov 28 17:50:06 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 15 20:20:22 2017 +0000"
      },
      "message": "Stop making the ndk headers host-specific\n\nThis breaks when I enable a second host configuration for host bionic.\n\nMake non-arch modules !Device and !Host by adding \"Generic\" as the zero\nvalue. Make the SkipDeviceInstall config only apply to Device modules.\n\nTest: out/soong/build.ninja is identical expect for comments\nChange-Id: I6e2bd3814a9968554d3901a508d822d5c79d08a0\n"
    },
    {
      "commit": "4c48f724e1b339128447ab1dafd656a9557557f5",
      "tree": "fb919348ccdce51fade25cc5feb029f881cec22f",
      "parents": [
        "300151ba19bfa79a68e25223f8864d34cf5039f6"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 20 08:57:02 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Mar 14 09:13:44 2017 +0900"
      },
      "message": "install *.so in different paths for their types\n\nShared libraries are now installed to different directories depending on\ntheir types.\n\n* NDK libraries: /system/lib/ndk\n* VNDK libraries: /system/lib/vndk\n* VNDK-ext libraries: /system/lib/vndk-ext\n* Framework-only libraries: /system/lib\n* Vendor-only libraries: /vendor/lib\n* Same-process HALs: /vendor/lib/sameprocess\n\nIn addition, a new module type vndk_ext_library is added. It is almost\nidentical to cc_shared_library but it introduces another attribute\n\u0027extends\u0027. This is use to reference the vndk library that this vndk-ext\nlibrary is extending.\n\nFor example, in order to extend a vndk library libFoo:\n\ncc_library {\n  name: \"libFoo\",\n  srcs: [...]\n}\n---------------------\nvndk_ext_library {\n  name: \"libFoo-extended\",\n  srcs: [...]\n  extends: \"libFoo\"\n}\n\nThen, libFoo will be installed as /system/lib/vndk/libFoo.so and\nlibFoo-extended will be installed as /system/lib/vndk-ext/libFoo.so.\nNote that file name of the latter is libFoo.so, not libFoo-extended.so:\nfile name of an extending module is automatically set to that of the\nextended module.\n\nBug: 33681361\nTest: build \u0026 run. Libraries must be in the correct directories.\nChange-Id: Ia1eb3940605d582a252c78da0f3a5b36fdab062b\n"
    },
    {
      "commit": "2502e12ba9e722060f05231967fff8540c12254f",
      "tree": "e9a55bab163d944894933232c44fa90edf7a40e9",
      "parents": [
        "0c3919e9962ce6d98cd91f10ea8be944dd0b27a0"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Thu Mar 09 18:43:01 2017 -0800"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Thu Mar 09 18:50:31 2017 -0800"
      },
      "message": "Fixed the issue of dependencyTag in prebuilt.go\n\nDirectly using blueprint.BaseDependencyTag might cause issues because\nif other modules also use blueprint.BaseDependencyTag, the\ndifferent type of modules will be mixed when fetched based on Tag.\n\nTest: m -j out/soong/build.ninja\nChange-Id: I290ca2eea063e5daa4f572985b105b958fa1d0fd\n"
    },
    {
      "commit": "469a18aae2f4924d4bfd0e76639dc43c55467443",
      "tree": "9971d20b82b4bf7af64d2bc763b1a8bc8a17568a",
      "parents": [
        "4c46af8943e81bab2e8de92d8e9b5a0e7e8d79ea"
      ],
      "author": {
        "name": "Ryan Campbell",
        "email": "ryanjcampbell@google.com",
        "time": "Mon Feb 27 09:01:54 2017 -0800"
      },
      "committer": {
        "name": "Ryan Campbell",
        "email": "ryanjcampbell@google.com",
        "time": "Mon Feb 27 11:08:34 2017 -0800"
      },
      "message": "Support path exclusion for native coverage.\n\nSpecify list of paths to exclude from coverage instrumentation.\n\nTest: make NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003dhardware/interfaces\nCOVERAGE_EXCLUDE_PATHS\u003dhardware/interfaces/graphics\nBug: 35769817\n\nChange-Id: I3bf10e5e5697d140d6cff73d000768b00aa28ca4\n"
    },
    {
      "commit": "d2906e5debf9325549523170b3a9680126ea6ef4",
      "tree": "2d1d64cc22299334c461fbbf6e186251e3c3e984",
      "parents": [
        "fd96d2421a5057621c4bb0c1f0ea6808de555dca"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 23 09:44:22 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 23 09:44:22 2017 -0800"
      },
      "message": "Remove cpusets and schedboost product variables\n\nThey are no longer needed, remove them.\n\nBug: 35129304\nBug: 35128496\nTest: builds\nChange-Id: Ib144ddc2db40bc4f38a4e06ca40eabe85814e03c\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": "ee8e7a7a2c22fbbe9228393f71c6ab2110bd2aa0",
      "tree": "3f648ba8d277da5ea9b8d1c1fb7229372b69e491",
      "parents": [
        "62944779e21c4488e99d9a8a91326129acb77eeb"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Feb 09 14:26:18 2017 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Feb 09 14:36:09 2017 -0800"
      },
      "message": "Removed Bluetooth build  variables from the soong build parser\n\n* Removed BLUETOOTH_HCI_USE_MCT\n* Removed BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED\n\nBug: 34951912, 35203653\nTest: Code compilation, no visible user effects\nChange-Id: I89af075a334f2ec7b2a3046a4aaa5bcc19d454e0\n"
    },
    {
      "commit": "d61f1f455917ed6affe9361c0f89ddfcbfa50d02",
      "tree": "a2739ccbe850c8383eb4f8b9b261604a49e11286",
      "parents": [
        "6d34b308ff8c87425163c3dbc864aa388f18d468"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue Jan 10 16:21:22 2017 -0800"
      },
      "committer": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue Feb 07 09:43:02 2017 -0800"
      },
      "message": "Add support for CMakefile generation\n\nTest: Manually generated CMakeLists.txt for gui/ui/aapt2.\n\nChange-Id: I7dedc300c1e50b8e39bc58091b650c0bbe2c62da\n"
    },
    {
      "commit": "6d34b308ff8c87425163c3dbc864aa388f18d468",
      "tree": "f235ede9d0d67e942fa57b1f377c762bcb5ba103",
      "parents": [
        "ae853ae0c018400070e73464e7a952acf556c68e"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Sat Feb 04 17:47:46 2017 -0800"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Mon Feb 06 22:23:19 2017 -0800"
      },
      "message": "Added phony module type for soong.\n\nThe \"required\" field within \"phony\" module in .bp file has to be\nnon-empty. And \"phony\" module doesn\u0027t contain any \"src\" files.\nBug: b/32981153\nTest: make -j out/soong/build.ninja\n\nChange-Id: Iaa2009467c44702572b97ca9cbd02c1d368c8d83\n"
    },
    {
      "commit": "c0d58b4a0fa6ecd8cfc5e2cb15eabca29b9742a6",
      "tree": "1902fdb860082e6bae95e4f06b49b2a52e950b6a",
      "parents": [
        "c821042c3f9f719f0de303d337d254345543b885"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 06 15:40:41 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 06 15:45:16 2017 -0800"
      },
      "message": "Fix envDeps initialization and locking\n\nIf Config.GetEnv was called when envDeps was uninitialized (for\nexample in a test) it would panic, which if recovered (for example in\na test) would cause it to continue without unlocking the mutex, and\ncould later deadlock.  Fix the initialization by initializing in\nGetEnv if necessary, and use defer to avoid holding the mutex after\na panic.\n\nTest: soong tests\nChange-Id: I453522faaf47ff6fbc4702345cfe177100bdc522\n"
    },
    {
      "commit": "faeb7aa1351df6f1d7eae990d0e3d4c68f5c4abf",
      "tree": "fe410a9a1925ecc8b9492864555cde041d7d9e8d",
      "parents": [
        "294941bee9566e76047a230acea451cbc188210b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 01 14:12:44 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 02 16:23:30 2017 -0800"
      },
      "message": "Support data properties for test binaries\n\nAllow tests to specify a data property that lists files or filegroup\nmodules that will be packaged alongside the test.  Also add a path\nproperty to filegroup modules to allow shifting the path of the\npackaged files, and add ExpandSourcesSubDir to expand the filegroup\nsources while including a shifted relative path in the Paths objects.\n\nTest: soong tests, manually adding data to a module\nChange-Id: I52a48942660e12755d313ef13279313361b4fc35\n"
    },
    {
      "commit": "294941bee9566e76047a230acea451cbc188210b",
      "tree": "1d6eb31f48afbd250050f134620441b0242580cb",
      "parents": [
        "b9eeb1d79a239004ee294e3333509e770ce8b9ea"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 01 14:10:36 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 02 16:19:56 2017 -0800"
      },
      "message": "Update soong to use pathtools.FileSystem\n\nUpdate soong to follow changes in\nhttps://github.com/google/blueprint/pull/141\n\nTest: soong tests\nChange-Id: I49a9b83cac7590dc75b26b31136b8707c188bc4a\n"
    },
    {
      "commit": "b9eeb1d79a239004ee294e3333509e770ce8b9ea",
      "tree": "4bcfe6b8e142ad214af94bbae4dbaeb5150f28ca",
      "parents": [
        "7fc17dbfcec0f21f11ee04503ed72bcd1c181866"
      ],
      "author": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Thu Feb 02 10:46:07 2017 -0800"
      },
      "committer": {
        "name": "Nan Zhang",
        "email": "nanzhang@google.com",
        "time": "Thu Feb 02 10:59:16 2017 -0800"
      },
      "message": "Fixed then comments to describe how to use android.ModuleBase object.\n\nSince we have changed the package name from \u0027common\u0027 to \u0027android\u0027\n\nTest: Manual.\nChange-Id: Ic9649f3216609b36fa31db096509de42f83e9ba4\n"
    },
    {
      "commit": "7fc17dbfcec0f21f11ee04503ed72bcd1c181866",
      "tree": "5a2c95f013244fc52ba38e8a1fc9f0d3b0fd22b5",
      "parents": [
        "e25bc9ba83c5d00a95aa06bda668e731f740a656"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 01 14:07:55 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 01 15:14:31 2017 -0800"
      },
      "message": "Remove extra basePath from ModuleSrcPath\n\nModuleSrcPath contains an embedded basePath as well as a\nSoucePath that contains another basePath.  Remove the embedded\nbasePath, and make the SourcePath embedded.\n\nTest: no change to build.ninja\nChange-Id: I3cdf3477eca41ed35fac08a892aab22cbcdb2224\n"
    },
    {
      "commit": "1b017a76e1d84626c0bd881625149dcd66174fe0",
      "tree": "ef7a4a201e5f782d2415bf7394288e2a7db61c85",
      "parents": [
        "1a01e83725cabcef13941d3cc2216a32bd9ce851"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Thu Jan 19 13:54:55 2017 -0800"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Thu Jan 19 14:40:34 2017 -0800"
      },
      "message": "Hide CFI behind a global flag.\n\nThis CL ensures that locally enabling CFI in a .bp file is not honored\nunless it is enabled globally using ENABLE_CFI\u003dtrue first, effectively\nhiding it behind a flag.\n\nBug: 30227045\nBug: 22033465\nTest: m -j40 works and device boots\nTest: cfi is correctly honored only when the global flag is set.\nChange-Id: Iccc6e4bf5e7828ab8ce6056f3e40922712faa0d8\n"
    },
    {
      "commit": "8cc714313cdcba791e89a5eb8ae164363d75c8e4",
      "tree": "af6e17917cf0ce4b97e0f94cfe104fb2acd30721",
      "parents": [
        "9b165dd015f00048bfc01622434e1505a2dc2d52"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Dec 08 15:45:07 2016 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Wed Jan 11 16:07:44 2017 -0800"
      },
      "message": "Add Android.bp variables to the soong build parser\n\n* BtConfigIncludeDir: BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR\n* BtHcilpIncluded: BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED\n* BtHciUseMct: BLUETOOTH_HCI_USE_MCT\n\nBug: 32958753\nTest: Code compilation, no user visible effects\n\nChange-Id: I0dc53172ee823e4e0fa69749e1297713796538cf\n"
    },
    {
      "commit": "5c8b8c6d6ee4a4611bfb0492104eef287bcc09d8",
      "tree": "d978dd1bfa3258ff448c039bf80f052249e24cfb",
      "parents": [
        "6e2557fa8884bc61eb930ab28bbfcc27b8f38339",
        "080163317321dc08a637da10e1339c10590c33cd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 20 20:01:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 20:01:38 2016 +0000"
      },
      "message": "Merge \"Do not duplicate arch properties when cpu variant \u003d\u003d arch variant\""
    },
    {
      "commit": "080163317321dc08a637da10e1339c10590c33cd",
      "tree": "b2fb54be4f28456a16790e90c1d9d112775a6e2a",
      "parents": [
        "35e39720686e47fb936d3b7b671d478132f71f81"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 20 09:53:14 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 20 09:53:14 2016 -0800"
      },
      "message": "Do not duplicate arch properties when cpu variant \u003d\u003d arch variant\n\nbuild/make/board/generic_mips/BoardConfig.mk sets\nTARGET_CPU_VARIANT :\u003d TARGET_ARCH_VARIANT, which can cause the same\nvariant-specific properties to be applied twice.\n\nTest: lunch aosp_mips-eng \u0026\u0026 mmma -j external/skia TARGET_ARCH_VARIANT\u003dmips32r2dspr2-fp\nChange-Id: Ie4abe804f8ce898bf89664ae749b9bc8ac3e649f\n"
    },
    {
      "commit": "e2a106353f47421b602494b00a8803779a4e325d",
      "tree": "e85fd8280c7226b626e2dac04a1e5f68304742e5",
      "parents": [
        "068e0feace82595d98f08fadc855ed5fab6ea43e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 19 13:44:41 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 19 15:31:32 2016 -0800"
      },
      "message": "Add ArtUseReadBarrier to ProductVariables.\n\nBug: 33492005\nTest: top-level angler build.\nChange-Id: Ib04284bac923a143038655d495bcbacaabf61440\n"
    }
  ],
  "next": "068e0feace82595d98f08fadc855ed5fab6ea43e"
}
