Add patch for userfaultfd-sys

bindgen fails to parse <linux/userfaultfd.h> due to LLVM upgrade.
https://github.com/rust-lang/rust-bindgen/pull/2319

The fix for it is available from bindgen 0.62 while userfaultfd-sys uses
0.60.1. Apply patch to use the latest bindgen which is already installed
in chromeos rust_crates.

Using ".patch" file does not work because Cargo.toml of userfaultfd-sys
is auto generated by cargo and different from the original file. Use sed
command to replace the bindgen version.

BUG=b:278810954
TEST=emerge crosvm succeeds.

Change-Id: I02054edb00426c320f96d0e6f9d70e128b91a929
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rust_crates/+/4445855
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Commit-Queue: David Stevens <stevensd@chromium.org>
Reviewed-by: David Stevens <stevensd@chromium.org>
Reviewed-by: George Burgess <gbiv@chromium.org>
Auto-Submit: Shin Kawamura <kawasin@google.com>
Commit-Queue: Shin Kawamura <kawasin@google.com>
Tested-by: Shin Kawamura <kawasin@google.com>
Reviewed-by: Dennis Kempin <denniskempin@google.com>
diff --git a/patches/userfaultfd-sys-0.4.2/change-bindgen-version.sh b/patches/userfaultfd-sys-0.4.2/change-bindgen-version.sh
new file mode 100755
index 0000000..da62a9c
--- /dev/null
+++ b/patches/userfaultfd-sys-0.4.2/change-bindgen-version.sh
@@ -0,0 +1,16 @@
+#!/bin/bash -eux
+# Copyright 2023 The ChromiumOS Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# Upgrade bindgen version to 0.64.0.
+#
+# TODO(b/278951478): Remove this script once we upstream this version upgrade.
+#
+# bindgen fails to parse <linux/userfaultfd.h> due to LLVM upgrade.
+# https://github.com/rust-lang/rust-bindgen/pull/2319
+#
+# The fix for it is available from bindgen 0.62 while userfaultfd-sys uses
+# 0.60.1. Apply patch to use the latest bindgen which is already installed
+# in chromeos rust_crates.
+sed -i s/'0.60.1'/'0.64.0'/ Cargo.toml
diff --git a/vendor/userfaultfd-sys-0.4.2/.cargo-checksum.json b/vendor/userfaultfd-sys-0.4.2/.cargo-checksum.json
index ecb87c8..531346c 100644
--- a/vendor/userfaultfd-sys-0.4.2/.cargo-checksum.json
+++ b/vendor/userfaultfd-sys-0.4.2/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"f2adc5b10488b6902fd8eb31bb1eaec4a348eb7dd52da061d3fa340b7cf84e1d","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","build.rs":"bb5953a032e0eaddd9ab97690ecfb9595e7881eede2f5d728a7349d9469ea9d7","src/consts.c":"7a1f2ede28b0375eafe01fcc8b6b010b11a5fe53aac40fda49fada0f9b74fd1a","src/lib.rs":"18d7ecbc84b4986ed398eafcb0b0d589f5872e60508f0ca0da6e13dfc0d87f2e","src/linux4_11.rs":"30aa9382aa4d9dfcc009571017a5a3b996ad63c9f5dad3a4a8781ac852a47747","src/linux4_14.rs":"e6966141f8533a3f13f0bb0fb7f342aba86c6b447434e412856632f656ab0a69","src/linux5_7.rs":"5f37fe80604ec339a5fb0aad25e34726405b69cd1114dcd60aa2850a3d65e019","wrapper.h":"6b466b060249c3dfbbf66258c7d6949afe59cf5b3d772d16e47eef768df799ef"},"package":"d2cbcf2717fa856a7226499babbbccb07353ea2fc2b27defd38bd13b1227cc78"}
\ No newline at end of file
+{"files": {"Cargo.toml": "d62bfb391c4459aa0ad6cb109b261f8f1c89f35146b09ee115e1eb9cbea0bc77", "LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a", "LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", "build.rs": "bb5953a032e0eaddd9ab97690ecfb9595e7881eede2f5d728a7349d9469ea9d7", "src/consts.c": "7a1f2ede28b0375eafe01fcc8b6b010b11a5fe53aac40fda49fada0f9b74fd1a", "src/lib.rs": "18d7ecbc84b4986ed398eafcb0b0d589f5872e60508f0ca0da6e13dfc0d87f2e", "src/linux4_11.rs": "30aa9382aa4d9dfcc009571017a5a3b996ad63c9f5dad3a4a8781ac852a47747", "src/linux4_14.rs": "e6966141f8533a3f13f0bb0fb7f342aba86c6b447434e412856632f656ab0a69", "src/linux5_7.rs": "5f37fe80604ec339a5fb0aad25e34726405b69cd1114dcd60aa2850a3d65e019", "wrapper.h": "6b466b060249c3dfbbf66258c7d6949afe59cf5b3d772d16e47eef768df799ef"}, "package": "d2cbcf2717fa856a7226499babbbccb07353ea2fc2b27defd38bd13b1227cc78"}
\ No newline at end of file
diff --git a/vendor/userfaultfd-sys-0.4.2/Cargo.toml b/vendor/userfaultfd-sys-0.4.2/Cargo.toml
index 63f6535..9b787a7 100644
--- a/vendor/userfaultfd-sys-0.4.2/Cargo.toml
+++ b/vendor/userfaultfd-sys-0.4.2/Cargo.toml
@@ -23,7 +23,7 @@
 version = "^1.0.0"
 
 [build-dependencies.bindgen]
-version = "^0.60.1"
+version = "^0.64.0"
 features = ["runtime"]
 default-features = false