Update bindgen-cli to 0.69.4

We have version 0.69.4 of bindgen, and according to bindgen's
Cargo.toml, the versions should match.

Bug: http://b/339424309
Test: treehugger
Change-Id: Ie1481c2caf9f5e96141af5935acb1e89072b6926
diff --git a/crates/bindgen-cli/.cargo-checksum.json b/crates/bindgen-cli/.cargo-checksum.json
index cd7b61b..0ea4db9 100644
--- a/crates/bindgen-cli/.cargo-checksum.json
+++ b/crates/bindgen-cli/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.lock":"807cf7928de4a562202d07813d15cef33ac207c4aabe85d7df1e9aa30c3f3e76","Cargo.toml":"b16454d90d91ea67f18a7452a056ab924ff9b2dfeacf11ad89a5768bfc330759","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"b2334e4077a9bc329516e3e0c7f89887c4f073647d95fb71b6917edf4c310ba3","main.rs":"93d1cde0ff7bf718ce49cdeda2107dff21c8cb16ed189609242e4923ff448480","options.rs":"aabd156a907956356a50754e0db8d13e53f86b8b2ece010547fd527424b564b1"},"package":"468974e6a3c1864e4b7fa51678748fdee274197ba8ea948f673579fe63590e53"}
\ No newline at end of file
+{"files":{"Cargo.lock":"5955e37143e8fbbe847aa888f9b2fd710d843a1b1f1130cceffafeb4e1ee8869","Cargo.toml":"8ee4e35d29d2e658d18a3b6530c1172b9cfb16ca4efa5d005b015ac1a07c8252","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"b2334e4077a9bc329516e3e0c7f89887c4f073647d95fb71b6917edf4c310ba3","main.rs":"bf0b807d9613b381878b3cd52bd7cd0f8286c2af9ead5948d72978b4e491999e","options.rs":"009b13fc007d341f66732fb90bfb458e71044df9baed99f326cb0497cca6f58b"},"package":"5d31479f44d2c9eed368e5f945cb4846d2c8313bd91feb16b6ae937a80b7ae01"}
\ No newline at end of file
diff --git a/crates/bindgen-cli/Android.bp b/crates/bindgen-cli/Android.bp
index c16e163..7b9cc0b 100644
--- a/crates/bindgen-cli/Android.bp
+++ b/crates/bindgen-cli/Android.bp
@@ -18,7 +18,7 @@
     host_cross_supported: false,
     crate_name: "bindgen",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.69.2",
+    cargo_pkg_version: "0.69.4",
     crate_root: "main.rs",
     edition: "2018",
     features: [
diff --git a/crates/bindgen-cli/Cargo.lock b/crates/bindgen-cli/Cargo.lock
index 1c210ba..2423609 100644
--- a/crates/bindgen-cli/Cargo.lock
+++ b/crates/bindgen-cli/Cargo.lock
@@ -23,18 +23,18 @@
 
 [[package]]
 name = "bindgen"
-version = "0.69.2"
+version = "0.69.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c69fae65a523209d34240b60abe0c42d33d1045d445c0839d8a4894a736e2d"
+checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
 dependencies = [
  "annotate-snippets",
  "bitflags 2.2.1",
  "cexpr",
  "clang-sys",
+ "itertools",
  "lazy_static",
  "lazycell",
  "log",
- "peeking_take_while",
  "proc-macro2",
  "quote",
  "regex",
@@ -46,7 +46,7 @@
 
 [[package]]
 name = "bindgen-cli"
-version = "0.69.2"
+version = "0.69.4"
 dependencies = [
  "bindgen",
  "clap",
@@ -233,6 +233,15 @@
 ]
 
 [[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -310,12 +319,6 @@
 checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
 
 [[package]]
-name = "peeking_take_while"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-
-[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -396,9 +399,9 @@
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "strsim"
diff --git a/crates/bindgen-cli/Cargo.toml b/crates/bindgen-cli/Cargo.toml
index 81b5068..8581800 100644
--- a/crates/bindgen-cli/Cargo.toml
+++ b/crates/bindgen-cli/Cargo.toml
@@ -13,7 +13,7 @@
 edition = "2018"
 rust-version = "1.64.0"
 name = "bindgen-cli"
-version = "0.69.2"
+version = "0.69.4"
 authors = ["The rust-bindgen project contributors"]
 description = "Automatically generates Rust FFI bindings to C and C++ libraries."
 homepage = "https://rust-lang.github.io/rust-bindgen/"
@@ -42,7 +42,7 @@
 path = "main.rs"
 
 [dependencies.bindgen]
-version = "=0.69.2"
+version = "=0.69.4"
 features = [
     "__cli",
     "experimental",
@@ -69,7 +69,7 @@
 
 [features]
 __testing_only_extra_assertions = ["bindgen/__testing_only_extra_assertions"]
-__testing_only_libclang_5 = ["bindgen/__testing_only_libclang_5"]
+__testing_only_libclang_16 = ["bindgen/__testing_only_libclang_16"]
 __testing_only_libclang_9 = ["bindgen/__testing_only_libclang_9"]
 default = [
     "logging",
diff --git a/crates/bindgen-cli/METADATA b/crates/bindgen-cli/METADATA
index 277ff59..564a6bb 100644
--- a/crates/bindgen-cli/METADATA
+++ b/crates/bindgen-cli/METADATA
@@ -1,20 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/bindgen-cli
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "bindgen-cli"
 description: "Automatically generates Rust FFI bindings to C and C++ libraries."
 third_party {
+  version: "0.69.4"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
-    month: 1
-    day: 31
+    month: 10
+    day: 30
   }
   homepage: "https://crates.io/crates/bindgen-cli"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/bindgen-cli/bindgen-cli-0.69.2.crate"
-    version: "0.69.2"
+    value: "https://static.crates.io/crates/bindgen-cli/bindgen-cli-0.69.4.crate"
+    version: "0.69.4"
   }
 }
diff --git a/crates/bindgen-cli/main.rs b/crates/bindgen-cli/main.rs
index a340723..4b1bfad 100644
--- a/crates/bindgen-cli/main.rs
+++ b/crates/bindgen-cli/main.rs
@@ -13,10 +13,10 @@
 #[cfg(feature = "logging")]
 fn clang_version_check() {
     let version = bindgen::clang_version();
-    let expected_version = if cfg!(feature = "__testing_only_libclang_9") {
+    let expected_version = if cfg!(feature = "__testing_only_libclang_16") {
+        Some((16, 0))
+    } else if cfg!(feature = "__testing_only_libclang_9") {
         Some((9, 0))
-    } else if cfg!(feature = "__testing_only_libclang_5") {
-        Some((5, 0))
     } else {
         None
     };
diff --git a/crates/bindgen-cli/options.rs b/crates/bindgen-cli/options.rs
index f82d391..66bb3f1 100644
--- a/crates/bindgen-cli/options.rs
+++ b/crates/bindgen-cli/options.rs
@@ -156,6 +156,9 @@
     /// Mark FILE as hidden.
     #[arg(long, value_name = "FILE")]
     blocklist_file: Vec<String>,
+    /// Mark VAR as hidden.
+    #[arg(long, value_name = "VAR")]
+    blocklist_var: Vec<String>,
     /// Avoid generating layout tests for any type.
     #[arg(long)]
     no_layout_tests: bool,
@@ -471,6 +474,7 @@
         blocklist_function,
         blocklist_item,
         blocklist_file,
+        blocklist_var,
         no_layout_tests,
         no_derive_copy,
         no_derive_debug,
@@ -676,6 +680,10 @@
         builder = builder.blocklist_file(file);
     }
 
+    for var in blocklist_var {
+        builder = builder.blocklist_var(var);
+    }
+
     if builtins {
         builder = builder.emit_builtins();
     }
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index 54208b6..a464180 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -836,18 +836,18 @@
 
 [[package]]
 name = "bindgen"
-version = "0.69.2"
+version = "0.69.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c69fae65a523209d34240b60abe0c42d33d1045d445c0839d8a4894a736e2d"
+checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
 dependencies = [
  "annotate-snippets",
  "bitflags 2.6.0",
  "cexpr",
  "clang-sys",
+ "itertools 0.12.1",
  "lazy_static",
  "lazycell",
  "log",
- "peeking_take_while",
  "proc-macro2",
  "quote",
  "regex",
@@ -859,11 +859,11 @@
 
 [[package]]
 name = "bindgen-cli"
-version = "0.69.2"
+version = "0.69.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "468974e6a3c1864e4b7fa51678748fdee274197ba8ea948f673579fe63590e53"
+checksum = "5d31479f44d2c9eed368e5f945cb4846d2c8313bd91feb16b6ae937a80b7ae01"
 dependencies = [
- "bindgen 0.69.2",
+ "bindgen 0.69.4",
  "clap 4.5.2",
  "clap_complete",
  "env_logger 0.10.2",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 3ab6251..a7bcb89 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -32,7 +32,7 @@
 base64 = "=0.22.1"
 bencher = "=0.1.5"
 bincode = "=1.3.3"
-bindgen-cli = "=0.69.2"
+bindgen-cli = "=0.69.4"
 bitflags = "=2.6.0"
 bitreader = "=0.3.8"
 bstr = "=1.3.0"