)]}'
{
  "log": [
    {
      "commit": "698f913f643f2a6fc6e2703611cd1cd5831b21bf",
      "tree": "935afe470a4f5998d3adbf612036a57fc873b1e6",
      "parents": [
        "efbc08e0cedfdfe934a0fb7875beb77e3c7b72fa"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Sep 03 20:40:28 2024 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Sep 03 20:40:28 2024 +0000"
      },
      "message": "Remove NDK exports\n\nBase headers should come from sysroot.\n\nBug: N/A\nTest: build\nChange-Id: Ifd6d6353851a16c2744af241c6092657c595223c\n"
    },
    {
      "commit": "9b4bc28b434863fa1d79350e94faa29e3c705142",
      "tree": "de17e173ec2eb6a4f889ad5ee2d93d0e721018ad",
      "parents": [
        "0dfbdc5bdb04df609aa8a19f03146bdc0c08e031"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Thu Sep 08 21:59:20 2022 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Thu Sep 08 21:59:20 2022 +0000"
      },
      "message": "Declare the headers of the ndk_library\n\nThis creates a dependency edge between the ndk_library and its headers,\nwhich should be a no-op in regular Soong builds. This dependency edge\nwill be used in the Multi-tree project to export the relevant .h files into a well\nknown location\n\nTest: m nothing\nBug: 239044713\nChange-Id: I374b1529456c4c71ac419b4684f2fd215c68e791\n"
    },
    {
      "commit": "d97e52d888567fc836333579fc9c8813bde01702",
      "tree": "9ff1d2700fe86b605dcfaf49c76c6120e1b79aea",
      "parents": [
        "86cc51ae603185e50d776c8d244fc482b048f2b5"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sun Jul 17 17:43:24 2022 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sun Jul 17 17:43:24 2022 +0900"
      },
      "message": "Replace #apex with #systemapi\n\nCurrently, for an API symbol to be accessible to APEXes, it needs to be\nmarked as either # systemapi or # apex. It was originally just # apex,\nbut we added # systemapi to clearly identify the origin of the APIs.\n\nThe intended use is\n\n* #apex is for APEX-visible symbols that are defined in an APEX\n* #systemapi is for APEX-visible symbols that are defined in the\n  platform (the non-updatable part)\n\nThis intention is documented build/soong/docs/map_files.md, but isn\u0027t\nenforced at all.\n\nWith b/239274367, this is now enforced and therefore the #apex tags in\nthe platform library are replaced with `#systemapi`\n\nThis change does not alter any functionality.\n\nBug: 239274367\nTest: m\nChange-Id: Ibdb9122c9969749e055404078bc2280edaa7346d\n"
    },
    {
      "commit": "9e6842258a9f962e1e06c97bc965c0bb697be775",
      "tree": "73adb303f2baf3e38d3f38e3519ee1c90995a81b",
      "parents": [
        "c5c532fc312c9e5a2f2b8fecbfc535af4ffcd245"
      ],
      "author": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Wed Jan 05 16:23:37 2022 -0800"
      },
      "committer": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Wed Jan 05 16:59:03 2022 -0800"
      },
      "message": "libsync: remove hridya@ from OWNERS file\n\nTest: N/A\nBug: N/A\nChange-Id: I3f816efad4520507cacc635457d363d65bc7942e\n"
    },
    {
      "commit": "176ec1b8051d0a38f6ab1595f655ac4adbc6b58b",
      "tree": "fab4009e90ffebee2a9d6dbe5e72dff0cc787b6c",
      "parents": [
        "d684952fa7ae29feb9fde33363d20d746137dedb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 21 19:13:41 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 21 19:13:41 2021 -0700"
      },
      "message": "Replace llndk_library with llndk clause in cc_library\n\nRemove the vestigial llndk_library modules and replace them with\nproperties in the llndk clause of the implementation cc_library.\n\nBug: 170784825\nTest: m checkbuild\nTest: compare out/soong/build.ninja\nChange-Id: Ie3a1bffcf29bb1b6747f7f708826c61bd43ba5a1\n"
    },
    {
      "commit": "d69ad69a938a27021adfcc2435dc1fd2ad0c8e1a",
      "tree": "184b620c9b0cddc4b15efa718ddc3961d2ce3d64",
      "parents": [
        "d57652f15b078d06d9258094f8a951374a677f2c"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 19:02:14 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 19 12:59:05 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to system/core\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  bootstat/Android.bp\n  cli-test/Android.bp\n  code_coverage/Android.bp\n  cpio/Android.bp\n  debuggerd/crasher/Android.bp\n  debuggerd/proto/Android.bp\n  diagnose_usb/Android.bp\n  fs_mgr/libdm/Android.bp\n  fs_mgr/libfiemap/Android.bp\n  fs_mgr/liblp/Android.bp\n  fs_mgr/libsnapshot/Android.bp\n  fs_mgr/libstorage_literals/Android.bp\n  fs_mgr/libvbmeta/Android.bp\n  fs_mgr/tests/Android.bp\n  fs_mgr/tools/Android.bp\n  gatekeeperd/Android.bp\n  healthd/Android.bp\n  healthd/testdata/Android.bp\n  init/Android.bp\n  init/Android.mk\n  init/sysprop/Android.bp\n  init/test_kill_services/Android.bp\n  init/test_service/Android.bp\n  libappfuse/Android.bp\n  libasyncio/Android.bp\n  libbinderwrapper/Android.bp\n  libcrypto_utils/Android.bp\n  libcrypto_utils/tests/Android.bp\n  libdiskconfig/Android.bp\n  libgrallocusage/Android.bp\n  libkeyutils/mini_keyctl/Android.bp\n  libmodprobe/Android.bp\n  libnetutils/Android.bp\n  libpackagelistparser/Android.bp\n  libprocessgroup/Android.bp\n  libprocessgroup/cgrouprc/Android.bp\n  libprocessgroup/cgrouprc_format/Android.bp\n  libprocessgroup/profiles/Android.bp\n  libprocessgroup/setup/Android.bp\n  libqtaguid/Android.bp\n  libsparse/Android.bp\n  libstats/push_compat/Android.bp\n  libsuspend/Android.bp\n  libsync/Android.bp\n  libsystem/Android.bp\n  libsysutils/Android.bp\n  libusbhost/Android.bp\n  libutils/Android.bp\n  libvndksupport/Android.bp\n  libvndksupport/tests/Android.bp\n  llkd/Android.bp\n  llkd/tests/Android.bp\n  property_service/libpropertyinfoparser/Android.bp\n  property_service/libpropertyinfoserializer/Android.bp\n  property_service/property_info_checker/Android.bp\n  qemu_pipe/Android.bp\n  reboot/Android.bp\n  rootdir/Android.bp\n  rootdir/Android.mk\n  rootdir/avb/Android.bp\n  rootdir/avb/Android.mk\n  run-as/Android.bp\n  sdcard/Android.bp\n  set-verity-state/Android.bp\n  shell_and_utilities/Android.bp\n  storaged/Android.bp\n  toolbox/Android.bp\n  trusty/apploader/Android.bp\n  trusty/confirmationui/Android.bp\n  trusty/confirmationui/fuzz/Android.bp\n  trusty/coverage/Android.bp\n  trusty/fuzz/Android.bp\n  trusty/fuzz/test/Android.bp\n  trusty/gatekeeper/Android.bp\n  trusty/gatekeeper/fuzz/Android.bp\n  trusty/keymaster/Android.bp\n  trusty/keymaster/fuzz/Android.bp\n  trusty/libtrusty/Android.bp\n  trusty/libtrusty/tipc-test/Android.bp\n  trusty/secure_dpu/Android.bp\n  trusty/storage/interface/Android.bp\n  trusty/storage/lib/Android.bp\n  trusty/storage/proxy/Android.bp\n  trusty/storage/tests/Android.bp\n  trusty/utils/spiproxyd/Android.bp\n  trusty/utils/trusty-ut-ctrl/Android.bp\n  usbd/Android.bp\n  watchdogd/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  debuggerd/Android.bp\n  fastboot/Android.bp\n  libkeyutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT\nto:\n  libcutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  fs_mgr/Android.bp\n  fs_mgr/libfs_avb/Android.bp\n  trusty/Android.bp\n  trusty/utils/rpmb_dev/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  fastboot/fuzzy_fastboot/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: Id740a7d2884556081fdb68876584b25eb95e1bef\n"
    },
    {
      "commit": "c3a206ccda9a78dd45d06b7d68dbe83e1fba779e",
      "tree": "cd137e76557bf1aadffe3cb43e02ab642bc81c71",
      "parents": [
        "187b7d19504ca8bdcbc6217c06a117017b4c6287"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:01:20 2021 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:01:20 2021 +0000"
      },
      "message": "Revert \"[LSC] Add LOCAL_LICENSE_KINDS to system/core\"\n\nThis reverts commit 187b7d19504ca8bdcbc6217c06a117017b4c6287.\n\nReason for revert: system/core is multiple projects, not one.\n\nChange-Id: I790ea41741f8cd9b8b6db2f59a49e71fb0958fd6\n"
    },
    {
      "commit": "187b7d19504ca8bdcbc6217c06a117017b4c6287",
      "tree": "0656ad03ff6e56b17ab0d4a8677955cab2c16cba",
      "parents": [
        "83eae36647eef27b75b128c5bce4732229d2ca0d"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 17:48:16 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:10:03 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to system/core\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  bootstat/Android.bp\n  cli-test/Android.bp\n  code_coverage/Android.bp\n  cpio/Android.bp\n  debuggerd/crasher/Android.bp\n  debuggerd/proto/Android.bp\n  diagnose_usb/Android.bp\n  fs_mgr/libdm/Android.bp\n  fs_mgr/libfiemap/Android.bp\n  fs_mgr/liblp/Android.bp\n  fs_mgr/libsnapshot/Android.bp\n  fs_mgr/libstorage_literals/Android.bp\n  fs_mgr/libvbmeta/Android.bp\n  fs_mgr/tests/Android.bp\n  fs_mgr/tools/Android.bp\n  gatekeeperd/Android.bp\n  healthd/Android.bp\n  healthd/testdata/Android.bp\n  init/Android.bp\n  init/Android.mk\n  init/sysprop/Android.bp\n  init/test_kill_services/Android.bp\n  init/test_service/Android.bp\n  libappfuse/Android.bp\n  libasyncio/Android.bp\n  libbinderwrapper/Android.bp\n  libcrypto_utils/Android.bp\n  libcrypto_utils/tests/Android.bp\n  libdiskconfig/Android.bp\n  libgrallocusage/Android.bp\n  libkeyutils/mini_keyctl/Android.bp\n  libmodprobe/Android.bp\n  libnetutils/Android.bp\n  libpackagelistparser/Android.bp\n  libprocessgroup/Android.bp\n  libprocessgroup/cgrouprc/Android.bp\n  libprocessgroup/cgrouprc_format/Android.bp\n  libprocessgroup/profiles/Android.bp\n  libprocessgroup/setup/Android.bp\n  libqtaguid/Android.bp\n  libsparse/Android.bp\n  libstats/push_compat/Android.bp\n  libsuspend/Android.bp\n  libsync/Android.bp\n  libsystem/Android.bp\n  libsysutils/Android.bp\n  libusbhost/Android.bp\n  libutils/Android.bp\n  libvndksupport/Android.bp\n  libvndksupport/tests/Android.bp\n  llkd/Android.bp\n  llkd/tests/Android.bp\n  property_service/libpropertyinfoparser/Android.bp\n  property_service/libpropertyinfoserializer/Android.bp\n  property_service/property_info_checker/Android.bp\n  qemu_pipe/Android.bp\n  reboot/Android.bp\n  rootdir/Android.bp\n  rootdir/Android.mk\n  rootdir/avb/Android.bp\n  rootdir/avb/Android.mk\n  run-as/Android.bp\n  sdcard/Android.bp\n  set-verity-state/Android.bp\n  shell_and_utilities/Android.bp\n  storaged/Android.bp\n  toolbox/Android.bp\n  trusty/apploader/Android.bp\n  trusty/confirmationui/Android.bp\n  trusty/confirmationui/fuzz/Android.bp\n  trusty/coverage/Android.bp\n  trusty/fuzz/Android.bp\n  trusty/fuzz/test/Android.bp\n  trusty/gatekeeper/Android.bp\n  trusty/gatekeeper/fuzz/Android.bp\n  trusty/keymaster/Android.bp\n  trusty/keymaster/fuzz/Android.bp\n  trusty/libtrusty/Android.bp\n  trusty/libtrusty/tipc-test/Android.bp\n  trusty/secure_dpu/Android.bp\n  trusty/storage/interface/Android.bp\n  trusty/storage/lib/Android.bp\n  trusty/storage/proxy/Android.bp\n  trusty/storage/tests/Android.bp\n  trusty/utils/spiproxyd/Android.bp\n  trusty/utils/trusty-ut-ctrl/Android.bp\n  usbd/Android.bp\n  watchdogd/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  debuggerd/Android.bp\n  fastboot/Android.bp\n  libkeyutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT\nto:\n  Android.bp\n  libcutils/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\nto:\n  fs_mgr/Android.bp\n  fs_mgr/libfs_avb/Android.bp\n  trusty/utils/rpmb_dev/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  fastboot/fuzzy_fastboot/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I5bd81adb5cdcf2b4dd4141b204eb430ff526af8f\n"
    },
    {
      "commit": "2d30fe48d495a7d0e6bd8c27d5c7ca3f3420afaa",
      "tree": "a159d528be28aa3e95f8978f1aa8aebf9d1f18d4",
      "parents": [
        "06ee6f1753ef5608f8c564fe266e205e43445686"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Aug 10 16:06:09 2020 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Jan 12 20:50:27 2021 +0900"
      },
      "message": "Remove __ANDROID_API__ guards\n\n__ANDROID_API__ guards are removed in favor of __INTRODUCED_IN macros.\n\nCurrently, __INTRODUCED_IN macro does nothing for these headers (it\u0027s\nmeaningful only to the headers processed by versioner which are limited\nto binic headers). The plan is to make the macros to tag the declaration\nwith the availability attribute. Then, when the min_sdk_version of a\ncaller is set to an API level that is older than the API level of the\nAPIs, the compiler will provide them as weak symbols and enforce that\ncalling the APIs are guarded with a runtime check.\n\nFor now, these guards are preventing from making a build system change\nto let __ANDROID_API__ track the min_sdk_version property instead of the\nsdk_version property. With the build system change, __ANDROID_API__ will\nsuddenly drop for the native modules where min_sdk_version \u003c\nsdk_version, which is the case when the modules are included in APEXes.\nAs a result, some new APIs will be unavailable at build-time. Dropping\nthe hand-written guards fixes the problem.\n\nBug: 163288375\nTest: m\nChange-Id: If1cc6b9af410f536abe6d777c22711209fa76530\n"
    },
    {
      "commit": "6a2b16693ca45f81ac2adc1cd0e9c965608de222",
      "tree": "6f99770d0553b40d4c2028a1936441178714a42f",
      "parents": [
        "fe1eba005603157f376829ffb0b9d26a0813cb8c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Oct 19 13:38:05 2020 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Oct 19 13:38:05 2020 -0700"
      },
      "message": "Make the connection between implementation and llndk_library explicit\n\nInstead of assuming a module with the .llndk suffix exists, add an\nllndk_stubs property to every cc_library module that has a\ncorresponding llndk_library.  Also rename the llndk_library to have\nan explicit .llndk suffix.\n\nBug: 170784825\nTest: no changes to build.ninja (excluding comments) or Android-${TARGET_PRODUCT}.mk\nChange-Id: Ifba79a1ae64a67a9d7393dac2fb012cd8af8e149\n"
    },
    {
      "commit": "78fc553d68b411ff00d91f1cdf410ed7106e5a12",
      "tree": "4b48a764a516872f186a00951efb2dc74ee78047",
      "parents": [
        "e10fb5f5c5794d6a6aaba0f8e46f76528fec8856"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Fri Jun 05 16:01:03 2020 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Fri Jun 05 17:13:57 2020 +0900"
      },
      "message": "Make libsync a stubs library\n\nlibsync is an NDK/LLNDK library but it\u0027s missing \"stubs\" key. So, when\nit is referenced by an APEX, it is bundled in APEX package.\n\nBy adding \"stubs\" property, we can make it a stubs library and APEXes\nuse it from the system instead of bundling it.\n\nNote that the symbol(sync_wait) is exposed to APEX because it is used\nby libui which is used by media APEXes again.\n\nBug: 158270824\nTest: lunch mini_armv7a_neon   # no VNDK\n      m com.andorid.media.swcodec\n      // see if libsync is not in the APEX\nChange-Id: I39e682328acb5cc363a4242601e5bf1470938dac\n"
    },
    {
      "commit": "8cb4c488c55fa0b12b910cd8a982b098a2351dcb",
      "tree": "1d60853f19169d166cbc6a46458af337d662e298",
      "parents": [
        "cb57583949c6ac013e2f7487a86b7e218fe20b31"
      ],
      "author": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Fri Feb 28 10:47:35 2020 -0800"
      },
      "committer": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Fri Feb 28 10:50:50 2020 -0800"
      },
      "message": "libsystem/libsync: Update OWNERS\n\nmarissaw@ is leaving Android.\n\nTest: Compiles\nBug: 150462113\nChange-Id: I63334466cc1b429c16f0011dcf4b43aa92324a6c\n"
    },
    {
      "commit": "b2542d2942f1d71ca7128680da9924132c9bc5b0",
      "tree": "454dd3f4f2f2064a31fe79c2305304fd7ab829a4",
      "parents": [
        "46f9698a11a6011eca8f0f046e3471d62a3d79db"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Nov 06 12:45:10 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Nov 13 14:32:44 2019 +0900"
      },
      "message": "Rename # vndk tag to # llndk\n\nThe APIs that are tagged with # vndk are actually for LLNDK libraries.\nAlthough LLNDK is part of VNDK, calling those APIs \u0027vndk\u0027 has given\nusers a wrong perception that the APIs don\u0027t need to be kept stable\nbecause that\u0027s the norm for most of the VNDK libraries that are not\nLLNDK.\n\nIn order to eliminate the misunderstanding, rename the tag to \u0027llndk\u0027 so\nthat people introducing new such API will realize what they are signing\nthemselves up for.\n\nBug: 143765505\nTest: m\nMerged-In: Iae2acdf1ff4097a64a5c6280797c66abb1d5a5e6\n(cherry picked from commit 0e957b82c8afa24ac10960665316047b970a5b90)\nChange-Id: Iae2acdf1ff4097a64a5c6280797c66abb1d5a5e6\n"
    },
    {
      "commit": "0726be3d62a9a8429f576c0db6ba6e253386b9e5",
      "tree": "2ba07755d178d218fdac173627d3117f04dea1ee",
      "parents": [
        "fe04d7ce7e9f7d3828ead8d15896af1cf639653b"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue May 14 14:39:15 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed May 15 12:40:33 2019 +0200"
      },
      "message": "Enable native_bridge_support for libsync\n\nAndroid build system added support for building translated binaries\nused on natively bridged targets (arm on x86 for example).\n\nHowever in order to avoid building unnecessary binaries and libraries\nfor such architectures most modules do not support native bridge by default.\n\nAll needed modules have to explicitly indicate if they may be used as part\nof translated binary build.\n\nThis change enabled native bridge support for libsync because it is a\npublic library.\n\nBug: http://b/77159578\nTest: make\nChange-Id: I993384469fa2b011a15a2ecb1fd2162184c74a47\n"
    },
    {
      "commit": "f32d3df46fa27fd59982bcbe314a4ed2ae7ddd14",
      "tree": "7061e43df970c80030fc9572abc526ded037750d",
      "parents": [
        "9b66330375ec841ef0ddef4646f79ade03c4af5c"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Aug 07 10:55:27 2018 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Aug 07 11:00:50 2018 -0700"
      },
      "message": "Merge libsync_recovery rules into libsync.\n\nStatically linking against libsync is no longer a concern, since libsync\nhas supported the modern sync ABI (which is frozen upstream) after the\nrecent cleanup works.\n\nTest: `m dist` with aosp_taimen-userdebug\nChange-Id: Ic162bc7ff7c9dd306658d11d4b71e2d18730a2ee\n"
    },
    {
      "commit": "9b66330375ec841ef0ddef4646f79ade03c4af5c",
      "tree": "c11baecf4bce4d279aec9ee39cce332544e2a5e6",
      "parents": [
        "5d707816ace0f2173310645363533fed2188acfd"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Jul 17 12:15:57 2018 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Aug 07 10:53:07 2018 -0700"
      },
      "message": "Make libadf, libsync_recovery recovery_available.\n\nBug: 110380063\nTest: `m dist` with aosp_taimen-userdebug\nChange-Id: Ie3543ff89b6b4f0de04eff0f85f8001f4b27d86a\n"
    },
    {
      "commit": "d1c5c5baaa0145e9d1baa4950b51c8d4cf4e3ffc",
      "tree": "a89ff6ce409084dd0170136126389c5ce6589abf",
      "parents": [
        "fe732d108b70893f94f715baf6b48625d1b402d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 27 15:13:33 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 27 15:13:33 2018 -0700"
      },
      "message": "NDK: add availability comments to \u003csync.h\u003e.\n\nBug: N/A\nTest: N/A\nChange-Id: I0cc16cc9c32c6679098aa875d5f81829215868d4\n"
    },
    {
      "commit": "d2fec76063d443641774bec5d978ad6384115d2b",
      "tree": "bccab7b0d30b17346c4234ade1d5deaf1127b4d2",
      "parents": [
        "65e4751633c93a4dd897ab8427f9b8af7a99b301"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jul 19 17:43:32 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Jul 19 22:58:14 2018 -0700"
      },
      "message": "Restore the libsync __ANDROID_API__ guard\n\nPartially reverts 2a358106b7e554396088506e8e817520e2882aee\n\nBug: http://b/111668906\nTest: m\nChange-Id: Ic35091e10edda12a97992fbeffefda7ddf1305a1\n"
    },
    {
      "commit": "9d9c91acdc3fa4e7ebcd5314adf8cbe577694f54",
      "tree": "b514828e98627f5f2f583d5dd4835a4a71963275",
      "parents": [
        "60e9dad71ea729681474e30eeee34aed47fa324c",
        "2a358106b7e554396088506e8e817520e2882aee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 15 16:08:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 16:08:51 2018 +0000"
      },
      "message": "Merge \"libsync: add __INTRODUCED_IN annotations.\""
    },
    {
      "commit": "2a358106b7e554396088506e8e817520e2882aee",
      "tree": "74279cb5521e7a21071c255ceeec76592fae407f",
      "parents": [
        "7222199281b824fbe08f216860d2cd5153d33d11"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 15:26:12 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 15:27:26 2018 -0700"
      },
      "message": "libsync: add __INTRODUCED_IN annotations.\n\nBug: https://github.com/android-ndk/ndk/issues/706\nTest: N/A\nChange-Id: I8a4f98f2c929e28d81672d7e2e0d5dd63d27c7a6\n"
    },
    {
      "commit": "82d377b585677442ed7732ada55e3e93857d083b",
      "tree": "16265798d8d76dc6fdd9d972bf0179301d957130",
      "parents": [
        "9c1d75983aaa697466d25ac09964fa8ce3708769"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Jun 13 11:52:10 2018 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Jun 13 11:52:10 2018 -0700"
      },
      "message": "sync: remove legacy sync info API\n\nThe legacy fence/pt info API has been deprecated for a while. This\nchange removes it from headers, so remaining users will have to switch\nto the modern API when they\u0027re re-compiled. The functions are still\nprovided by libsync.so and tests remain, so existing binaries should\ncontinue to work. Eventually these will be removed too, though, once\nit\u0027s reasonable to expect those binaries to have been recompiled.\n\nThis reverts commit eed25df46a22a143a0341113759894c23a9b6cbf, which\nreverted the previous attempt in commit\n798ba95bda14f9f28561a2a27ba406537f8bb8a8 now that more users of the\nlegacy API have been converted.\n\nBug: 35326015\nTest: make checkbuild\nTest: adb shell dumpsys SurfaceFlinger --latency\n"
    },
    {
      "commit": "666f62e1c77566beacf597edfb21d0c1053df6f6",
      "tree": "630f2b2b05cca5e40a966d0efa0d6207bd5cae5c",
      "parents": [
        "c2a89f396bf4a9601508cec7365ce33495cb4bd6",
        "f2570c2f92f1d7b92dbbb438987f716c66258ef4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 05 19:38:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 05 19:38:25 2018 +0000"
      },
      "message": "Merge \"libsync: OWNERS.\""
    },
    {
      "commit": "f2570c2f92f1d7b92dbbb438987f716c66258ef4",
      "tree": "b8343ffb3f80b6a967b701d139804261713e6552",
      "parents": [
        "d580c441ab45a6b7278da003e19af64e9ea2cc71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 05 10:56:38 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 05 10:56:38 2018 -0700"
      },
      "message": "libsync: OWNERS.\n\nBased on git shortlog and my memory.\n\nBug: N/A\nTest: N/A\nChange-Id: I2e821a1214c349fd75f2971f632de3d30c602b83\n"
    },
    {
      "commit": "eed25df46a22a143a0341113759894c23a9b6cbf",
      "tree": "258eea596705e2709354471eace7f3b135c1cfac",
      "parents": [
        "798ba95bda14f9f28561a2a27ba406537f8bb8a8"
      ],
      "author": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Tue Jun 05 17:22:32 2018 +0000"
      },
      "committer": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Tue Jun 05 17:22:32 2018 +0000"
      },
      "message": "Revert \"sync: remove legacy sync info API\"\n\nThis reverts commit 798ba95bda14f9f28561a2a27ba406537f8bb8a8.\n\nBrodcom uses the sync_fence_info_data directly.\nhttps://android-build.googleplex.com/builds/submitted/4821789/elfin-userdebug/latest/view/logs/build_error.log\n\nChange-Id: I72fed683397e9b10007b71253e20ded43726d377\n"
    },
    {
      "commit": "798ba95bda14f9f28561a2a27ba406537f8bb8a8",
      "tree": "cc40d34a10ca49f5e8bb7dc5034eb6f383a0205d",
      "parents": [
        "2576a439e6c4a750e001e70d73a33d9519bb7660"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri May 04 15:17:39 2018 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 23 16:45:48 2018 -0700"
      },
      "message": "sync: remove legacy sync info API\n\nThe legacy fence/pt info API has been deprecated for a while. This\nchange removes it from headers, so remaining users will have to switch\nto the modern API when they\u0027re re-compiled. The functions are still\nprovided by libsync.so and tests remain, so existing binaries should\ncontinue to work. Eventually these will be removed too, though, once\nit\u0027s reasonable to expect those binaries to have been recompiled.\n\nBug: 35326015\nTest: make checkbuild\nTest: adb shell dumpsys SurfaceFlinger --latency\nChange-Id: Id086fafe37c2bc1cfdca4a21107bc9208ed61f89\n"
    },
    {
      "commit": "2576a439e6c4a750e001e70d73a33d9519bb7660",
      "tree": "258eea596705e2709354471eace7f3b135c1cfac",
      "parents": [
        "8cf185e5429523055c4de6c71deabd603b95b2de"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 23 16:22:46 2018 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 23 16:45:48 2018 -0700"
      },
      "message": "Remove obsolete sync_test.c\n\nTests in this file depends on long out-of-date behavior of the sync\napi. More current tests are in tests/sync_test.cpp.\n\nTest: quis custodiet ipsos custodes?\nChange-Id: Ia0a0970dde17c1ae4e1d79fac1a9fe3b54e8fcd6\n"
    },
    {
      "commit": "55a76719e28740c289f553978d5c4226faf5ca05",
      "tree": "7e0d3932636eacbda7ffdb9bedd0f0ab41f260b9",
      "parents": [
        "07de83831f9a2bf67e1c4a4df72baed42b26c7e9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 13 14:49:41 2018 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 13 14:49:41 2018 -0700"
      },
      "message": "Add missing @addtogroup tags.\n\nThese NDK docs weren\u0027t in any groups, so they don\u0027t show up in the\nnew site.\n\nTest: https://irina-dot-devsite.googleplex.com/ndk/reference/group/logging\nTest: https://irina-dot-devsite.googleplex.com/ndk/reference/group/sync\nBug: http://b/77236573\nChange-Id: I300f96585dec94359ecf96fbf39c6dc3ec4579e5\n"
    },
    {
      "commit": "6832535cd5c409325aa4f257fdebf03080f0f9dc",
      "tree": "f77a417efea578a0c8dfeb7c5290c50c97996ab2",
      "parents": [
        "a0dd1adab0010b61ea7ad2ebce3e9cc598cbe5bd",
        "68223500ea8a7608b1446ac39428118e9b16f625"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 26 23:46:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 26 23:46:32 2017 +0000"
      },
      "message": "Merge \"libsync: Add fence info tests\""
    },
    {
      "commit": "68223500ea8a7608b1446ac39428118e9b16f625",
      "tree": "23ab6a3926746612d0f6207cb86634b62ec145fa",
      "parents": [
        "dea5e081ac0f94a83650a600af881b529817b6fd"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@collabora.com",
        "time": "Fri Sep 15 09:45:40 2017 +0300"
      },
      "committer": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@collabora.com",
        "time": "Tue Sep 26 13:09:35 2017 +0300"
      },
      "message": "libsync: Add fence info tests\n\nThis patch adds regression tests to check that the fence info returned\nby libsync contains valid data.\n\nTest: sync-unit-tests\n\nChange-Id: I0c57c49b7be563efc9a43f12381059f20e0a4e52\nSigned-off-by: Alexandros Frantzis \u003calexandros.frantzis@collabora.com\u003e\n"
    },
    {
      "commit": "90a74600d772ee578aaf5c63005e2d80b0d223c9",
      "tree": "f8ac4b2019959b65429abfdc2ad3c52b3574d5c7",
      "parents": [
        "22a10f6766cd3ae07217b9a93c44381f52aa7018"
      ],
      "author": {
        "name": "Saurabh Shah",
        "email": "saurshah@quicinc.com",
        "time": "Tue Aug 01 13:54:21 2017 -0700"
      },
      "committer": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Mon Sep 25 15:51:46 2017 -0700"
      },
      "message": "sync: store the num_fences from first SYNC_IOC_FILE_INFO\n\nFixes a bug with the signal time of devices using the\nmodern sync file interface. The bug only affects kernels running\nan Android kernel 4.9 and later.\n\nb/63395253\n\nTest: tests/sync_test.cpp\n\nChange-Id: I6fb00bcb8e16a3268c357153edd8e35a44546caa\n"
    },
    {
      "commit": "b87f884b99e5daa74a845b3b3e8881cda88a389e",
      "tree": "fda64b434b9a8b72b2237f5e780c7fcdf638ae95",
      "parents": [
        "b5ec6a032c254bbbb8508e870035660c86485b5d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Aug 14 15:21:28 2017 +0900"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Fri Sep 15 00:33:52 2017 +0000"
      },
      "message": "Mark libsync as LL-NDK\n\nlibsync is used both by platform (e.g. libui.so) and by same-process\nHALs (e.g. android.hardware.graphics.mapper@2.0-impl.so). Therefore it\nis eligible for either VNDK-SP or LL-NDK. Among the two choices, LL-NDK\nwas selected because it is already an NDK and is just a thin wrapper\naround a few kernel ioctls.\n\nHowever, since libui (which is a vendor_available:true library) is using\nmore symbols that are not available to NDK clients, the extra symbols\nare exposed as # vndk tag so that they are only available to VNDK\nclients, but not to NDK clients.\n\nBug: 63866913\nTest: BOARD_VNDK_VERSION\u003dcurrent m -j successful (2017 pixel)\nTest: the built image is bootable\nMerged-In: I60f883c049bd9b4562e6ce34d34ead47ba28af5f\nChange-Id: I60f883c049bd9b4562e6ce34d34ead47ba28af5f\n(cherry picked from commit 058e0919f6aff67d32d00591a7040fc069c6e40f)\n"
    },
    {
      "commit": "b5ec6a032c254bbbb8508e870035660c86485b5d",
      "tree": "191947eb8f175dc6bfe14e7d4ae88a955efd018f",
      "parents": [
        "0a01830612762e226570f73d54c415a621e88297"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Jun 12 10:51:34 2017 -0700"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Fri Sep 15 00:32:27 2017 +0000"
      },
      "message": "Fix NDK libsync to match ndk/sync.h\n\nThe header names were changed during review, but the library map file\nwasn\u0027t updated.\n\nBug: 62229958\nTest: CtsGraphicsTestCases:android.graphics.cts.SyncTest\nMerged-In: Ie5955865667b35067f1ee209933f159f170419cd\nChange-Id: Ie5955865667b35067f1ee209933f159f170419cd\n(cherry picked from commit 59d9ee5d020c54d89cbb520b30fa19765a68646d)\n"
    },
    {
      "commit": "4ff5ff29d26cd028d5d78f5b764dab380fd7c9f4",
      "tree": "283434227e4125590c2e3cd0346b6394854cb685",
      "parents": [
        "f899548cdb18a56db9ad0c0c5ecd1941a6b23255"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Sep 05 16:26:36 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Sep 05 16:26:36 2017 -0700"
      },
      "message": "libsync: Fix a double-free.\n\nsync_file_info, the only caller of legacy_fence_info_to_sync_file_info,\nunconditionally frees legacy_info after\nlegacy_fence_info_to_sync_file_info is called. So, if this calloc\nfails, we\u0027ll end up freeing legacy_info twice.\n\nBug: 27101951\nTest: mma. Static analyzer complaint about double-free is gone.\nChange-Id: I43bf820af9aadf30cb8eabce57416f69a8fccf89\n"
    },
    {
      "commit": "f7b315c985a9822ea279f65262fe03e2dabefb14",
      "tree": "9080b714ce6903ca167e4c1eee8d5dd834f9e64a",
      "parents": [
        "f23f21a2311e1c254456607de0d83ae1153ba4c8",
        "80ec81cf4b9f4e9a529df618ea38a3f995a2f249"
      ],
      "author": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Tue Jul 25 22:28:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 25 22:28:56 2017 +0000"
      },
      "message": "Merge \"Remove LOCAL_CLANG and clang: true\"\nam: 80ec81cf4b\n\nChange-Id: Ia7f79d8e25ee9870fe44d198568d0e5dabdff811\n"
    },
    {
      "commit": "cd15fc7ba80b31539e85792ec35d7ebe0c8ff764",
      "tree": "b834af3b7e5dbb8562b06face0bd2bbaecf0e10a",
      "parents": [
        "603cae8b4812c21b92f559d190c7d21534dbeef7"
      ],
      "author": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Mon Jul 24 19:32:07 2017 +0200"
      },
      "committer": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Tue Jul 25 14:29:50 2017 +0200"
      },
      "message": "Remove LOCAL_CLANG and clang: true\n\nclang is the default compiler since Android nougat\n\nTest: mma \u0026 verified it´s still build with clang\nChange-Id: I34adaeef2f6558a09f26027271222bad94780507\nSigned-off-by: Lennart Wieboldt \u003clennart.1997@gmx.de\u003e\n"
    },
    {
      "commit": "9990de1f643c9dc581e2977ae7222a21c39389b0",
      "tree": "2ccce25533378a065bfb96aaab37c47199dce123",
      "parents": [
        "2bd434223415b09ce7d0e21eb74e81c8c2174b3d"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:27:20 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 19 10:32:51 2017 -0700"
      },
      "message": "libsync: vendor_available\n\nBy setting vendor_available, the following may become true:\n\n* a prebuilt library from this release may be used at runtime by\n  in a later releasse (by vendor code compiled against this release).\n  so this library shouldn\u0027t depend on runtime state that may change\n  in the future.\n* this library may be loaded twice into a single process (potentially\n  an old version and a newer version). The symbols will be isolated\n  using linker namespaces, but this may break assumptions about 1\n  library in 1 process (your singletons will run twice).\n\nBackground:\n\nThis means that these modules may be built and installed twice --\nonce for the system partition and once for the vendor partition. The\nsystem version will build just like today, and will be used by the\nframework components on /system. The vendor version will build\nagainst a reduced set of exports and libraries -- similar to, but\nseparate from, the NDK. This means that all your dependencies must\nalso mark vendor_available.\n\nAt runtime, /system binaries will load libraries from /system/lib*,\nwhile /vendor binaries will load libraries from /vendor/lib*. There\nare some exceptions in both directions -- bionic(libc,etc) and liblog\nare always loaded from /system. And SP-HALs (OpenGL, etc) may load\n/vendor code into /system processes, but the dependencies of those\nlibraries will load from /vendor until it reaches a library that\u0027s\nalways on /system. In the SP-HAL case, if both framework and vendor\nlibraries depend on a library of the same name, both versions will be\nloaded, but they will be isolated from each other.\n\nIt\u0027s possible to compile differently -- reducing your source files,\nexporting different include directories, etc. For details see:\n\nhttps://android-review.googlesource.com/368372\n\nNone of this is enabled unless the device opts into the system/vendor\nsplit with BOARD_VNDK_VERSION :\u003d current.\n\nBug: 33241851\nTest: build and flash internal marlin\nTest: m -j libsync\nTest: build with BOARD_VNDK_VERSION :\u003d current\n(cherry picked from commit d0b26edf309cc090569dae65aa3ab6bf8361b020)\nMerged-In: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98\nChange-Id: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98\n"
    },
    {
      "commit": "5bebf84845bbe1fd7fa9b12592589b443b3615a2",
      "tree": "2cec75911623d76be5c1b19c6f53330db2a12919",
      "parents": [
        "54cd7e0d2c874f962b63c7a06ea58c97686465fc"
      ],
      "author": {
        "name": "Alistair Strachan",
        "email": "alistair.strachan@imgtec.com",
        "time": "Mon Mar 06 17:11:43 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Apr 14 15:12:06 2017 -0700"
      },
      "message": "libsync: ndk: Fix compilation in C mode.\n\nUse of \u0027inline\u0027 without \u0027static\u0027 may allow the C compiler to uninline it\nwithin the compilation unit, depending on the C standard level. Always\nusing \u0027static inline\u0027 avoids this problem.\n\nTest: build + boot to launcher\nChange-Id: Ifb6e1fa6b84286067ddc2daca4c8942c410e56ab\n"
    },
    {
      "commit": "d0b26edf309cc090569dae65aa3ab6bf8361b020",
      "tree": "3bef8aa1d5fd939f2c301d5f4376ec376e3c568b",
      "parents": [
        "5975d4e33724047d73883ca84fda8b360f2fe000"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:27:20 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:28:39 2017 -0700"
      },
      "message": "libsync: vendor_available\n\nBy setting vendor_available, the following may become true:\n\n* a prebuilt library from this release may be used at runtime by\n  in a later releasse (by vendor code compiled against this release).\n  so this library shouldn\u0027t depend on runtime state that may change\n  in the future.\n* this library may be loaded twice into a single process (potentially\n  an old version and a newer version). The symbols will be isolated\n  using linker namespaces, but this may break assumptions about 1\n  library in 1 process (your singletons will run twice).\n\nBackground:\n\nThis means that these modules may be built and installed twice --\nonce for the system partition and once for the vendor partition. The\nsystem version will build just like today, and will be used by the\nframework components on /system. The vendor version will build\nagainst a reduced set of exports and libraries -- similar to, but\nseparate from, the NDK. This means that all your dependencies must\nalso mark vendor_available.\n\nAt runtime, /system binaries will load libraries from /system/lib*,\nwhile /vendor binaries will load libraries from /vendor/lib*. There\nare some exceptions in both directions -- bionic(libc,etc) and liblog\nare always loaded from /system. And SP-HALs (OpenGL, etc) may load\n/vendor code into /system processes, but the dependencies of those\nlibraries will load from /vendor until it reaches a library that\u0027s\nalways on /system. In the SP-HAL case, if both framework and vendor\nlibraries depend on a library of the same name, both versions will be\nloaded, but they will be isolated from each other.\n\nIt\u0027s possible to compile differently -- reducing your source files,\nexporting different include directories, etc. For details see:\n\nhttps://android-review.googlesource.com/368372\n\nNone of this is enabled unless the device opts into the system/vendor\nsplit with BOARD_VNDK_VERSION :\u003d current.\n\nBug: 33241851\nTest: build and flash internal marlin\nTest: m -j libsync\nTest: build with BOARD_VNDK_VERSION :\u003d current\nChange-Id: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98\n"
    },
    {
      "commit": "db9b260096dc13f3733dceba9d0935f0323b9b36",
      "tree": "67fa0ce8d0c1b127b3f244e8cc2854d500a1a9b3",
      "parents": [
        "c8202dc5f72e45079f71b7b52e11d58d16bb7409"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 10 12:58:03 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 10 12:58:03 2017 -0700"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nChange-Id: Ia039812817495c00e450eec7292447d5e8f93adb\n"
    },
    {
      "commit": "6cd0fc56c0a2cb8fdf897f49f013f86dc698d793",
      "tree": "95b08eab695324bf4b9ba22c3940857ff74e5097",
      "parents": [
        "dec150ff58e0c48fc96c9e0222bda6c2afd23869"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sat Feb 18 21:51:04 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Mar 08 17:34:14 2017 -0800"
      },
      "message": "sync: Cache knowledge of kernel uapi version\n\nPreviously all libsync calls would try first the modern/mainline uapi\nand if that failed try the legacy uapi, or vice versa. This is\ninefficient, and confusing when looking at strace. With this change,\nafter the first successful syscall, libsync know\u0027s what uapi version\nthe kernel supports, and will only try that version in the future.\n\nTest: sync-unit-tests on bullhead\nChange-Id: I8b5de0194da0cfc6c080c0180318e16bb673d3c9\n"
    },
    {
      "commit": "41129a2526d4a8bc3510bc65c0e39e1e9d4700d2",
      "tree": "2e0ffa0c4c47072e77e8214c53d223078907ce64",
      "parents": [
        "b7fdb2a1284143b8cee11483646b8753262ad165"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Feb 13 15:19:24 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: rename sync/sync.h to android/sync.h\n\nLeave a temporary symlink from the old name to avoid having to change\nall dependencies simultaneously.\n\nBug: 1901466\nTest: m\nChange-Id: Id210f0091457e52e1a6e048d241a723bdbe8779b\n"
    },
    {
      "commit": "b7fdb2a1284143b8cee11483646b8753262ad165",
      "tree": "e6ae6d912d3a674900bdf789fb79581c1729b652",
      "parents": [
        "836661616fcf4bc023b192d1c320f0727a9dfef9"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:42:11 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: move declarations from sync/sync.h to sync.c\n\nNone of these should be needed or used outside of sync.c.\n\nTest: lunch bullhead-eng ; m\nChange-Id: I548a499d0e2ada2ab4987e63a8116327c3be0076\n"
    },
    {
      "commit": "836661616fcf4bc023b192d1c320f0727a9dfef9",
      "tree": "49e82464c7eca7aa4774f45ae099918ddb66d0e9",
      "parents": [
        "89530820d7f5837f00f3f04e18dfa05c7506eb68"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:32:39 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: implement sync_file_info\n\nAlso modifies sync-unit-test to use sync_file_info instead of the\ndeprecated sync_fence_info, but check that they match in several tests.\n\nBug: 35138793\nTest: sync-unit-tests on bullhead\nChange-Id: Ic672d1c89798435a8b71469500e82c770a66bf4d\n"
    },
    {
      "commit": "89530820d7f5837f00f3f04e18dfa05c7506eb68",
      "tree": "139b29fe359550c6999821b9dd499ed228849ed7",
      "parents": [
        "081806e5f2e9f8b573827b0f3d4b35d8ddb64cb9"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:17:22 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: refactor sync_fence_info\n\nSplit the sync_fence_info implementation into multiple functions. This\nclarifies the logic, and allows the parts to be reused in the upcoming\nsync_file_info function.\n\nTest: sync-unit-tests on bullhead\nChange-Id: I0ea37067dddf41b831670f08eb99e0b7fd52adce\n"
    },
    {
      "commit": "081806e5f2e9f8b573827b0f3d4b35d8ddb64cb9",
      "tree": "435c00fbdaa48dac5440db4f91b9a433d5f1abb5",
      "parents": [
        "077ffd5055538e79d20fb5de964083cfbe10dc3f"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sat Feb 11 22:50:02 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: Add NDK sync.h and libsync\n\nThe new header provides an updated interface to libsync appropriate\nfor the NDK. Clients use existing syscalls where possible (e.g. poll()\ninstead of sync_wait()), and the remaining functions return structures\nused in mainline Linux kernels rather than the Android staging sync\nframework.\n\nOver time, framework clients will be migrated to using the NDK\ninterface, which will eventually replace the current internal\ninterface. The only difference is the header will be named\n\u003candroid/sync.h\u003e in the NDK and \u003csync/sync.h\u003e internally.\n\nBug: 35138793\nTest: sync-unit-tests on bullhead\nChange-Id: Ieb3649b80565393e26b604416158438d32c2a256\n"
    },
    {
      "commit": "077ffd5055538e79d20fb5de964083cfbe10dc3f",
      "tree": "d86e67a7aeeb7b9db62a38391a9e56d1cdd10950",
      "parents": [
        "917cca2f04a88c1b307e9a4b75582ca9ecf34444"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:01:36 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: Use correct type in size calculation\n\nThe previous and current types are the same size, so this wouldn\u0027t\nhave caused a bug in practice, but it is confusing, and would have\nbeen a problem in the unlikely event we changed the size of one of the\ntypes.\n\nTest: sync-unit-tests on bullhead\nChange-Id: Ic43b81f3b4ff214af86b6b6d4d02c648f95d0c4b\n"
    },
    {
      "commit": "380b2f4fea745f4db30e5cb2ac7f5a638b33c652",
      "tree": "34ed433f94141e53e955cac62302b17cec64d75c",
      "parents": [
        "9cd890e9b7a1ae1d354815f529a0b3df1dd07aea"
      ],
      "author": {
        "name": "mtezych",
        "email": "mte.zych@gmail.com",
        "time": "Sun Jan 29 19:45:57 2017 +0100"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jan 30 23:39:03 2017 +0000"
      },
      "message": "libsync: Replace inserting tuple into unordered_map in favour of pair.\n\nInserting tuple into unordered_map relies on non standard libc++ extension:\nhttp://stackoverflow.com/a/21313229\nThis change removes this dependency.\n\nTest: sync-unit-tests (on hikey with SW_SYNC_USER built into kernel)\n"
    },
    {
      "commit": "801492b8a66a8f08f99667a4123ce07aa4c0a4f7",
      "tree": "0e2178b062d36bd70952d97b8f82ea17a79ffe21",
      "parents": [
        "e4682802cbeeefe8e870e5b7b110515659a6a14f"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Tue Dec 06 16:13:17 2016 -0200"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:29:41 2017 -0800"
      },
      "message": "libsync: tests: redefine PollOnDestroyedTimeline()\n\nOn mainline if the sw_sync timeline is destroyed the fences doesn\u0027t not\nsignal or error. So change the test to check if the fence is still there\nby polling the fence with timeout zero and asserting if it is not\nsignalled.\n\nTest: Sync unit tests still passes.\nChange-Id: Icb8e629018eef35074ae91d0f29ed1f12e90492b\n"
    },
    {
      "commit": "e4682802cbeeefe8e870e5b7b110515659a6a14f",
      "tree": "5eee4186ed48c7d301e979471ae460d41852ac02",
      "parents": [
        "61ab0d74d218d0be32d0cab1c7ee22c5e12216fe"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Tue Dec 06 16:09:51 2016 -0200"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:29:18 2017 -0800"
      },
      "message": "libsync: tests: remove WaitOnDestroyedTimeline test\n\nThe mainline Sync File implementation doesn\u0027t have wait ioctl anymore.\nOnly poll is supported now, and we already have a test for that.\n\nTest: Sync unit tests still passes.\nChange-Id: Iadde7b2173024af9b8d20316e640297cf214c645\n"
    },
    {
      "commit": "61ab0d74d218d0be32d0cab1c7ee22c5e12216fe",
      "tree": "6525b8365ea63de8459cef0727fe63757d492424",
      "parents": [
        "ffc687baad033ecc96f6c560b205fea61afe9e41"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Sat Jun 11 11:11:19 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:29:01 2017 -0800"
      },
      "message": "libsync: add support to new Sync API\n\nChange libsync functions in a way that it can run dynamically on both\nAPIs.\n\nv2: fix whitespace changes and poll return handling\n\nv3: handle error cases on sync_wait()\n\nTest: Sync unit tests still passes.\nChange-Id: I743ab92ce39cbfa75dca41dd0a435efa9f2aab66\nhange-Id: Ib56f2c6441b41028bc9f66998676790b7713988a\n"
    },
    {
      "commit": "ffc687baad033ecc96f6c560b205fea61afe9e41",
      "tree": "2f361fc5832adc9145a21dbab1bb5f88d4f8edfd",
      "parents": [
        "6786575d42e78c8faa51393871eb958d87d57e08"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Fri Jun 10 16:51:29 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:28:45 2017 -0800"
      },
      "message": "libsync: open new location of sw_sync file\n\nsw_sync file for debug was moved to debugfs. Try to open it and if it\nfails try to open /dev/sw_sync.\n\nTest: Sync unit tests still passes.\nChange-Id: Ie078fbc2eb5294f28b916a9e65b7fcd3a18a8580\nhange-Id: I216874964368d939bed2779d98cd89e527a57d45\n"
    },
    {
      "commit": "6786575d42e78c8faa51393871eb958d87d57e08",
      "tree": "a02b3e2883566bec3a1edbe70e25537c8f5b5e1b",
      "parents": [
        "d6bbc5de66fc7ac51773bc92d6a48a94e622f9b1"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Fri Jun 10 16:24:49 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:28:26 2017 -0800"
      },
      "message": "libsync: add new Sync kernel API\n\nAdd the new API to the internal sync.h file. As there is two different\nAPIs we will need to discovery dynamically which one to use.\n\nv2: Fix Documentation\n\nTest: Sync unit tests still passes.\nChange-Id: I2ab3cd46e48ba5d9c73d54f9583b1a8141566581\n"
    },
    {
      "commit": "d6bbc5de66fc7ac51773bc92d6a48a94e622f9b1",
      "tree": "8d28229412eb8edf4bb4906ce5a94e38a0e0d1d9",
      "parents": [
        "60c763ed52004a3c2330fd8ab7c5b2b6968e7822"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Fri Jun 10 16:09:36 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:28:00 2017 -0800"
      },
      "message": "libsync: move kernel headers for sync ioctls to sync.h\n\nThis patch moves the legacy API to the internal sync.h header\nand add documentation to it.\n\nTest: Sync unit tests still passes.\nChange-Id: I9b17eb23af30043b3df5fb9e857affad68ba8521\n"
    },
    {
      "commit": "1514bb4f2f6a238b48092b61e55a8a8909e059cc",
      "tree": "85c0e569bd036c669b15764d2aef6a8d61955c7f",
      "parents": [
        "b0a15d83191c69f9a1279a09a40929b8b9fa6720"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 12 17:32:55 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 12 18:59:42 2016 -0800"
      },
      "message": "Update for kernel headers v4.8.14.\n\nUpdate sync.c to include the structurs from sw_sync.h. This uapi\nheader has been deleted.\n\nTest: Built mips/arm/arm64/x86/x86_64. Built and booted angler.\nChange-Id: I2495cb17b35f697fb8a2a00f6633ccb53f78293f\n"
    },
    {
      "commit": "36e0d390a2de7d13cdf667d9a7d125f0d66b3107",
      "tree": "b7ae89c6bbe40c5e820b8ddc2e2f073a67794911",
      "parents": [
        "0d762648d0b9cb29f13f3f8cb7815236078fafbd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "message": "Rely on the platform -std default.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I18a1d816d63b64601485045070851f32d44e85eb\n"
    },
    {
      "commit": "10348cbeb916811dd64facfec2620e91df97476d",
      "tree": "864f8d3e7cb9667cac8b0af954543f872207de54",
      "parents": [
        "73d2cc570d10e527af60cfb7fe94cc4902189e66",
        "194edf772e4df2ade86acf97f616243aaef205fc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 29 20:32:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 29 20:32:12 2016 +0000"
      },
      "message": "Merge \"Convert to Android.bp\""
    },
    {
      "commit": "f83c7923f956328a022cddcfcd2d13d797a22a63",
      "tree": "5e2cc230d68bd45de2e2c9de9d36edf7c0a3fb75",
      "parents": [
        "091b631915c68c801bbded01ac8bb3a7af18436e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 24 14:49:18 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 26 16:48:18 2016 -0700"
      },
      "message": "Update for kernel headers v4.7.2.\n\nThe new uapi kernel headers added a new SEGV reason code, so\nadd it to the tombstone code.\n\nUpdate sync.c to include the needed data structures itself. Someone\nelse will be fixing this to work on old versus new kernels.\n\nChange-Id: Icb27713ea38a20003c7671a9bca262eebd96099b\n"
    },
    {
      "commit": "194edf772e4df2ade86acf97f616243aaef205fc",
      "tree": "32bb95c53295dcccdde4afa28eeb1cec46f36f39",
      "parents": [
        "091b631915c68c801bbded01ac8bb3a7af18436e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Aug 26 15:01:36 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Aug 26 16:19:21 2016 -0700"
      },
      "message": "Convert to Android.bp\n\nSee build/soong/README.md for more information.\n\nI tested the following tests on a Nexus9 and linux host, and they\ncontinued to pass:\n\n/data/nativetest{,64}/bootstat_tests/bootstat_tests\nout/host/linux-x86/bin/nativetest{,64}/bootstat_tests/bootstat_tests\n/data/nativetest64/memunreachable_test/memunreachable_test\nout/host/linux-x86/bin/nativetest{,64}/memunreachable_test/memunreachable_test\n\nThese continue to fail just like before this change:\n\n/data/nativetest{,64}/sync_test/sync_test (was /system/bin/sync_test)\n/data/nativetest{,64}/sync-unit-test/sync-unit-test\n/data/nativetest/memunreachable_test/memunreachable_test\n\nTest: See above\nChange-Id: I691e564e0cf008dd363e3746223b153d712e024d\n"
    },
    {
      "commit": "d86dd3b8383f02e6bd7e01561b87411ebf08c670",
      "tree": "31b9f2a1c51134f8420ac7cca2dd8dea85b8ca3d",
      "parents": [
        "a90aa13b5b8783be8491095ae11c653e5df807b3"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 13:47:32 2016 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 15:03:58 2016 -0700"
      },
      "message": "libsync: add static library for recovery\n\nChange-Id: If43188c3b4b16c698c077338ea0ef1dfd16b9c56\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "a90aa13b5b8783be8491095ae11c653e5df807b3",
      "tree": "d824190cf3f89ad2345982fa64bffe275d1a36c6",
      "parents": [
        "5f851752d36eb6b15ecf4e18871624810f771810"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 10:07:28 2016 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 14:50:39 2016 -0700"
      },
      "message": "libsync: remove unused liblog dependency\n\nChange-Id: I69840ece3f13809b2440edbe6cfa412a56aee4aa\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "e7aa2b2c8378b458345477d1f6d9904490263bb6",
      "tree": "125b6116858579422945357b40930b5738a94eab",
      "parents": [
        "d1ec9c450d8dc9d24b5f0254111449ecfcbeaea6"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Mar 02 14:02:55 2016 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Mar 07 18:40:40 2016 -0800"
      },
      "message": "Cleanup uses of sprintf so we can deprecate it.\n\nAlso cleans up two instances of open() with useless mode params, and\nchanges a few uses of snprintf to use sizeof(buffer) instead of\nhardcoded buffer sizes.\n\nChange-Id: If11591003d910c995e72ad8f75afd072c255a3c5\n"
    },
    {
      "commit": "a7c7bce252a6bce1539e9caa84420de3698029e7",
      "tree": "e9118ab62eaecc0309cc2daf9a70736de15d8074",
      "parents": [
        "1e2382a0277eb36fb57a3a54202945556dfd234b"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Nov 05 10:07:53 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Nov 05 10:07:53 2015 -0800"
      },
      "message": "Fix isValid() condition for libsync tests\n\nUpstream modifications in K3.12 to the sw_sync driver set O_CLOEXEC on\nthe fd\u0027s returned by the SW_SYNC_IOC_CREATE_FENCE ioctl, therefore we\ncheck the return of fcntl() for a non-negative value instead of strictly 0.\n\nChange-Id: If4c82750fcc0aa3a57f243fa2a94691e3150e4a4\n"
    },
    {
      "commit": "bcc2b5f44a39c5843eea2449cad66b8dce8721ee",
      "tree": "f82035e8ebdd668b117c47f1db8f65469b5b91f2",
      "parents": [
        "2159318647b6032a9d752012b923c579dc1f80da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 02 14:31:07 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 02 14:31:07 2015 -0700"
      },
      "message": "Remove LOCAL_ADDITIONAL_DEPENDENCIES in cases where it\u0027s not needed.\n\nChange-Id: I720b8ef1050da45a7833adef8219b6acb2cf3a38\n"
    },
    {
      "commit": "d0a793dca3c208ab04b67cd7dc0126a3d394d8dd",
      "tree": "603590d040d6f6c5dd775fa2955be082343a9350",
      "parents": [
        "42f1192273f3d05531c3fcfc8ce0fe5c437f6b7f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 27 11:23:07 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 27 11:24:04 2015 -0700"
      },
      "message": "Remove uses of libcxx.mk.\n\nThis is a no-op.\n\nChange-Id: Iecbcd5f6d818abbf98767a2e996c10f454b652e4\n"
    },
    {
      "commit": "a744b05984a963966cec08758ffe582d241be9d7",
      "tree": "f9bde7bcbcc5f3e49cafe045b5951d3acdf27d23",
      "parents": [
        "9c4c5a6ed934490ba0fcce661594975a6f4c2c89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "message": "Add missing \u003cmalloc.h\u003e and \u003cstring.h\u003e includes.\n\nChange-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913\n"
    },
    {
      "commit": "d0d7f6ac082184ee88bb34224f41537c140d98e5",
      "tree": "4df3219a7c5f63919da483a03f799c04daf4479e",
      "parents": [
        "6b66025f6f3e48d182e8d6aeb989d0f39eb551e3"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Thu Jun 05 19:34:40 2014 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Sat Oct 11 02:10:23 2014 +0000"
      },
      "message": "Add gtest conformance tests for libsync.\n\nNot complete yet, but substantially more comprehensive than the\ninteractive test that was there before.\n\n(cherry-picked from internal master, same change-id).\nChange-Id: I9019b0a8babbc91f78aa850e0e288bbf05f93500"
    },
    {
      "commit": "af7749891a9cd44b0ecbf7caceb87e70ed208c69",
      "tree": "ba69dc0724b577e0a5b5cb96d461eec00004a44d",
      "parents": [
        "249c26de823be0f9a84a9f092c776bcd9830fba5"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 15 15:09:45 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 21 12:58:38 2014 -0700"
      },
      "message": "libsync: Turn on -Werror\n\nChange-Id: Ie34f935694034a069e844be64d6011eb9e3f9869\n"
    },
    {
      "commit": "ddc20de1483028ee0b4401266499a59631e9d659",
      "tree": "afe715bfbf684fcb3fe9c38b490eb80c857329f6",
      "parents": [
        "f5447b0eb9cd2157f4935477f05d4c92dcda37c8"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jan 02 19:31:53 2014 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@android.com",
        "time": "Fri Jan 03 21:27:05 2014 +0000"
      },
      "message": "move sync headers from include to libsync\n\nMake sw_sync.h private\n\nChange-Id: I0b120ebe81fd4a191b7aa4b6a8de4f64d16e2b3e\n"
    },
    {
      "commit": "984d35703d5c6738253193bd53da9dedb3b58243",
      "tree": "0f1d442fab3c7bde6497e6aba2adacbfad487fe8",
      "parents": [
        "6302b420554724c1434e27e2cd46cb43f5fb7bca"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Aug 21 18:21:18 2012 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Aug 21 18:21:18 2012 -0700"
      },
      "message": "update libsync to support new timeout semantics\n\nChange-Id: Ibedbd261bb96a84785c4e679b6fc4061287d5d7d\n"
    },
    {
      "commit": "a4ad73480896c6bc7960331dcfca87a358cc5782",
      "tree": "f1ef9b52acc8cbae4e112c2af7808cbe18a9d063",
      "parents": [
        "3fc95a991805feba257a396c13548776fd36f34f",
        "00f0691107dfde589bd23a7d079b4e05998833b0"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 21 09:12:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 21 09:12:12 2012 -0700"
      },
      "message": "am 00f06911: am c6620cb3: Merge \"Fixing unused param warnings in sync_test\"\n\n* commit \u002700f0691107dfde589bd23a7d079b4e05998833b0\u0027:\n  Fixing unused param warnings in sync_test\n"
    },
    {
      "commit": "b6279689edecc898bd9622f4ac562239650815bc",
      "tree": "712e67a483f44bba2c19541cca66ddae4dbd929e",
      "parents": [
        "605f8706c88b2cd5d024b0a6b7253a78d968ba72"
      ],
      "author": {
        "name": "Edwin Vane",
        "email": "edwin.vane@intel.com",
        "time": "Thu Jul 26 15:36:21 2012 -0400"
      },
      "committer": {
        "name": "Edwin Vane",
        "email": "edwin.vane@intel.com",
        "time": "Mon Aug 13 12:42:26 2012 -0400"
      },
      "message": "Fixing unused param warnings in sync_test\n\nChange-Id: Ia37a0118397ddece376bfbad7627d83263c1993f\nAuthor: Edwin Vane \u003cedwin.vane@intel.com\u003e\nReviewed-by: Kevin P Schoedel \u003ckevin.p.schoedel@intel.com\u003e\n"
    },
    {
      "commit": "3be33e46187bfb1e42099bb4ba061a494356576c",
      "tree": "c98cfa51f4f167a22c3e72f1bb5ab293166df603",
      "parents": [
        "4d4cc9ecc74ca7df7453b73e8ed62ff36c658f09"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 13 16:40:54 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Jun 19 09:52:24 2012 -0700"
      },
      "message": "libsync: remove linux includes from sync/sync.h\n\nThis change removes the #includes of \"linux/*.h\" headers from the libsync\nheader.  It currently does this by copying the needed structs that are in the\nlinux headers.  This is intended to be a temporary solution.\n\nChange-Id: Ie7e1a8e05fcf8809ba4aa0e2427efe141dae5327\n"
    },
    {
      "commit": "196b3a5f6f48649500909c66177967abaf05b898",
      "tree": "0451a808b8172db8bfdc37afedc335e7cd71f66c",
      "parents": [
        "545ab46063f083239b29e59b8b491656d93f2a38"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Mar 07 15:30:33 2012 -0800"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Apr 18 13:36:17 2012 -0700"
      },
      "message": "sync: Add lib sync helper library\n\nUsed to talk to kernel synchronization framework\n\nChange-Id: I66e1f4a90f5d58d384bf1cec09db52101f182c5e\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    }
  ]
}
