)]}'
{
  "commit": "3b27c6f519f4ca5a96466129046397d1f79574f8",
  "tree": "36bd2e19863467b8e963904673f32643f1fdb87a",
  "parents": [
    "57d214e02106f0efe7f97b1f135cb5ae863721b3"
  ],
  "author": {
    "name": "Yecheng Zhao",
    "email": "zyecheng@google.com",
    "time": "Fri Apr 26 00:05:29 2024 +0000"
  },
  "committer": {
    "name": "Yecheng Zhao",
    "email": "zyecheng@google.com",
    "time": "Fri Apr 26 02:28:53 2024 +0000"
  },
  "message": "Fix build error due to chkstk/alloca on x86\n\nThe `avb_cert_validate_vbmeta_public_key` API uses more than 8KB of\nstack memory and triggers the compiler to insert calls to function\n__chkstk() and __alloca() on x86/x86_64 platforms. Although rust\nlibcompiler_builtins does provide the implementations, there are\ntwo issues:\n\n1. LLVM mangles the symbol and add an additional underscore to the\n   symbol name, causing link to fail to find the correct one.\n2. The implementation is not enabled for x86 uefi build. x86_64 had the\n   same issue but was fixed. But it wasn\u0027t ported to x86.\n\nAs a workaround, for #1 we define mangled symbols that simply jump to\nthe correct one. For #2 we apply the same fix from x86_64 for x86 at\nbuild time to and rebuild std from source, until upstream is fixed.\n\nBug: 337114254\n\nChange-Id: Id7bce71a7d5ca08fc79180733e40fc1ec083da57\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "73f96838c7d6ff8c771c9cfa5f2c3e7dcc298f08",
      "old_mode": 33188,
      "old_path": "gbl/efi/BUILD",
      "new_id": "db2863461117ae966647c9112bf10c7d6aebd52d",
      "new_mode": 33188,
      "new_path": "gbl/efi/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0b69afc0093b2f53db6234e88ec4c79c56f395d0",
      "new_mode": 33188,
      "new_path": "gbl/efi/arch/x86/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "91079195babe817e71b97a5c17585b795cb1b7f1",
      "new_mode": 33188,
      "new_path": "gbl/efi/arch/x86/deps.S"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5dda42e21aae12d12fe8b9710002f2b948d4713c",
      "new_mode": 33188,
      "new_path": "gbl/efi/arch/x86_64/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbe78d92bf6a5692e978898bbabd96424c3eb835",
      "new_mode": 33188,
      "new_path": "gbl/efi/arch/x86_64/deps.S"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7509dde30d05f4b4dba9193b7fd410d3a96ea932",
      "new_mode": 33188,
      "new_path": "gbl/patches/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9153f6e14e8f75ed985d356fa04aeef7d8c0bb24",
      "new_mode": 33188,
      "new_path": "gbl/patches/rust-libcompiler-builtins-enable-chkstk-on-uefi.patch"
    },
    {
      "type": "modify",
      "old_id": "b4c99d384acac3143e1807256a04940a80cdfc11",
      "old_mode": 33188,
      "old_path": "gbl/toolchain/BUILD",
      "new_id": "882b8ba505c10d6db0edcff5348b404ea50b4d19",
      "new_mode": 33188,
      "new_path": "gbl/toolchain/BUILD"
    },
    {
      "type": "modify",
      "old_id": "87b40d184438f5b4272a5f705602c3ca81767b1f",
      "old_mode": 33188,
      "old_path": "gbl/toolchain/BUILD.android_rust_prebuilts.bazel",
      "new_id": "ee65923654b1205075cc64889ebeebe0a0b77e89",
      "new_mode": 33188,
      "new_path": "gbl/toolchain/BUILD.android_rust_prebuilts.bazel"
    }
  ]
}
