)]}'
{
  "log": [
    {
      "commit": "b42d32c0ffad37dc4569bce0b0564ca88deb9adc",
      "tree": "e11cd9ebe150b4eddd293c64bca43fbb82464c5c",
      "parents": [
        "6296919847ee089da1c4b8a7dbf398d8165df134",
        "9a7b7d97b36cb09388e26cf01ce507a84f4e917a"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Fri Oct 16 10:56:12 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 16 10:56:12 2026 -0700"
      },
      "message": "Merge \"gbl: Select active NIC with link in EFI network discovery\" into gbl-mainline"
    },
    {
      "commit": "6296919847ee089da1c4b8a7dbf398d8165df134",
      "tree": "50993021600b6374455141106558f7c73481807f",
      "parents": [
        "d8b2357ff889dde894e28946d813242defadec78",
        "ab6aa81069b06a53bd830a359776742d39ffa00b"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Oct 16 09:55:47 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 16 09:55:47 2026 -0700"
      },
      "message": "Merge \"gbl: Enable x86_64 QEMU fastboot misc test\" into gbl-mainline"
    },
    {
      "commit": "d8b2357ff889dde894e28946d813242defadec78",
      "tree": "769444448639f9c2481d7106237aeb4c2e9a24ec",
      "parents": [
        "dccdb070297c6147c44db5c4f3818fd6b9f0ed0e",
        "1b692e92bdd12e7134dc71adc2a9897e9ce11ca4"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Oct 16 08:12:34 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 16 08:12:34 2026 -0700"
      },
      "message": "Merge \"gbl: Use globs and rust/bindgen/avb.h in BUILD.avb.bazel\" into gbl-mainline"
    },
    {
      "commit": "1b692e92bdd12e7134dc71adc2a9897e9ce11ca4",
      "tree": "5e13e87149a7c662ba880a15ff7b3b9f4b01916b",
      "parents": [
        "f561c0f156e57cf228ec12c8d7b3ec603362a2c2"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Thu Oct 15 11:49:50 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Oct 16 07:49:10 2026 -0700"
      },
      "message": "gbl: Use globs and rust/bindgen/avb.h in BUILD.avb.bazel\n\nReplace hardcoded lists of libavb/ and libavb_cert/ C source and header\nfiles in BUILD.avb.bazel with glob() rules, exclude files that GBL\noverrides via exclude_files on @avb in MODULE.bazel (so renames/removals\nfail loudly at repo creation time), exclude the unused libavb/crypto/**\nfallback backend in glob(), and include external/avb\u0027s existing\nrust/bindgen/avb.h in bindgen_unified_header.\n\nThis reduces coupling to external/avb\u0027s internal file layout so adding\nor renaming source/header files in external/avb does not break the GBL\nbuild.\n\nTAG\u003dagy\nCONV\u003d9c9c2d33-cb1b-4df4-b41a-cc6d196e4b3e\n\nBug: 325316529\nTest: tools/bazel build //bootable/libbootloader:gbl_efi_dist @gbl//tests\nTest: tools/bazel test @gbl//tests\nChange-Id: I68b131bf0cbcb44ed3e334e88f215acb8c2e4bb5\n"
    },
    {
      "commit": "ab6aa81069b06a53bd830a359776742d39ffa00b",
      "tree": "d81fc70ce8b85fb12d6dedf6553a1600c7e11972",
      "parents": [
        "2dd770ca56dd66b6cc1358f0a535a4c6e7093614"
      ],
      "author": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Wed Oct 14 23:17:41 2026 +0000"
      },
      "committer": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Fri Oct 16 00:45:30 2026 +0000"
      },
      "message": "gbl: Enable x86_64 QEMU fastboot misc test\n\nAdd x86_64 support for QEMU tests to verify GBL fastboot misc commands\nand BoringSSL assembly optimizations (CRYPTO_has_asm) on x86_64:\n\n- Implement x86_64 semihosting in libsemihosting using COM1 serial I/O,\n  QEMU fw_cfg DMA for command line retrieval, and ACPI S5 / isa-debug-exit\n  for guest shutdown.\n- Add x86_64 arch_timestamp() via rdtsc in libutils and R_X86_64_RELATIVE\n  relocation handling in libelf.\n- Configure x86_64 ELF C and Rust toolchains (x86_64-unknown-none) and\n  add gbl_launcher_x86_64 and test_kernel_x86_64 with a Linux bzImage\n  64-bit entry stub.\n- Update qemu_test and qemu_launcher.py to support x86_64 and add\n  qemu_fastboot_misc_test_x86_64.\n\nBug: 562774024\nTest: ./bazel.sh test @gbl//tests\nChange-Id: I624efa164aafe388a12f2b68c9d81531a59b404c\n"
    },
    {
      "commit": "dccdb070297c6147c44db5c4f3818fd6b9f0ed0e",
      "tree": "3c8b45bff070237fe03495f506f40ef8486f979e",
      "parents": [
        "f561c0f156e57cf228ec12c8d7b3ec603362a2c2",
        "9eed43682bed876bcd09634baebed88aa8551519"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Oct 15 12:19:40 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 15 12:19:40 2026 -0700"
      },
      "message": "Merge \"docs: Clarify that firmware reports vendor-specific fastboot variables\" into gbl-mainline"
    },
    {
      "commit": "9eed43682bed876bcd09634baebed88aa8551519",
      "tree": "bf788e7174f5865b7d9f46d1b45d1dd3a9a12e9c",
      "parents": [
        "3840b669d62d8d40dbcb33c6e3d866cf5444ea00"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Thu Oct 15 18:53:59 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Thu Oct 15 19:00:57 2026 +0000"
      },
      "message": "docs: Clarify that firmware reports vendor-specific fastboot variables\n\nCommon fastboot variables such as \"secure\" or \"serialno\" are reported by\nmost vendor bootloaders, but their values come from vendor-specific\ndevice state that GBL can\u0027t access and doesn\u0027t consume.\nGBL_EFI_FASTBOOT_PROTOCOL already lets firmware report them via GetVar()\nand GetVarAll(), so document that instead of extending the GBL protocols\nfor each such variable.\n\nBug: 500201602\nTest: N/A, documentation only\nFlag: EXEMPT DOCS_ONLY\nChange-Id: I23bf6d2fb980ea9cc47d0cae314b784b649dc632\n"
    },
    {
      "commit": "f561c0f156e57cf228ec12c8d7b3ec603362a2c2",
      "tree": "de339e59b4786840f98d5524861868a61d5afb9b",
      "parents": [
        "3840b669d62d8d40dbcb33c6e3d866cf5444ea00",
        "89d4f5326e0cc0744e484d05f2b69e72a85275d8"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Oct 15 09:34:58 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 15 09:34:58 2026 -0700"
      },
      "message": "Merge \"libabr, liberror: Use local Error in libabr and integrate into liberror\" into gbl-mainline"
    },
    {
      "commit": "9a7b7d97b36cb09388e26cf01ce507a84f4e917a",
      "tree": "de4c864cc7f2972a5efe1d1f0f630f018a808157",
      "parents": [
        "3840b669d62d8d40dbcb33c6e3d866cf5444ea00"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Fri Oct 09 00:40:06 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 14 14:13:36 2026 -0700"
      },
      "message": "gbl: Select active NIC with link in EFI network discovery\n\nPrefer a physical network interface with an active link during UEFI\nnetwork discovery while ignoring child virtual network handles, falling\nback to the first root interface if no link is detected.\n\nBug: 501435156\nBug: 497937685\nTest: ./bazel.sh test @gbl//efi:test @gbl//efi:test_dev @gbl//libefi:mocks_test\nChange-Id: I756632bda9f319b534ee892761a4671da67a68d1\n"
    },
    {
      "commit": "3840b669d62d8d40dbcb33c6e3d866cf5444ea00",
      "tree": "d633b04db8e96121a9ba471f68257130beabf45b",
      "parents": [
        "74e87564aeb9815d3b61bfd04c4598104f5217bf",
        "65f81b473357ad945b39a2bf67b1efa4c8c6f505"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Oct 14 09:50:49 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 14 09:50:49 2026 -0700"
      },
      "message": "Merge \"libabr: Port Fuchsia libabr v2.3 changes\" into gbl-mainline"
    },
    {
      "commit": "74e87564aeb9815d3b61bfd04c4598104f5217bf",
      "tree": "89dac934ed345bf59ed592331fbc1efbf5d8d87e",
      "parents": [
        "c639bfece4d47723c510d2ea725c36fd98a0cca1",
        "2b9bd133418c352b4b525c525e04ec2cbeaa4185"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Oct 13 22:08:06 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 13 22:08:06 2026 -0700"
      },
      "message": "Merge \"os_config: add kernel command line fixup method\" into gbl-mainline"
    },
    {
      "commit": "89d4f5326e0cc0744e484d05f2b69e72a85275d8",
      "tree": "dd530d833ed62583e448517b59fa3f641eeb7ab3",
      "parents": [
        "65f81b473357ad945b39a2bf67b1efa4c8c6f505"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Oct 14 02:25:14 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Oct 14 02:25:14 2026 +0000"
      },
      "message": "libabr, liberror: Use local Error in libabr and integrate into liberror\n\nDefine a standalone Error and Result type in libabr so that libabr and\nlibabr_c have no external crate dependencies when built standalone\n(e.g. in the Fuchsia source tree). Integrate abr::Error into\nliberror::Error via Error::AbrError(abr::Error) and From\u003cabr::Error\u003e.\n\nBug: 336318818\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests @gbl//libabr:libabr_tests\nChange-Id: Ib2cae3dd092ae28b768e7565ed91f88009281eb1\n"
    },
    {
      "commit": "65f81b473357ad945b39a2bf67b1efa4c8c6f505",
      "tree": "df0e74d58183125f8e0ed845728d2021674b84c2",
      "parents": [
        "c639bfece4d47723c510d2ea725c36fd98a0cca1"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Oct 12 04:34:15 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Oct 14 00:08:11 2026 +0000"
      },
      "message": "libabr: Port Fuchsia libabr v2.3 changes\n\nBump ABR_MINOR_VERSION to 3 and port upstream Fuchsia libabr changes:\n- Add UnbootableReason metadata and preserve it across slot normalization.\n- Record NoMoreTries when boot attempts reach zero in get_boot_slot().\n- Add from_unbootable_ok parameter to mark_slot_successful().\n- Expose get_normalized_priority() and get_active_slot_from_data() in Rust\n  and C staticlib interfaces.\n\nBug: 336318818\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests @gbl//libabr:libabr_tests\nChange-Id: I27524ad8af0ca075247818961f8b358658be7101\n"
    },
    {
      "commit": "c639bfece4d47723c510d2ea725c36fd98a0cca1",
      "tree": "bb533df3335522dd0faa7beb006ca161183be079",
      "parents": [
        "2dd770ca56dd66b6cc1358f0a535a4c6e7093614"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Fri Oct 09 00:40:12 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 13 15:24:46 2026 -0700"
      },
      "message": "gbl: Honor one-shot recovery mode in Fuchsia boot\n\nBoot into the Fuchsia recovery slot when the platform boot control\nprotocol requests a one-shot recovery boot instead of ignoring the\nrequest and booting the active A/B slot.\n\nThe hardware-triggered request is honored in memory for the current\nboot only and is not persisted to A/B/R metadata, matching the Android\nboot flow and the GetOneShotBootMode() contract.\n\nBug: 501435156\nBug: 445679472\nTest: ./bazel.sh test @gbl//tests\nChange-Id: I4665301899775d7a041e5bbe3880f07823993970\n"
    },
    {
      "commit": "2dd770ca56dd66b6cc1358f0a535a4c6e7093614",
      "tree": "88afcdb274d0c50aa3e20fd4c757f803d959604c",
      "parents": [
        "246b51cbffbfd4b4cbc6640b902cc932e551a4fe",
        "bdfc6040b238f693d6d9d2f3f043728601961de3"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Oct 09 00:04:19 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 09 00:04:19 2026 -0700"
      },
      "message": "Merge \"gbl: Fix the kernel_sz doc and shorten the load comment\" into gbl-mainline"
    },
    {
      "commit": "2b9bd133418c352b4b525c525e04ec2cbeaa4185",
      "tree": "16b2f9f52f3da5c2f8bbcbb35155af672b93c18e",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Thu Oct 08 03:58:40 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Fri Oct 09 04:15:24 2026 +0000"
      },
      "message": "os_config: add kernel command line fixup method\n\nRe-introduce GBL_EFI_OS_CONFIGURATION_PROTOCOL.FixupKernelCommandLine()\nand bump the protocol revision to 1.1.\n\nThe method was removed in aosp/3653636 in favour of fixing up the\nkernel command line through EFI_DT_FIXUP. Both are valid options, but\nx86_64 platforms may not have a device tree, so they need a way to fix\nup the kernel command line that doesn\u0027t depend on it.\n\nBug: 555762992\nChange-Id: I4d0b1745e6c9b81edbe6dbe8cbe7897f9199502d\n"
    },
    {
      "commit": "246b51cbffbfd4b4cbc6640b902cc932e551a4fe",
      "tree": "c3a036bc2120ad1d4bfe75cae3b19ab1974cc1e1",
      "parents": [
        "a1d47612f47c74788a74f8cae128f1988bcc27e2",
        "856c35c903c48f62dede00154359dce3e0d7277a"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Oct 08 19:18:18 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 08 19:18:18 2026 -0700"
      },
      "message": "Merge \"gbl: Reserve the x86 EFI memory-map handoff buffer\" into gbl-mainline"
    },
    {
      "commit": "a1d47612f47c74788a74f8cae128f1988bcc27e2",
      "tree": "fdc11c6d4945e56c7c377f68ec221cd20d5518a8",
      "parents": [
        "6ce958c1b467dbf64b1d80e0e0b06009e96c5ba7"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Thu Oct 08 15:42:51 2026 -0700"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Oct 08 22:55:07 2026 +0000"
      },
      "message": "gbl: Fix build and test failures with Bazel 9.2.0\n\nFix four compatibility issues triggered by upgrading Bazel to 9.2.0:\n\n1. Register host_dev_test_toolchain in gbl/toolchain/BUILD so host\n   dev_test targets transitioned to @gbl//toolchain:host_x86_64_dev can\n   resolve @bazel_tools//tools/test:default_test_toolchain_type on the\n   default host execution platform.\n2. Pass -isystem instead of -I for builtin_includes in\n   _gbl_clang_cc_toolchain_config_impl so Clang treats musl sysroot\n   headers (such as endian.h) as system headers and does not fail on\n   -Werror,-Wbitwise-op-parentheses or -Werror,-Wshift-op-parentheses.\n3. Enable the system_include_paths feature in\n   _gbl_clang_cc_toolchain_config_impl so Starlark cc_library in Bazel 9\n   emits -isystem instead of -I for includes attributes, preventing\n   @gbl//libc:headers from shadowing C++ standard library and musl\n   sysroot headers in host tests.\n4. Add a stub @com_google_protobuf//bazel/common:proto_info.bzl in\n   gbl/fake_modules/protobuf required by Starlark rules_cc in Bazel 9+.\n\nBug: 382503065\nTest: ./bazel.sh build //bootable/libbootloader:gbl_efi_dist @gbl//tests\nTest: ./bazel.sh test @gbl//tests\nChange-Id: Ia6fed4739cccfa91962877aba3c78938dbcab5b3\n"
    },
    {
      "commit": "6ce958c1b467dbf64b1d80e0e0b06009e96c5ba7",
      "tree": "cf0b58e082dac96a3a9fe5a7ce70f2d946ca2165",
      "parents": [
        "0b7e398852706fa975a27dcad9eb81d95e388ad3"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Sep 22 16:53:33 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Oct 08 19:09:11 2026 +0000"
      },
      "message": "gbl: Disable pac-ret for aarch64 tracing builds\n\nmcount instrumentation overrides function return addresses on the\nstack with an unsigned trampoline address (mcount_return_override),\nwhich fails authentication on function epilogue (autiasp) when\npac-ret is enabled in hardware.\n\nUpdate the aarch64 UEFI C and Rust toolchains and mcount_entry.S to\nonly enable BTI when tracing is enabled, and enable hardware PAC\n(SCTLR.EnIA) in gbl_launcher for QEMU tests.\n\nBug: 563026181\nTest: ./bazel.sh build @gbl//tests/qemu:qemu_trace_test\nTest: ./bazel.sh build @gbl//tests/qemu:qemu_fastboot_misc_test\nChange-Id: I43fe4c298784b9650db033d5a46977be7f32b38e\n"
    },
    {
      "commit": "856c35c903c48f62dede00154359dce3e0d7277a",
      "tree": "2834a2b404bbb75b1cd1813a986addaf1738396c",
      "parents": [
        "0b7e398852706fa975a27dcad9eb81d95e388ad3"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Fri Sep 11 12:16:07 2026 -0700"
      },
      "committer": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Thu Oct 08 10:33:50 2026 -0700"
      },
      "message": "gbl: Reserve the x86 EFI memory-map handoff buffer\n\nThe direct x86 path hands Linux an EFI memory map that lives in\n`remains`, which is bootloader-owned reclaimable RAM. It appears in\nthe map as EfiLoaderData and so reaches Linux as usable E820, and the\nkernel reuses it for early allocations before efi_init() parses it.\nThe map is already corrupted when it is read, and the fault lands\nbefore any console is registered, so the boot dies silently.\n\nAllocate the buffer as EfiACPIReclaimMemory instead, as the Linux EFI\nstub does, before the final GetMemoryMap(), so the map it returns\ndescribes the buffer as reserved. Neither the kernel nor its\ndecompressor allocates from E820 ACPI, so the map survives until it\nis consumed.\n\nSize it from the capacity the firmware reports for a zero-length\nbuffer rather than from a map GetMemoryMap has already returned. A\nsuccessful call reports the map as written, and firmware that\ncompacts its OS-facing map writes fewer bytes than the next call\ndemands, so sizing from an earlier map left the final GetMemoryMap\nshort and the boot died with EFI_BUFFER_TOO_SMALL. Add back\nBootServices::memory_map_size() for this; it was removed while it had\nno user. Round up to whole\npages and add one page of headroom for the descriptors the allocation\nitself adds; every step of the arithmetic is checked.\n\nTest: tools/bazel test --config\u003dgbl @gbl//tests\nTest: tools/bazel build --config\u003dgbl @gbl//efi:x86_64_dev\nTest: tools/bazel build --config\u003dgbl @gbl//efi:x86_64_prod\nChange-Id: Iea68f5afe2dcb31a93d10201a6a051a5418f6b66\n"
    },
    {
      "commit": "bdfc6040b238f693d6d9d2f3f043728601961de3",
      "tree": "ca2e6f5e4d670d9e330d8fce882f69d353a406b9",
      "parents": [
        "0b7e398852706fa975a27dcad9eb81d95e388ad3"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Thu Oct 08 09:53:13 2026 -0700"
      },
      "committer": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Thu Oct 08 10:06:57 2026 -0700"
      },
      "message": "gbl: Fix the kernel_sz doc and shorten the load comment\n\nkernel_sz holds the decompressed image size since the kernel slice\nchange, not the reserved region size. Update its doc, and cut the\ncomment where it is set to one line; the rationale is in that\nchange\u0027s description.\n\nTest: tools/bazel test --config\u003dgbl @gbl//tests\nChange-Id: I079d732d560b6637c5901ee487de086631aaa0c4\n"
    },
    {
      "commit": "0b7e398852706fa975a27dcad9eb81d95e388ad3",
      "tree": "dee4d4359491833fd33219727c9c8303f3975691",
      "parents": [
        "378ee99b54b40bb40ecb3e6f49c237f27de09065",
        "c4958a0ab887e290b9c3e110a2fe0bd8d319c3f9"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Thu Oct 08 07:47:51 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 08 07:47:51 2026 -0700"
      },
      "message": "Merge \"libmisc, libgbl: Remove unused memtag message support\" into gbl-mainline"
    },
    {
      "commit": "378ee99b54b40bb40ecb3e6f49c237f27de09065",
      "tree": "ea4678ee26f77b351c45b1047bf39efc1f63d027",
      "parents": [
        "0cac9e0d99e6706b8d34c41590e3e6d93c2c3ec0",
        "b790b99e6e60dde457c0a790b9f28df30671ba76"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Thu Oct 08 07:31:32 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 08 07:31:32 2026 -0700"
      },
      "message": "Merge \"libfastboot, libstorage, libfdt, liblp: Remove dead code and move test helpers\" into gbl-mainline"
    },
    {
      "commit": "0cac9e0d99e6706b8d34c41590e3e6d93c2c3ec0",
      "tree": "cec05b7c3b0afc903f83fac9496feb97044f170e",
      "parents": [
        "b6f04aadf921e1256244d2d7e6342a10aa30fa67",
        "7406a2dff60f4adedb51721ea34cbffd142ba144"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Oct 08 07:07:36 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 08 07:07:36 2026 -0700"
      },
      "message": "Merge \"libefi: Tell the initrd size query apart from a short buffer\" into gbl-mainline"
    },
    {
      "commit": "b6f04aadf921e1256244d2d7e6342a10aa30fa67",
      "tree": "fb815e33978b7bdfd8a6463a13894a59325bb7e0",
      "parents": [
        "bfca7b484c420b1e8223fe8d604384d88bbd1fe4"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Thu Sep 17 16:04:00 2026 -0700"
      },
      "committer": {
        "name": "Tsai, Gaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Wed Oct 07 17:32:31 2026 -0700"
      },
      "message": "gbl: Pass the exact kernel size to the EFI image loader\n\nBoot image parsing rounds the kernel range up to a page boundary and\nhands that padded range to the consumer. On the EFI boot stub path the\nconsumer is BS.LoadImage(), which authenticates the bytes it is given.\n\nAuthenticode covers the whole image, so the padding is not ignored. A\n14,060,856 byte signed kernel is passed as 14,061,568 bytes, the hash\ndoes not match, and the firmware returns EFI_ACCESS_DENIED.\n\nAdd an exact kernel range next to the page-aligned one and return it\nto the image consumers. The page-aligned range still locates the\nramdisk and the pvmfw configuration.\n\nTest: tools/bazel test --config\u003dgbl @gbl//libgbl:libgbl_test\nTest: tools/bazel build --config\u003dgbl @gbl//efi:x86_64_dev_bootstub\nChange-Id: I5b18561a3121c5facfd7910eb0eb947061ef50a1\n"
    },
    {
      "commit": "bfca7b484c420b1e8223fe8d604384d88bbd1fe4",
      "tree": "550df04ae43246f8b7546bf4d3d5d59c78d2e74f",
      "parents": [
        "bf605fff1dcfa902e0968ea1af1ec1d41afcce29"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Wed Aug 26 15:56:36 2026 -0700"
      },
      "committer": {
        "name": "Tsai, Gaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Wed Oct 07 17:32:27 2026 -0700"
      },
      "message": "gbl: Keep the kernel slice at the decompressed image length\n\nkernel_sz is set from KernelAttributes::reserved_size, which is the\nruntime footprint the kernel needs, not the size of the image. On\naarch64 and riscv64 that is max(file length, header image_size), so the\nslice returned by android_load_verify_fixup can run past the bytes\ndecompress_kernel wrote.\n\nConsumers do use that length. The aarch64 path cache-cleans the supplied\nrange before jumping, the x86 path copies the slice to its load address,\nand the EFI boot stub path passes its length to LoadImage() as\nSourceSize.\n\nKeep reserved_size for the buffer reservation and set kernel_sz to the\ndecompressed length.\n\nTest: tools/bazel test --config\u003dgbl @gbl//tests\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: Ic25f2ac749eca77a48fd85e2f0cfcfb4ff5a25ae\n"
    },
    {
      "commit": "7406a2dff60f4adedb51721ea34cbffd142ba144",
      "tree": "10d53988b2d89d0a1c593af751ae28efc57fa1a3",
      "parents": [
        "bf605fff1dcfa902e0968ea1af1ec1d41afcce29"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Tue Aug 25 14:17:49 2026 -0700"
      },
      "committer": {
        "name": "Tsai, Gaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Wed Oct 07 17:32:20 2026 -0700"
      },
      "message": "libefi: Tell the initrd size query apart from a short buffer\n\nInitrdLoadFile2Protocol logs \"buffer too small\" for the size query as\nwell as for a genuinely undersized buffer, so a healthy boot prints what\nreads as a failure. It is the opposite of one: the Linux stub calls\nload_file with a null buffer first and treats any status other than\nEFI_BUFFER_TOO_SMALL as EFI_LOAD_ERROR, in efi_load_initrd_dev_path in\ndrivers/firmware/efi/libstub/efi-stub-helper.c. That response is the\ncontract.\n\nSplit the two cases. The size query now reports the size it is answering\nwith, and a caller that did supply a buffer still gets both numbers. The\nreturned status is unchanged in both, and the tests now assert on the\ntwo messages so the distinction cannot regress silently.\n\nBug: 477970734\nTest: tools/bazel test --config\u003dgbl @gbl//tests\nTest: booted an x86_64 UEFI device through the EFI boot stub\nChange-Id: Idbcf23253bce65868db8a8ef2a89bdd4a54902a0\n"
    },
    {
      "commit": "bf605fff1dcfa902e0968ea1af1ec1d41afcce29",
      "tree": "b8dbc0875fc7e175be8f4caf4897cd831d2e60d4",
      "parents": [
        "ed42b415a90574281ac8c0b806ef7d41f4a852db",
        "7aa729c60ca65c9ee102ff28c8957b981eb4bfce"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 15:49:13 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 07 15:49:13 2026 -0700"
      },
      "message": "Merge \"gbl: Harden UEFI/ELF linker flags and AArch64 branch protection\" into gbl-mainline"
    },
    {
      "commit": "ed42b415a90574281ac8c0b806ef7d41f4a852db",
      "tree": "44eb069d32754abac3428c88449830982e0a5394",
      "parents": [
        "fb149491b0d6c1f6931ee8c6a8a57ec5bd31162c",
        "eb1ee3b7876048255cd7eb5a54929f4330494132"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 14:38:55 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 07 14:38:55 2026 -0700"
      },
      "message": "Merge \"libefi, libefi_types, libefi_virtio_vsock: Remove dead EFI utilities\" into gbl-mainline"
    },
    {
      "commit": "fb149491b0d6c1f6931ee8c6a8a57ec5bd31162c",
      "tree": "71190bf4adb0f41273c78f096493717a681b4f76",
      "parents": [
        "bb7dc50ebfe96dd579a10cdf16a87a2a14548bb9",
        "07dab6fe8da4ea2a9a31173295e343fe0aa7a10c"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 14:33:42 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 07 14:33:42 2026 -0700"
      },
      "message": "Merge \"libgbl: Remove dead code and move test-only helpers\" into gbl-mainline"
    },
    {
      "commit": "bb7dc50ebfe96dd579a10cdf16a87a2a14548bb9",
      "tree": "b6fd8bfa0cb5b8ea2e1ca869ac33b56458512e8e",
      "parents": [
        "bd4798558bd46c3612da20100d0a0b892ea15f27",
        "51c0c0c9eb78e856c4db21a0f4372def4ae24b0a"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 14:33:05 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 07 14:33:05 2026 -0700"
      },
      "message": "Merge \"gbl: Remove dead foundation utilities and unused BUILD dependencies\" into gbl-mainline"
    },
    {
      "commit": "7aa729c60ca65c9ee102ff28c8957b981eb4bfce",
      "tree": "e2d6629e563548444601d68095c4bdd53feb2b60",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 10:19:18 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 14:31:10 2026 -0700"
      },
      "message": "gbl: Harden UEFI/ELF linker flags and AArch64 branch protection\n\nPass target-appropriate hardening flags to `lld` via C/C++ toolchains\n(which `rules_rust` forwards when linking binaries): `/NXCOMPAT`,\n`/DYNAMICBASE`, and `/HIGHENTROPYVA` for UEFI PE, and `-znoexecstack`,\n`-zrelro`, `-znow`, `--as-needed`, and `--fatal-warnings` for ELF\n(exporting `_start` in `riscv64_efi_header.S` to resolve the entry\nsymbol).\n\nUnify AArch64 branch protection to `pac-ret+leaf+bti` across C and Rust\ntoolchains, adding a `bti jc` landing pad to `mcount_return_override`.\nAlso fix `x86_64_uefi_debug_cc_flags` list aliasing and set\n`aarch64-unknown-uefi-debug`\u0027s `exec_triple` to\n`x86_64-unknown-linux-musl`.\n\nBug: 570589604\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I228519156c0dfe80eecf1db4380fd37a4d94d8e3\n"
    },
    {
      "commit": "bd4798558bd46c3612da20100d0a0b892ea15f27",
      "tree": "f7827417ececff5bf816d50a78717188f5376023",
      "parents": [
        "6e71c4c35d3f12b9aae8952c5f33418e6cec6b30",
        "91f4cc148efae45a6b7b75be210410d5b650e5af"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 14:29:28 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 07 14:29:28 2026 -0700"
      },
      "message": "Merge \"libasync: Remove unused cyclic_executor crate\" into gbl-mainline"
    },
    {
      "commit": "b790b99e6e60dde457c0a790b9f28df30671ba76",
      "tree": "40cc9e45678061e195a5a88a729a2cd806846158",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:18:11 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 14:25:40 2026 -0700"
      },
      "message": "libfastboot, libstorage, libfdt, liblp: Remove dead code and move test helpers\n\nRemove unused APIs and move test-only helpers into test modules across\n`libfastboot`, `libstorage`, `libfdt`, and `liblp`.\n\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: Id4c65056dc914730dcdac7f55be2b163aa7fe8d9\n"
    },
    {
      "commit": "51c0c0c9eb78e856c4db21a0f4372def4ae24b0a",
      "tree": "7889c75e01c42487770983c46789af25c98ac86b",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:24:25 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:36:06 2026 -0700"
      },
      "message": "gbl: Remove dead foundation utilities and unused BUILD dependencies\n\nRemove unused utilities and move test-only helpers across `libutils`,\n`libsafemath`, `libsemihosting`, and `libc`, and remove unused dependency\ndeclarations across BUILD files.\n\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I0a991ba2c22e848369707d3cf11551b64956cae3\n"
    },
    {
      "commit": "eb1ee3b7876048255cd7eb5a54929f4330494132",
      "tree": "02b83f3571e1d871f59e4e5c21e085163298b0d6",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 12:16:46 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:35:29 2026 -0700"
      },
      "message": "libefi, libefi_types, libefi_virtio_vsock: Remove dead EFI utilities\n\nRemove unused EFI utilities, types, and wrappers across `libefi`,\n`libefi_types`, and `libefi_virtio_vsock`.\n\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I64962339baec64a46285d90dfbfc7d05993f0bf3\n"
    },
    {
      "commit": "07dab6fe8da4ea2a9a31173295e343fe0aa7a10c",
      "tree": "f677032888af7ce70ae27686674508346a46f8c5",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 12:11:19 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:35:10 2026 -0700"
      },
      "message": "libgbl: Remove dead code and move test-only helpers\n\nRemove unused modules, methods, and constants in `libgbl`, and move\ntest-only helpers into test modules.\n\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I219690f40a8d08235f8cece3b91fc528f84c26dd\n"
    },
    {
      "commit": "c4958a0ab887e290b9c3e110a2fe0bd8d319c3f9",
      "tree": "40f48c9cbccedbee55c418f6cba5d8a1e6b4abdb",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 12:05:23 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:34:56 2026 -0700"
      },
      "message": "libmisc, libgbl: Remove unused memtag message support\n\nRemove unused misc partition memtag message APIs and associated\ndependencies across `libmisc` and `libgbl`.\n\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I2dc60dfaf7472708a1247526b1ef475fb0edda34\n"
    },
    {
      "commit": "91f4cc148efae45a6b7b75be210410d5b650e5af",
      "tree": "b49e3aafa830b5349ad4239e16fa99184dbfe763",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 12:01:54 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:34:40 2026 -0700"
      },
      "message": "libasync: Remove unused cyclic_executor crate\n\nRemove the unused `cyclic_executor` crate from `libasync` and its unused\ndependency declarations across BUILD files.\n\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: Ibfa05582c182e600acb3dfbd3830ef215645752b\n"
    },
    {
      "commit": "6e71c4c35d3f12b9aae8952c5f33418e6cec6b30",
      "tree": "04a4243ce0a2a8d3efbc8299befc4bf7217e664b",
      "parents": [
        "12a89784002c19e4fa89efa4793fd8dafdd6e2b3"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 11:59:18 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 13:34:05 2026 -0700"
      },
      "message": "libgbl, libstorage, efi: Remove dead legacy slot manager subsystem\n\nRemove the unused legacy slot manager subsystem and associated trait\nmethods and dependencies across `libgbl`, `libstorage`, and `efi`.\n\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I71e5b96805b51bdccc8fa50acb55b57605e1aa1c\n"
    },
    {
      "commit": "12a89784002c19e4fa89efa4793fd8dafdd6e2b3",
      "tree": "06e0397c5299a4c3b43661d0b98c99118e9a7066",
      "parents": [
        "3abaa725ee0e570e954df399583b006a56b06a4c",
        "7cf26e6b5dedd84e1eadfa4f2c08ea11384a023b"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Oct 07 06:58:48 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 07 06:58:48 2026 -0700"
      },
      "message": "Merge \"gbl: Enable trap-mode UBSan and harden stack protector\" into gbl-mainline"
    },
    {
      "commit": "3abaa725ee0e570e954df399583b006a56b06a4c",
      "tree": "ae38368cb002710290fdb97a274703d7f0032782",
      "parents": [
        "c3dccf3fb9cc00dde6f5eebc9e3a29acb1f5578e",
        "a6bd8d84b7a1c22360fdc153088f8b647944529b"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 15:50:47 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 06 15:50:47 2026 -0700"
      },
      "message": "Merge \"gbl: Enable libc++ fast hardening mode\" into gbl-mainline"
    },
    {
      "commit": "c3dccf3fb9cc00dde6f5eebc9e3a29acb1f5578e",
      "tree": "8ddc8713740eb67d10ef9973e6bba94f8b523ace",
      "parents": [
        "d0b4c6096eae8e69cda7dff68b0092c85ba6da94",
        "6ab288547067c6b89d89c9b521cd554065582755"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 15:50:36 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 06 15:50:36 2026 -0700"
      },
      "message": "Merge \"gbl: Enable LTO for OpenDICE baremetal libraries\" into gbl-mainline"
    },
    {
      "commit": "7cf26e6b5dedd84e1eadfa4f2c08ea11384a023b",
      "tree": "0abcd76ee3efbc79841bbcf41d3044281fafff41",
      "parents": [
        "c4831a77dc6d4e1851c5baeda5c4cabc9a1b44a7"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 10:19:17 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 15:43:30 2026 -0700"
      },
      "message": "gbl: Enable trap-mode UBSan and harden stack protector\n\nEnable `-ftrivial-auto-var-init\u003dzero` in `cc_flags_common` and add\n`-fno-delete-null-pointer-checks`, `-fno-strict-aliasing`, and trap-mode\nUBSan (`-fsanitize\u003dsigned-integer-overflow,shift-exponent,bounds,unreachable,null`,\n`-fsanitize-trap\u003dall`, `-ftrap-function\u003dgbl_ubsan_trap`) to\n`cc_flags_uefi_common`.\n\nProvide `gbl_ubsan_trap` in `libstack` and `test_kernel`, disable\nsanitizer instrumentation on `libstack`, `libelf:relocation`, and\n`aarch64` `mcount`, add `no_stack_protector` / `no_instrument_function` /\n`noinline` attributes and `system_table` null checks in `libstack`, and\nmix `entry` pointer entropy into the `gbl_dev` fallback stack canary.\n\nBug: 570589489\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I03fe3eac500e27c4fe3fbede82930d25313aee42\n"
    },
    {
      "commit": "d0b4c6096eae8e69cda7dff68b0092c85ba6da94",
      "tree": "42d535f093129a4ac1c56218b88581d72ec06d7b",
      "parents": [
        "3c5de3f7a4e9059a1694261e0c3b0439c6d8195a",
        "f07a730856095c74bc6b46cde230b5ce60a08bea"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 15:20:44 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 06 15:20:44 2026 -0700"
      },
      "message": "Merge \"gbl: Gate @gbl//libc symbols on non-Linux and drop --allow-multiple-definition\" into gbl-mainline"
    },
    {
      "commit": "3c5de3f7a4e9059a1694261e0c3b0439c6d8195a",
      "tree": "7607a63531165e608c18cb90a5800419d7a54fd8",
      "parents": [
        "5e51ae6747f6075cfa0ba9657d34df6e93550050",
        "5922e94bdd6fd80be899bb3a366f02fa25ba7cd5"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 14:08:30 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 06 14:08:30 2026 -0700"
      },
      "message": "Merge \"gbl: Remap build working directory prefix in C and Rust toolchains\" into gbl-mainline"
    },
    {
      "commit": "f07a730856095c74bc6b46cde230b5ce60a08bea",
      "tree": "a67465efc5ae716525e6fd061a15b16108e9349a",
      "parents": [
        "c4831a77dc6d4e1851c5baeda5c4cabc9a1b44a7"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 10:19:16 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 11:42:18 2026 -0700"
      },
      "message": "gbl: Gate @gbl//libc symbols on non-Linux and drop --allow-multiple-definition\n\nGate custom C definitions (`vsnprintf`, `snprintf`, `errno`) in\n`@gbl//libc` under `__GBL_LIBC_STUBS__` and gate Rust `#[no_mangle]`\nexports (`memchr`, `strnlen`, `abort`, `strchr`, `strrchr`, `strcmp`,\n`strncmp`, `strtoul`, `strtoull`) under `not(target_os \u003d \"linux\")`.\n\nWith host Linux builds no longer exporting duplicate C library symbols\nthat collide with musl\u0027s static `libc.a`, remove\n`-Wl,--allow-multiple-definition` from the `x86_64` host Rust toolchain.\n\nBug: 570589409\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: Iedcafc1c5ebea8793861f04c902ac417d744e7fc\n"
    },
    {
      "commit": "5922e94bdd6fd80be899bb3a366f02fa25ba7cd5",
      "tree": "0f1fa0f07531c4da0aa61679b25e90ac1ceeab16",
      "parents": [
        "c4831a77dc6d4e1851c5baeda5c4cabc9a1b44a7"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 10:19:18 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 11:33:11 2026 -0700"
      },
      "message": "gbl: Remap build working directory prefix in C and Rust toolchains\n\nAdd `-ffile-prefix-map\u003d/proc/self/cwd\u003d.` to `cc_flags_common` and\n`-Z remap-cwd-prefix\u003d.` to `uefi_rustc_flags` so generated debug\ninformation and panic strings use relative paths instead of leaking\nbuild environment paths.\n\nBug: 570589748\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: Ib33b3a4d225591da54e92e2b1dd1b3594191e6af\n"
    },
    {
      "commit": "6ab288547067c6b89d89c9b521cd554065582755",
      "tree": "ed905edf22c2030c161e9a5f459c98a45d7b002b",
      "parents": [
        "c4831a77dc6d4e1851c5baeda5c4cabc9a1b44a7"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 10:19:16 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 11:33:10 2026 -0700"
      },
      "message": "gbl: Enable LTO for OpenDICE baremetal libraries\n\nRemove `copts \u003d [\"-fno-lto\"]` from\n`libopen_dice_cbor_baremetal_multialg` and\n`libopen_dice_android_baremetal_multialg` so OpenDICE can participate in\nLTO.\n\nBug: 570589113\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: Ic2743e16d689793d5365c029de3d5b9adf614ee9\n"
    },
    {
      "commit": "5e51ae6747f6075cfa0ba9657d34df6e93550050",
      "tree": "88c9bc461580f2677a20917a5634750e1932d800",
      "parents": [
        "c4831a77dc6d4e1851c5baeda5c4cabc9a1b44a7"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 10:19:17 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 11:33:10 2026 -0700"
      },
      "message": "gbl: Enable ANDROID_RUST_LINTS on QEMU test binaries\n\nAdd `ANDROID_RUST_LINTS` to `gbl_launcher` and `test_kernel_elf`, add\nmissing doc comments to public symbols in `test_kernel/main.rs`, and\nclarify in `common_lint_opts` why `ANDROID_RUST_LINTS` is applied per\nfirst-party crate rather than in toolchain `extra_rustc_flags`.\n\nBug: 570589390\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: Ibc1683ebd871dc3f947cbadfa23e134427019973\n"
    },
    {
      "commit": "a6bd8d84b7a1c22360fdc153088f8b647944529b",
      "tree": "a0568a1c3afea9d8f185ebb815f5625710dddcb6",
      "parents": [
        "c4831a77dc6d4e1851c5baeda5c4cabc9a1b44a7"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 10:19:16 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Oct 06 11:25:19 2026 -0700"
      },
      "message": "gbl: Enable libc++ fast hardening mode\n\nSet `_LIBCPP_HARDENING_MODE_DEFAULT` to `_LIBCPP_HARDENING_MODE_FAST` in\n`__config_site` so `libc++` headers enforce bounds and precondition\nchecks via `__builtin_trap()`.\n\nBug: 570589076\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests\nChange-Id: I4d87f7ba49d2e0c78bc0a3211e8b7a4231fa165e\n"
    },
    {
      "commit": "c4831a77dc6d4e1851c5baeda5c4cabc9a1b44a7",
      "tree": "929d25a0724ca93653199c929c47a8a57ebe880f",
      "parents": [
        "bceb9b99e2dbe69a2d79086431ead92461f7e1ec"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Mon Oct 05 16:52:03 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Mon Oct 05 16:52:03 2026 -0700"
      },
      "message": "gbl: Guard snprintf and vsnprintf behind __GBL_LIBC_STUBS__\n\nPreviously, vsnprintf() and snprintf() in gbl/libc/src/format.c were\ndefined unconditionally outside the #ifdef __GBL_LIBC_STUBS__ block,\ncausing them to override the host libc implementations in host unit\ntests that link against @gbl//libc:libc_c (such as libc_c_test and\nefi_avb_test).\n\nBecause GBL\u0027s format implementation does not support floating-point\nformat specifiers (%f), overriding the host snprintf() broke GoogleTest\u0027s\nXML result writer when formatting elapsed test durations (%.3f), writing\n\"GBL print implementation cann\" into the time attribute of test.xml and\ncausing test result parsing to fail in AnTS infrastructure.\n\nGuarding vsnprintf() and snprintf() behind __GBL_LIBC_STUBS__ ensures\nthey are only compiled for bare-metal UEFI targets and not host unit\ntests. This does not reduce unit test coverage of GBL\u0027s formatting logic\nbecause format_test.cpp tests gbl_printf_buffer() directly via\ngbl_printf(). Instead, it fixes FormatLLongMin and FormatULLongMax in\nformat_test.cpp, which call snprintf() to generate the expected\nreference strings and were previously testing gbl_printf_buffer()\nagainst itself rather than the host libc implementation.\n\nTAG\u003dagy\nCONV\u003d92a19281-b3ed-4156-b164-bc517b520062\n\nBug: 382503065\nTest: ./bazel.sh test @gbl//tests\nChange-Id: I4211bf0388a134043b19f88a4df5589d9be69a5f\n"
    },
    {
      "commit": "bceb9b99e2dbe69a2d79086431ead92461f7e1ec",
      "tree": "aff61b496ef6b0e6fd2f2d9f50c7d3e9ef0abae7",
      "parents": [
        "6d713365ac334f32986e35ced45286d1debcc860",
        "fd0b3dee0c5f6afee37a3653f607e2d50b85926d"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Mon Oct 05 11:13:44 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 05 11:13:44 2026 -0700"
      },
      "message": "Merge \"gbl: Run unit and QEMU tests via bazel test\" into gbl-mainline"
    },
    {
      "commit": "6d713365ac334f32986e35ced45286d1debcc860",
      "tree": "7b0c2c95225d6a2ca5b9a70148846d0bf3aa750a",
      "parents": [
        "e8577449164625a3167efdd25dab4e6c3144fd0f",
        "7d8e4567e8478790a4cda3e0f28af27d4210062a"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Oct 05 08:53:04 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 05 08:53:04 2026 -0700"
      },
      "message": "Merge \"Attach virtio-blk in riscv64 QEMU example\" into gbl-mainline"
    },
    {
      "commit": "7d8e4567e8478790a4cda3e0f28af27d4210062a",
      "tree": "03cc9f915bdb4a6ee93488df985dea1cb2490203",
      "parents": [
        "8d0c1737af706f6816166bea0d62ee73b9feeeb0"
      ],
      "author": {
        "name": "Hung-Chun Tseng",
        "email": "alan.tseng.cs@gmail.com",
        "time": "Wed Sep 23 01:21:30 2026 +0800"
      },
      "committer": {
        "name": "Hung-Chun Tseng",
        "email": "alan.tseng.cs@gmail.com",
        "time": "Sat Oct 03 14:00:34 2026 +0800"
      },
      "message": "Attach virtio-blk in riscv64 QEMU example\n\nThe riscv64 standalone QEMU example passes the ESP with -drive alone.\nBefore QEMU 9.0, the riscv64 virt machine does not attach such a drive\nto any device, so U-Boot finds no disk and drops to its prompt without\never loading GBL:\n\n  Device 0: unknown device\n  ...\n  \u003d\u003e\n\nQEMU 9.0 and later attach it to virtio by default, which is why the\ncurrent command works there.\n\nDeclare the drive with if\u003dnone and attach it explicitly with\n-device virtio-blk-device. Without if\u003dnone, QEMU 9.0+ also\nauto-attaches the drive and refuses the second attachment:\n\n  Drive \u0027blk0\u0027 is already in use because it has been automatically\n  connected to another device (did you need \u0027if\u003dnone\u0027 in the drive\n  options?)\n\nChecked with u-boot-qemu\u0027s qemu-riscv64/u-boot.bin and an ESP holding\nEFI/BOOT/bootriscv64.efi:\n\n                 current   id\u003dblk0 + -device   if\u003dnone + -device\n  QEMU 8.2.2     no disk   finds the ESP       finds the ESP\n  QEMU 10.2.1    finds it  \"already in use\"    finds the ESP\n\nThe x86_64 and aarch64 examples are unaffected.\n\nChange-Id: I13ef31e38d478feb165d81ee419fb7280cb438e3\nSigned-off-by: Hung-Chun Tseng \u003calan.tseng.cs@gmail.com\u003e\n"
    },
    {
      "commit": "e8577449164625a3167efdd25dab4e6c3144fd0f",
      "tree": "6bad54ef3b820d39469d5bafdcb3d6fddeecdd95",
      "parents": [
        "57b722224b90d9535998b4f02862723ebd93b964",
        "b9d8b58d5df87e4e6ce577fb076036c4364ab7de"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Oct 02 13:40:10 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 02 13:40:10 2026 -0700"
      },
      "message": "Merge \"docs: revise FixupBootConfig documentation\" into gbl-mainline"
    },
    {
      "commit": "fd0b3dee0c5f6afee37a3653f607e2d50b85926d",
      "tree": "25173dad7f2e98891ba63cb0f518c10b6719c417",
      "parents": [
        "8866ba8b575f12231959abb87c133816581891e5"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Thu Oct 01 14:14:31 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Oct 02 08:22:18 2026 -0700"
      },
      "message": "gbl: Run unit and QEMU tests via bazel test\n\nRemove the build_and_run_tests genrule workaround and noop.sh now that\nATP enforces bootable/libbootloader/gbl/tests results on presubmit.\nConvert qemu_test from a build-time genrule to py_test, gated on\n@gbl//tests/qemu:test_dependencies_exist via target_compatible_with so\nQEMU tests are skipped cleanly on branches without prebuilts/vmm or\ntools/mkbootimg.\n\nTAG\u003dagy\nCONV\u003d92a19281-b3ed-4156-b164-bc517b520062\n\nBug: 382503065\nTest: ./bazel.sh test @gbl//tests\nChange-Id: I9d0fdd3794b29000cfa2adfcd82ed93803716d5c\n"
    },
    {
      "commit": "b9d8b58d5df87e4e6ce577fb076036c4364ab7de",
      "tree": "723193201d1ac8359bb2c4ed3540371c93575681",
      "parents": [
        "c76cf958440d30fc3bb737e94dbae24550be55aa"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Aug 19 12:45:03 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Fri Oct 02 04:39:24 2026 +0000"
      },
      "message": "docs: revise FixupBootConfig documentation\n\nAlign the FixupBootConfig documentation with what GBL actually does:\n\n- The fixup is consumed as exactly FixupBufferSize bytes and must\n  contain only bootconfig parameters, without the trailer or a null\n  terminator.\n- FixupBufferSize is specified per exit status, and the unimplemented\n  retry with a larger buffer on EFI_BUFFER_TOO_SMALL is no longer\n  promised.\n- The Security section, which claimed GBL validates fixups, is replaced\n  by the requirement to derive them from trusted data only.\n- The claim that bootconfig is for user space only is dropped, since\n  the kernel parses it too.\n\nBug: 546706290\nChange-Id: Ia415b46f30f76cf6b2a6f09b8689d7899876e58b\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "57b722224b90d9535998b4f02862723ebd93b964",
      "tree": "9b6223ad631ed80703a75afb6e5a26d67275207a",
      "parents": [
        "8866ba8b575f12231959abb87c133816581891e5"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Sep 29 12:35:38 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Thu Oct 01 11:59:27 2026 -0700"
      },
      "message": "Send a single async task info message\n\nOnly send a message about launching async tasks for the first task\nlaunched. Reset the toggle when re-enabling async tasks.\n\nThe info message adds latency when there are multiple tasks launched\nas part of streaming flash. Furthermore, when driven by a higher level\ntool, the messages are mostly hidden from the end user.\n\nChange-Id: Ifba789cf8ab521729e2cfe12362705a50b9e78de\n"
    },
    {
      "commit": "8866ba8b575f12231959abb87c133816581891e5",
      "tree": "ef8df90dc2a018ed265b91a37ecc21afd499569e",
      "parents": [
        "c1d5bd85dfe9dfb9332b8ec8fd03b1b6a8ef1d31",
        "608621c32b1006058a6ef084377aedfca880fb37"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Sep 30 08:38:54 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 08:38:54 2026 -0700"
      },
      "message": "Merge \"Fix stale docs and dead code in the Android loader\" into gbl-mainline"
    },
    {
      "commit": "608621c32b1006058a6ef084377aedfca880fb37",
      "tree": "302b89c1e3c876d0e0f9c3fe1dc4ac1b52583c54",
      "parents": [
        "a9c73964debb42d39d3a25b12149e7dc36c57100"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Sep 30 00:30:00 2026 +0100"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Sep 30 02:57:58 2026 +0000"
      },
      "message": "Fix stale docs and dead code in the Android loader\n\nRemove docs of parameters that the load functions do not take and of an\nerror that build_pvmfw_data_region does not return, and correct docs\nthat use old names or describe removed fields. Remove\nLoadedImages::boot_hdr, which nothing reads.\n\nTest: ./tools/bazel test @gbl//tests\nChange-Id: If00dc3146ca3b7f18b783100379d9e9a35acbe5e\n"
    },
    {
      "commit": "c1d5bd85dfe9dfb9332b8ec8fd03b1b6a8ef1d31",
      "tree": "06617889bff3840a00fd77cdc36e60d15d6caa77",
      "parents": [
        "a9c73964debb42d39d3a25b12149e7dc36c57100",
        "b6f24c1a55b81e7160b9ee95295f5b530a24fec5"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Sep 29 19:32:48 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 19:32:48 2026 -0700"
      },
      "message": "Merge \"Preserve FDT totalsize reported by DT_FIXUP\" into gbl-mainline"
    },
    {
      "commit": "b6f24c1a55b81e7160b9ee95295f5b530a24fec5",
      "tree": "52a0a1416df84a5fc985bf13dd260f7d8ac4bcd3",
      "parents": [
        "3ae98f59661c47bf716ea1f1e80491d5bb382d9b"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Sep 28 23:29:30 2026 +0100"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Sep 29 00:34:18 2026 +0000"
      },
      "message": "Preserve FDT totalsize reported by DT_FIXUP\n\nGBL shrinks the device tree to its content after\nEFI_DT_FIXUP_PROTOCOL.Fixup() and again in finalize_dt(), dropping the\ntrailing free space FW leaves in totalsize for fixups by later boot\nstages or the OS. The DT_FIXUP spec defines that space through the\nheader totalsize, so the value FW reports must be respected.\n\nAdd the ramdisk range properties before the fixup and only update them\nin place afterwards, so the device tree is never resized once FW has\nreported its size. The loader only relocates it behind bootconfig.\n\nCo-developed-by: Unnathi Chalicheemala \u003cuchalich@qti.qualcomm.com\u003e\nBug: 559793876\nTest: ./tools/bazel test @gbl//tests\nChange-Id: I7af23d172f82113de43cd00b7f810b7249d65883\n"
    },
    {
      "commit": "a9c73964debb42d39d3a25b12149e7dc36c57100",
      "tree": "9619fdae695e3d00e3e04929c19577043d7bd01f",
      "parents": [
        "b5bfa0084d61d6dd0c2e28bb926dd39b7eb9c3ce",
        "3ae98f59661c47bf716ea1f1e80491d5bb382d9b"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 28 16:53:13 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 28 16:53:13 2026 -0700"
      },
      "message": "Merge \"Remove bootconfig to kernel command line conversion\" into gbl-mainline"
    },
    {
      "commit": "3ae98f59661c47bf716ea1f1e80491d5bb382d9b",
      "tree": "2b5b97f05a358a3a06ef30ce96d8476f5f077230",
      "parents": [
        "be2d229543ae3ef51e52069f8a18bc2d7e11fb66"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Sep 28 23:28:46 2026 +0100"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Sep 28 22:59:32 2026 +0000"
      },
      "message": "Remove bootconfig to kernel command line conversion\n\nDev builds convert bootconfig into the kernel command line for boot\nimages that predate bootconfig (Android 11 and earlier). Those Android\nversions are outside GBL and Android\u0027s support window, and the fallback\nis no longer used.\n\nRemove the conversion together with the bootconfig support detection.\n\nBug: 559793876\nTest: ./tools/bazel test @gbl//tests\nChange-Id: Iadd2641d4749801d97db93d4c664fefef3071588\n"
    },
    {
      "commit": "b5bfa0084d61d6dd0c2e28bb926dd39b7eb9c3ce",
      "tree": "d0cc2e8677996a413c04414a5bbd842611ef0462",
      "parents": [
        "be2d229543ae3ef51e52069f8a18bc2d7e11fb66",
        "a1d3767c4438cb323b4c55e811f2683835d3de3e"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 28 15:45:35 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 28 15:45:35 2026 -0700"
      },
      "message": "Merge \"gbl: Establish x86 segment state before entering the kernel\" into gbl-mainline"
    },
    {
      "commit": "be2d229543ae3ef51e52069f8a18bc2d7e11fb66",
      "tree": "dfc1560843b6faf31c72c9ad025809126f9e9ef2",
      "parents": [
        "206c43c04f88d04b7be8481a8b7ee232290d3bf9"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Thu Sep 24 22:02:37 2026 -0700"
      },
      "committer": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Fri Sep 25 19:59:14 2026 -0700"
      },
      "message": "gbl: Check the lock state before wiping for fastboot lock\n\nflashing lock and flashing unlock wipe the FDR partitions and run\nFDR before asking the platform to change the lock state. The wipe\nhappens even when the requested state is already set, and even when\nthe device does not allow unlocking, where the platform then rejects\nthe change and the user data is lost for nothing.\n\nRead the lock state first, for both the device and the critical lock.\nFail without wiping when the state would not change, and fail an\nunlock when the platform reports that unlocking is not allowed.\n\nTest: tools/bazel test --config\u003dgbl @gbl//libgbl:libgbl_test\nChange-Id: I37632d316a8c9b8174bcf9443ea425231ee3a597\n"
    },
    {
      "commit": "206c43c04f88d04b7be8481a8b7ee232290d3bf9",
      "tree": "32014f5a82bece92556ac9325b1862da59b7ee86",
      "parents": [
        "be68b1b8d55d304954cdb26e4d9b50314d697c92",
        "d2c9737e5fde22f6510a6d09e7218bd5e0f596ea"
      ],
      "author": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Thu Sep 24 17:02:39 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 24 17:02:39 2026 -0700"
      },
      "message": "Merge \"gbl: Add BoringSSL assembly presubmit tests\" into gbl-mainline"
    },
    {
      "commit": "be68b1b8d55d304954cdb26e4d9b50314d697c92",
      "tree": "eaa2c499cab3329269ff90a1f09743e27b0a481d",
      "parents": [
        "e64944307f4cccb0ae2a9a733702494ec596831c",
        "de63523d904b6bebd353c6187ece17b1d0fdf888"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 24 08:05:42 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 24 08:05:42 2026 -0700"
      },
      "message": "Merge \"Fix rust-gdb prebuilt path in launch_qemu_gdb.sh\" into gbl-mainline"
    },
    {
      "commit": "e64944307f4cccb0ae2a9a733702494ec596831c",
      "tree": "37dc6b576d8efbddbe0819c849ba6e45aea4c4cd",
      "parents": [
        "b32a0c1fe793c9620e12d595e6d1fe95dc3db763",
        "380f3a141ccb8a75c81d7fbcf0afcec86a15a288"
      ],
      "author": {
        "name": "Karthik Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Wed Sep 23 13:50:02 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 23 13:50:02 2026 -0700"
      },
      "message": "Merge \"gbl: Fix buildifier warnings in efi and toolchain BUILD files\" into gbl-mainline"
    },
    {
      "commit": "b32a0c1fe793c9620e12d595e6d1fe95dc3db763",
      "tree": "120e7e0fd2d966ea1e58a531adee8152b61adbed",
      "parents": [
        "f01cc95be952ec5e5d0e338f935d9d8e9a0a9060",
        "343817044b0eec8176fdc60d8f0a4d110041846a"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Sep 23 12:41:51 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 23 12:41:51 2026 -0700"
      },
      "message": "Merge \"gbl: Minor fixes and improvements to tracing support\" into gbl-mainline"
    },
    {
      "commit": "343817044b0eec8176fdc60d8f0a4d110041846a",
      "tree": "7955718d3f93f7a8bd7a531d7f3ee696dcf698d2",
      "parents": [
        "2837d3f6c7f630ca528d4e0f882bafe9112faadb"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Sep 22 23:38:39 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Sep 23 18:21:22 2026 +0000"
      },
      "message": "gbl: Minor fixes and improvements to tracing support\n\n- Fall back to `allocate_pool` (with page alignment) in aarch64\n  `mcount.c` when `allocate_pages` fails.\n- Disable tracing via `TraceGuard` during FDT operations\n  (`libfdt`) and LZ4 decompression (`decompress_lz4`) to avoid\n  excessive low-level calls (`memcpy`, `memcmp`, etc.) bloating\n  the trace buffer.\n- Bound the parsed trace payload in `gbl-trace-to-perfetto.py`\n  to the size recorded in `GblTraceMetadata` and pretty-print\n  the JSON output.\n\nBug: 563026181\nTest: ./bazel.sh test @gbl//tests\nChange-Id: Ia4b39e8cfd15fe2aaa765cf59177205d5857c55c\n"
    },
    {
      "commit": "d2c9737e5fde22f6510a6d09e7218bd5e0f596ea",
      "tree": "892dc997a2e415579ec2212953d56e39ed3dc79e",
      "parents": [
        "f01cc95be952ec5e5d0e338f935d9d8e9a0a9060"
      ],
      "author": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Sat Aug 15 00:19:28 2026 +0000"
      },
      "committer": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Wed Sep 23 05:33:43 2026 +0000"
      },
      "message": "gbl: Add BoringSSL assembly presubmit tests\n\nAdd functional tests and assembly verification to ensure BoringSSL\nassembly optimizations are active and cannot regress silently\nin presubmit.\n\nChanges:\n- libboringssl: Added libboringssl wrapper crate providing unified safe FFI\n  declaration for CRYPTO_has_asm().\n- libboringssl: Added crypto_test (rust_test) verifying CRYPTO_has_asm()\n  and reference digest test vectors.\n- libboringssl: Added crypto_bench (rust_binary) for standalone host\n  throughput measurements.\n- protocol_integration: Added CRYPTO_has_asm() verification in test_hash2\n  executed during UEFI QEMU integration testing.\n- tests/qemu/fastboot_misc_test.py: Added assertion for test_hash2 passing.\n- tests/BUILD: Added crypto_test to build_and_run_tests.\n\nTAG\u003dagy\nCONV\u003df19f1c4f-6c6f-4c85-a1f2-733ca33b7bbe\n\nBug: 413054304\nTest: ./bootable/libbootloader/gbl/bazel.sh test @gbl//tests --extra_toolchains\u003d@gbl//toolchain:all\nChange-Id: I6f58e2b3e421788a90d064bc7bbbe5bebf8e2ca6\n"
    },
    {
      "commit": "f01cc95be952ec5e5d0e338f935d9d8e9a0a9060",
      "tree": "5aa6c9cb2a90a223f773817421239eea1862c12a",
      "parents": [
        "c5b94a1df7a9f473fa609105b4cf1283c1676a5d",
        "7470bf397d0fdce7a0f28783b338e76f25b0f8e9"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Sep 22 14:59:42 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 14:59:42 2026 -0700"
      },
      "message": "Merge \"Cleanup and bugfix for fastboot streaming flash\" into gbl-mainline"
    },
    {
      "commit": "380f3a141ccb8a75c81d7fbcf0afcec86a15a288",
      "tree": "ef54a420fee98c7ac7d73777be1b29e7c1ac0018",
      "parents": [
        "8d0c1737af706f6816166bea0d62ee73b9feeeb0"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Tue Sep 22 12:41:49 2026 -0500"
      },
      "committer": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Tue Sep 22 12:41:49 2026 -0500"
      },
      "message": "gbl: Fix buildifier warnings in efi and toolchain BUILD files\n\nFix make-location warnings by replacing deprecated $(location ...) with\n$(execpath ...) in genrules in gbl/efi/BUILD. Fix unsorted-dict-items\nwarnings in select() dictionaries in gbl/efi/BUILD and\ngbl/toolchain/BUILD.\n\nBug: 563075705\nTest: buildifier --lint\u003dwarn --warnings\u003dall\nTest: Built copies_for_tests\nChange-Id: I9a39e29406d7cec185cd32cd46e7490ba8ee08a7\n"
    },
    {
      "commit": "de63523d904b6bebd353c6187ece17b1d0fdf888",
      "tree": "e49d8d5cd4eff09ff1e0389c6195a0177286c7de",
      "parents": [
        "8d0c1737af706f6816166bea0d62ee73b9feeeb0"
      ],
      "author": {
        "name": "Hung-Chun Tseng",
        "email": "alan.tseng.cs@gmail.com",
        "time": "Wed Sep 23 01:13:16 2026 +0800"
      },
      "committer": {
        "name": "Hung-Chun Tseng",
        "email": "alan.tseng.cs@gmail.com",
        "time": "Wed Sep 23 01:15:37 2026 +0800"
      },
      "message": "Fix rust-gdb prebuilt path in launch_qemu_gdb.sh\n\nThe x86_64 branch looks for rust-gdb under prebuilts/rust/linux-x86/,\nbut the uefi-gbl-mainline manifest checks the Rust toolchain out to\nprebuilts/rust-toolchain/linux-musl-x86/ instead. That directory does\nnot exist in a manifest checkout, so find(1) returns nothing and the\nscript aborts before it can build anything:\n\n  Cannot find any rust-gdb from \u003cworkspace\u003e/prebuilts/rust/linux-x86/\n\nPoint at the path the manifest actually provides. With this change the\nlookup resolves to\nprebuilts/rust-toolchain/linux-musl-x86/\u003cversion\u003e/bin/rust-gdb and\npasses the script\u0027s executability check.\n\nThe aarch64 branch is unaffected; it uses the system gdb-multiarch.\nThe llvm-dwp lookup below is also unaffected, as\nprebuilts/clang/host/linux-x86/ is a real manifest path.\n\nChange-Id: I5c2e21359a432c7a6440ee55d5cd841362d9be5b\nSigned-off-by: Hung-Chun Tseng \u003calan.tseng.cs@gmail.com\u003e\n"
    },
    {
      "commit": "c5b94a1df7a9f473fa609105b4cf1283c1676a5d",
      "tree": "6f9b45f6900be5c30757f75dadb770fa2841a99d",
      "parents": [
        "8d0c1737af706f6816166bea0d62ee73b9feeeb0"
      ],
      "author": {
        "name": "Hung-Chun Tseng",
        "email": "alan.tseng.cs@gmail.com",
        "time": "Tue Sep 22 23:09:51 2026 +0800"
      },
      "committer": {
        "name": "Hung-Chun Tseng",
        "email": "alan.tseng.cs@gmail.com",
        "time": "Wed Sep 23 00:04:23 2026 +0800"
      },
      "message": "Fix OVMF firmware path in standalone QEMU instructions\n\nThe x86_64 standalone QEMU example points at\n/usr/share/OVMF/OVMF_CODE.fd, which no longer exists in current\ndistribution packages. Debian/Ubuntu\u0027s ovmf package now ships only the\n4MB variants, so running the documented command fails outright:\n\n  qemu-system-x86_64: -drive if\u003dpflash,format\u003draw,readonly\u003don,\n  file\u003d/usr/share/OVMF/OVMF_CODE.fd: Could not open\n  \u0027/usr/share/OVMF/OVMF_CODE.fd\u0027: No such file or directory\n\nPoint at OVMF_CODE_4M.fd instead. Verified on Ubuntu with ovmf\n2024.02-2ubuntu0.7: with this change the documented command boots\ngbl_x86_64.efi and reaches the GBL banner. No other change to the\ncommand is needed.\n\nThe aarch64 example is unaffected; AAVMF_CODE.fd is still present.\n\nChange-Id: I2899be0008f65903c986115e61abdd481e90131b\nSigned-off-by: Hung-Chun Tseng \u003calan.tseng.cs@gmail.com\u003e\n"
    },
    {
      "commit": "7470bf397d0fdce7a0f28783b338e76f25b0f8e9",
      "tree": "80511f447e5f5530190ddb9208f350d5ea4e92dc",
      "parents": [
        "8d0c1737af706f6816166bea0d62ee73b9feeeb0"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Sep 16 13:17:58 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Sep 22 08:41:34 2026 -0700"
      },
      "message": "Cleanup and bugfix for fastboot streaming flash\n\nStream flash crc calculation yields periodically to maintain\nresponsiveness.\nFix potential out-of-bounds index when querying block device by ID.\nTighten stream-fill buffer manipulation.\nMinor internal documentation fixes.\nAdditional miscellaneous cleanups.\n\nFix: b/479909443\nTest: ./bazel.sh test @gbl//tests\nChange-Id: I44de9e9db7a2ebff7257f163d4ee10ec810d9e83\n"
    },
    {
      "commit": "8d0c1737af706f6816166bea0d62ee73b9feeeb0",
      "tree": "2bf62e9a0b084a73be3c9f0e03b37557e051abd5",
      "parents": [
        "9a3b4fb6dc527f92ea98b78624ac775bcc883c3c"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Sep 22 13:33:36 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Sep 22 13:36:29 2026 +0000"
      },
      "message": "libcxx: Provide C++ allocation operators on host builds too\n\nThe operator new/delete shim was gated on __GBL_LIBC_STUBS__, so host\nbuilds had no C++ runtime at all. The BoringSSL sync to 81913f59 makes\nEVP_HPKE_KEY_generate construct bssl::EvpPkeyCtx, whose virtual\ndestructor references the sized operator delete, and\n@gbl//libboringssl:sysdeps_test fails to link.\n\nDefine the operators unconditionally; on host, allocation failure\ncalls abort() instead of gbl_panic_from_c.\n\nTest: bazel test --platforms\u003d@gbl//toolchain:host_x86_64_dev @gbl//tests\nChange-Id: Idf798209e2d569a2faeccb62e8603dc4726c2755\n"
    },
    {
      "commit": "9a3b4fb6dc527f92ea98b78624ac775bcc883c3c",
      "tree": "90d52a7ad8633201c4b5c1ceddc3b96c7a27433f",
      "parents": [
        "e192c1065c2f8960b564ae0675c5a29086cde0ec",
        "e4f19f5aa8a885194e7c48633f066e4d3805097e"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 21 20:22:00 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 21 20:22:00 2026 -0700"
      },
      "message": "Merge \"toolchain: Skip .git directory when symlinking repository tree\" into gbl-mainline"
    },
    {
      "commit": "e192c1065c2f8960b564ae0675c5a29086cde0ec",
      "tree": "f76eb731d4c954c2891a5d55095d6b295bf02122",
      "parents": [
        "13bb2339ebca014b01c67bea7aa6096a35d87156"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Sep 21 22:29:37 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Sep 21 22:31:50 2026 +0000"
      },
      "message": "gbl: Enable \"alloc\" feature for host @log crate\n\nlog 0.4.34 (aosp/4307816) moved `log::set_boxed_logger` behind the new\n`alloc` feature (`std \u003d [\"alloc\"]` in Cargo.toml). Explicitly enable\n`\"alloc\"` alongside `\"std\"` on `@log` in MODULE.bazel so host crates\nlike `@env_logger` continue to build.\n\nTest: local build\nChange-Id: Id9575e0ef8aaaf8884a9331cc87d316f09849748\n"
    },
    {
      "commit": "e4f19f5aa8a885194e7c48633f066e4d3805097e",
      "tree": "4e58d40897bb0c8c0bb387beb724d8f7ebeb5b96",
      "parents": [
        "13bb2339ebca014b01c67bea7aa6096a35d87156"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Mon Sep 21 17:01:30 2026 -0500"
      },
      "committer": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Mon Sep 21 17:08:46 2026 -0500"
      },
      "message": "toolchain: Skip .git directory when symlinking repository tree\n\nWhen replicating a local repository into a generated Bazel repo root,\n_symlink_tree walks the entire directory structure. If the source\ndirectory is a git repository, traversing into .git processes internal\ngit objects and history, which can exhaust the iteration limit or create\nunneeded symlinks.\n\nSkip any directory named .git during traversal.\n\nTest: Verified build succeeds without traversing .git\n\nChange-Id: I889fdd1f75fffaadaac999fa21d67d87a2031f66\n"
    },
    {
      "commit": "13bb2339ebca014b01c67bea7aa6096a35d87156",
      "tree": "c6a11e824361152e91ec26200cc8366ec4498ec0",
      "parents": [
        "531ef17ba96bf4d8284478b4a59a6719746ce92c",
        "2899179bfebc7b94f70843a0921bdcff3cb39963"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Sep 17 13:20:37 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 13:20:37 2026 -0700"
      },
      "message": "Merge \"Remove unnecessary libstdcxx from bindgen\" into gbl-mainline"
    },
    {
      "commit": "2899179bfebc7b94f70843a0921bdcff3cb39963",
      "tree": "1a1c14ffdefb1b1c6868ab751bc3f1d1a420479c",
      "parents": [
        "2837d3f6c7f630ca528d4e0f882bafe9112faadb"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Sep 17 17:05:55 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Sep 17 17:52:33 2026 +0000"
      },
      "message": "Remove unnecessary libstdcxx from bindgen\n\nPrebuilt libclang statically links libc++, so setting libstdcxx on\nrust_bindgen_toolchain is unnecessary and causes LD_LIBRARY_PATH to\npoint to glibc\u0027s libc++.so, which breaks musl rustfmt during bindgen\nexecution and generates a lot of noise error messages.\n\nBug: 498587302\nTest: ./bazel.sh test @gbl//tests\nChange-Id: Ib479504839120a2fa86114127380c877bf0d0236\n"
    },
    {
      "commit": "531ef17ba96bf4d8284478b4a59a6719746ce92c",
      "tree": "7c246ceab9703037c3b70ae5054ed701480215ff",
      "parents": [
        "2837d3f6c7f630ca528d4e0f882bafe9112faadb"
      ],
      "author": {
        "name": "Jakob Vukalovic",
        "email": "jakobvukalovic@google.com",
        "time": "Thu Sep 10 13:23:25 2026 +0000"
      },
      "committer": {
        "name": "Jakob Vukalovic",
        "email": "jakobvukalovic@google.com",
        "time": "Thu Sep 17 14:58:53 2026 +0000"
      },
      "message": "Zeroize sensitive DICE buffers on drop\n\nDuring AVF setup, pvmfw configuration and DICE handover generation\nhandle sensitive data including CDIs and vendor handover secrets. If\nan error occurs during pvmfw data region preparation, sensitive key\nmaterial could remain in memory.\n\nThis introduces `ZeroizeGuard` in `libutils`, an RAII guard wrapping a\nmutable slice that zeroizes its buffer upon drop unless explicitly\ndisarmed. It is used in:\n\n- `build_pvmfw_data_region`: wraps `output_buffer` and defuses on\n  success, ensuring early errors wipe sensitive data from the output\n  region\n- `pvmfw_build_dice_handover`: wraps `scratch_buffer` so the\n  intermediate DICE handover data is wiped upon function exit\n\nOn aarch64, ZeroizeGuard also flushes the data cache after zeroizing.\n\nBug: 514210188\nTest: unit tests\nChange-Id: I33216812035588e7afc4c350e912cea04caced0d\n"
    },
    {
      "commit": "2837d3f6c7f630ca528d4e0f882bafe9112faadb",
      "tree": "99a96f4257bf3fd4f801ca070cdd6ed0e29dab2a",
      "parents": [
        "41ac9871a9265be4118d38f653fe102623ded2bc",
        "6ddd2a3d16cc12b5e8efe005fc09ac1351c9c9b6"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Sep 17 01:50:45 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 01:50:45 2026 -0700"
      },
      "message": "Merge \"gbl: Enable BoringSSL assembly for x86_64 UEFI\" into gbl-mainline"
    },
    {
      "commit": "41ac9871a9265be4118d38f653fe102623ded2bc",
      "tree": "3dd3326273030fa960e8aff16af7e6011bd4efb5",
      "parents": [
        "0a5d114c5e9718759a87071537b1c190938ae03b",
        "777ba0ea843d9ef6f210454444a1d64280b3804c"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Sep 16 10:08:27 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 10:08:27 2026 -0700"
      },
      "message": "Merge \"gbl: Switch to using musl version of Rust toolchain\" into gbl-mainline"
    },
    {
      "commit": "777ba0ea843d9ef6f210454444a1d64280b3804c",
      "tree": "5b1fbb2c52d1eec8b19481ee7af033888fb801dd",
      "parents": [
        "ced5d650a1851d45e9e0c38c3df42a9eb9242111"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Sep 15 12:07:34 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Wed Sep 16 09:28:30 2026 +0000"
      },
      "message": "gbl: Switch to using musl version of Rust toolchain\n\n* Switch host and exec toolchains to x86_64-unknown-linux-musl.\n* Configure dynamic CRT linking for proc-macros (-C\n  target-feature\u003d-crt-static, -C link-self-contained\u003dno, and sysroot\n  -L/-rpath flags) to avoid allocator SIGSEGV when dlopened by rustc.\n* Exclude self-contained/ from stdlib_x86_64-unknown-linux-musl so\n  static libc.a does not shadow the dynamic sysroot during proc-macro\n  builds.\n* Pass -Wl,--allow-multiple-definition to host rustc flags so custom C\n  implementations in @gbl//libc (e.g. strtoul) can override matching\n  symbols in musl\u0027s static libc.a without linker collisions.\n\nBug: 498587302\nTest: tools/bazel build @@gbl++_repo_rules3+arc_swap//:arc_swap\nTest: tools/bazel test @gbl//tests:build_and_run_tests\nAssisted-by: Antigravity:Gemini Next\nChange-Id: I7e57176755f6165578d6906157e1d02a5eb7549d\n"
    },
    {
      "commit": "0a5d114c5e9718759a87071537b1c190938ae03b",
      "tree": "6bc44dcac853d79547bbcf54978bbf8308c04344",
      "parents": [
        "ced5d650a1851d45e9e0c38c3df42a9eb9242111",
        "e12ff0eb6ceffdda6562bc47af28801e35510b64"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Sep 15 12:51:04 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 12:51:04 2026 -0700"
      },
      "message": "Merge \"libefi: preserve the required size from GetMemoryMap\" into gbl-mainline"
    },
    {
      "commit": "ced5d650a1851d45e9e0c38c3df42a9eb9242111",
      "tree": "e2ec1bdceb89663d061deacc9b3b1f817537f35e",
      "parents": [
        "c31cf5adcb3e632408ad4c0a06c731a97f80c42f"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri Sep 11 12:31:25 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Mon Sep 14 18:06:55 2026 +0000"
      },
      "message": "gbl: licensing: Skip license check for rules_rust empty_allocator_libraries\n\nIn preparation for the Bazel 9 upgrade, rules_rust is being updated\nto 0.63.0. Upstream rules_rust added allocator libraries compatible\nwith new rustc mangling (see https://github.com/bazelbuild/rules_rust/pull/3403),\nwhich introduces the @rules_rust//ffi/rs:empty_allocator_libraries target.\n\nExclude this target from GBL\u0027s license checking. This fixes the following\nissue with rules_rust 0.63.0 / Bazel 9:\n\n\"\"\"\nError in fail: The following targets are missing applicable_licenses:\n  @@rules_rust+//ffi/rs:empty_allocator_libraries\n\"\"\"\n\nThis change is backward-compatible with rules_rust 0.56.0.\n\nBug: 495395547\nTest: tools/bazel build --config\u003dgbl --nobuild //bootable/libbootloader:gbl_efi_dist\nChange-Id: I5d95f5e5140c47d8e0971fa24e94011a8948353e\n"
    },
    {
      "commit": "c31cf5adcb3e632408ad4c0a06c731a97f80c42f",
      "tree": "2e9438366102a1044814671f133e55347e081cff",
      "parents": [
        "e6d91ddd42b10fcf71360b3b236b956708277d5f",
        "22feab9020f13a6c3148ab6ec385a8074444edd7"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 14 10:48:17 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 10:48:17 2026 -0700"
      },
      "message": "Merge \"fastboot: align max-fetch-size to block boundary\" into gbl-mainline"
    },
    {
      "commit": "22feab9020f13a6c3148ab6ec385a8074444edd7",
      "tree": "bc7c01be72e61c24791a53dae0f8ea490fc913cc",
      "parents": [
        "710e730dd09c4643d9df5b05953afe879cb81deb"
      ],
      "author": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Wed Sep 09 01:09:54 2026 +0100"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Mon Sep 14 16:50:33 2026 +0000"
      },
      "message": "fastboot: align max-fetch-size to block boundary\n\nPreviously, MAX_FETCH_SIZE_VAL was set to 0x7fffffff (max 31-bit\ninteger). When fetching partitions larger than this limit (such as the\nsuper partition), upstream fastboot splits the fetch into chunks of\nat most max-fetch-size. This caused subsequent chunks to begin at an\nunaligned byte offset (0x7fffffff).\n\nWhile GBL\u0027s libstorage is designed to handle unaligned reads when\nfirmware accurately reports BlockIO IoAlign, unaligned offsets require\nintermediate buffering and copying through the scratch buffer.\nFurthermore, on devices where firmware incorrectly reports IoAlign or\nfails to handle unaligned access, these unaligned reads can cause fetch\nrequests to fail with InvalidInput.\n\nDefensively cap MAX_FETCH_SIZE_VAL to a block-aligned 512 MiB\n(0x20000000). This avoids unnecessary scratch buffer copying in\nlibstorage, provides more frequent progress updates during\n`fastboot fetch` to prevent the host from appearing hung on large\npartitions, and guards against buggy vendor firmware implementations.\n\nBug: 376407624\nTest: tools/bazel test --config\u003dgbl @gbl//libgbl:libgbl_test\nChange-Id: Ia3e77aabaacb9523b3619655737f4518eacb010f\nTAG\u003dagy\nCONV\u003d2a746cfe-a758-44b7-a153-d77412c4ad61\n"
    },
    {
      "commit": "e6d91ddd42b10fcf71360b3b236b956708277d5f",
      "tree": "e56894741af9ac5e39ba86b42753200b93a2346a",
      "parents": [
        "70e12c5d1225d855b2cb352ac4b922c5a1ae054c",
        "830905549d445cb7c98c2b13af0f55968b6acc68"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Sep 14 08:27:58 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 08:27:58 2026 -0700"
      },
      "message": "Merge \"avf: Return VMDTBO size as 0 when FIT is found in DTBO\" into gbl-mainline"
    },
    {
      "commit": "830905549d445cb7c98c2b13af0f55968b6acc68",
      "tree": "4ca52180de930b5acd134ff3748e25d333ed7d0c",
      "parents": [
        "710e730dd09c4643d9df5b05953afe879cb81deb"
      ],
      "author": {
        "name": "Naina Mehta",
        "email": "nainmeht@qti.qualcomm.com",
        "time": "Mon Sep 14 14:41:11 2026 +0530"
      },
      "committer": {
        "name": "Naina Mehta",
        "email": "nainmeht@qti.qualcomm.com",
        "time": "Mon Sep 14 08:07:15 2026 -0700"
      },
      "message": "avf: Return VMDTBO size as 0 when FIT is found in DTBO\n\nReturn VMDTBO size as 0 when FIT format is found in DTBO\npartition as FIT currently doesn\u0027t support VMDTBO, otherwise\nvmdtbo_entry_max_size fails with \"invalid dtbo partition\"\nerror.\n\nBug: 385690995\nChange-Id: Idb8d5e312c207b060e3dc66ed6a091a58d9245d9\nSigned-off-by: Naina Mehta \u003cnainmeht@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "70e12c5d1225d855b2cb352ac4b922c5a1ae054c",
      "tree": "ebe6d532ddf8923ef092770f1d11f72adaf928ee",
      "parents": [
        "710e730dd09c4643d9df5b05953afe879cb81deb",
        "8c0baedf8974f103f8cca3deb2198d651a1ad1ce"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Sep 14 02:18:10 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 02:18:10 2026 -0700"
      },
      "message": "Merge \"gbl: toolchain: Use crate_features for gbl_rust_crate_repository\" into gbl-mainline"
    },
    {
      "commit": "710e730dd09c4643d9df5b05953afe879cb81deb",
      "tree": "e6f79eef095be1a68df77057b2610759e85e6ee4",
      "parents": [
        "f81d1fdb261980d6d0b99f6991cb15df0fc9c707",
        "d10ceabcebebc7b12f0df61549b38182ca6fa340"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Sep 11 12:22:37 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 11 12:22:37 2026 -0700"
      },
      "message": "Merge \"gbl: toolchain: Load CcToolchainConfigInfo from rules_cc\" into gbl-mainline"
    },
    {
      "commit": "a1d3767c4438cb323b4c55e811f2683835d3de3e",
      "tree": "3a5e7f31aa85fb40aa5d0788b898bcb4a66a5ef8",
      "parents": [
        "e12ff0eb6ceffdda6562bc47af28801e35510b64"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Wed Aug 26 13:08:54 2026 -0700"
      },
      "committer": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Fri Sep 11 12:15:04 2026 -0700"
      },
      "message": "gbl: Establish x86 segment state before entering the kernel\n\nThe direct x86 path jumps to the 64-bit kernel entry with whatever\nsegment state the firmware left behind. Documentation/arch/x86/boot.rst\nrequires a GDT holding flat descriptors for __BOOT_CS (0x10) and\n__BOOT_DS (0x18), and entry through __BOOT_CS. It works today only\nwhere the firmware descriptors happen to be compatible.\n\nInstall a private GDT, reload the data selectors from it, and enter\nthrough __BOOT_CS with a far return, since a plain jump cannot reload\nCS.\n\nTest: tools/bazel test --config\u003dgbl @gbl//tests\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: I56dfca131eac4d747976dfc9210885d6d42e8dc5\n"
    },
    {
      "commit": "e12ff0eb6ceffdda6562bc47af28801e35510b64",
      "tree": "cdec360a121e8488dcbc7707c395b708062e2ef1",
      "parents": [
        "cab24f5fe22e93f37697684bf1d1a2db6764bf1e"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Fri Sep 11 10:57:27 2026 -0700"
      },
      "committer": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Fri Sep 11 12:15:04 2026 -0700"
      },
      "message": "libefi: preserve the required size from GetMemoryMap\n\nget_memory_map went through the generic efi_call path, which maps\nEFI_BUFFER_TOO_SMALL to BufferTooSmall(None) and discards the size\nthe firmware wrote back. Switch to the size-aware @bufsize arm so\ncallers see BufferTooSmall(Some(required)).\n\nAdd memory_map_size(), a zero-capacity query that returns that\nsize. A successful GetMemoryMap reports the map as written, and\nfirmware that compacts its OS-facing map writes fewer bytes than\nthe next call demands, so measuring a successful call is not a\nsound basis for sizing a buffer.\n\nTests cover the preserved size, the zero-capacity query, and that\nexit_boot_services does not reach ExitBootServices when the fresh\nGetMemoryMap fails.\n\nChange-Id: I1c0ed0c504eb3f44785a9d057ae6b5e2a374ea9b\n"
    },
    {
      "commit": "8c0baedf8974f103f8cca3deb2198d651a1ad1ce",
      "tree": "4832c2045b9266def17fa9bc5191046104e28acd",
      "parents": [
        "d10ceabcebebc7b12f0df61549b38182ca6fa340"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri Sep 11 14:30:41 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri Sep 11 16:21:22 2026 +0000"
      },
      "message": "gbl: toolchain: Use crate_features for gbl_rust_crate_repository\n\nIn Bazel 9+, \u0027features\u0027 was removed from built-in repository_rule\nattributes (RepoRule decoupling). In Bazel 8, \u0027features\u0027 is a reserved\nbuilt-in attribute that cannot be declared in repository_rule attrs.\n\nRename \u0027features\u0027 to \u0027crate_features\u0027 in gbl_rust_crate_repository and\nMODULE.bazel to represent Cargo crate features without colliding with\nBazel\u0027s built-in rule attributes, ensuring compatibility across both\nBazel 8 and Bazel 9.\n\nBug: 495395547\nTest: tools/bazel build --config\u003dgbl --nobuild //bootable/libbootloader:gbl_efi_dist\nChange-Id: Ica0a9374335408bba6e4659d92be6fb0d9d15c2d\n"
    },
    {
      "commit": "d10ceabcebebc7b12f0df61549b38182ca6fa340",
      "tree": "a01b8b73249a4f0ed75c816ea666f09bc626d919",
      "parents": [
        "dd2697463e21c03cda40b8719f3c696fa1879ca0"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri Sep 11 14:30:30 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Fri Sep 11 14:30:30 2026 +0000"
      },
      "message": "gbl: toolchain: Load CcToolchainConfigInfo from rules_cc\n\nIn Bazel 9, CcToolchainConfigInfo is no longer available as a\nbuilt-in global symbol and must be loaded from @rules_cc//cc:defs.bzl.\n\nBug: 495395547\nTest: tools/bazel build --config\u003dgbl --nobuild //bootable/libbootloader:gbl_efi_dist\nChange-Id: Ib03f2c9576eca70238ed1f078c3eb51a9a24f58b\n"
    }
  ],
  "next": "f81d1fdb261980d6d0b99f6991cb15df0fc9c707"
}
